@mezo-org/passport 0.4.0-dev.75 → 0.4.0-dev.77

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.
@@ -1,4 +1,5 @@
1
1
  export { useBitcoinAccount, useSendBitcoin, useSendTransaction, useSubscribeToConnectedToUnsupportedBitcoinAddress, useSubscribeToConnectorEvent, useSubscribeToWalletNetworkDoesNotMatchProviderChain, } from "@mezo-org/orangekit";
2
+ export * from "./useAddMezoChainToWallet";
2
3
  export { useInvalidateBorrowData, useResetBorrowData } from "./useBorrowData";
3
4
  export * from "./useGetAccountByAddress";
4
5
  export * from "./useGetAccountByMezoId";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kDAAkD,EAClD,4BAA4B,EAC5B,oDAAoD,GACrD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kDAAkD,EAClD,4BAA4B,EAC5B,oDAAoD,GACrD,MAAM,qBAAqB,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { useBitcoinAccount, useSendBitcoin, useSendTransaction, useSubscribeToConnectedToUnsupportedBitcoinAddress, useSubscribeToConnectorEvent, useSubscribeToWalletNetworkDoesNotMatchProviderChain, } from "@mezo-org/orangekit";
2
+ export * from "./useAddMezoChainToWallet";
2
3
  export { useInvalidateBorrowData, useResetBorrowData } from "./useBorrowData";
3
4
  export * from "./useGetAccountByAddress";
4
5
  export * from "./useGetAccountByMezoId";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kDAAkD,EAClD,4BAA4B,EAC5B,oDAAoD,GACrD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kDAAkD,EAClD,4BAA4B,EAC5B,oDAAoD,GACrD,MAAM,qBAAqB,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare const useAddMezoChainToWallet: (mezoNetwork: "mainnet" | "testnet", onMezoChainAdded?: (chainId: number) => void | Promise<void>) => {
2
+ isMezoChain: boolean;
3
+ addMezoChain: () => Promise<void>;
4
+ };
5
+ //# sourceMappingURL=useAddMezoChainToWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAddMezoChainToWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddMezoChainToWallet.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,GAClC,aAAa,SAAS,GAAG,SAAS,EAClC,mBAAmB,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;;CA2D7D,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { mezoMainnet, mezoTestnet } from "@mezo-org/orangekit";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { useAccount } from "wagmi";
4
+ export const useAddMezoChainToWallet = (mezoNetwork, onMezoChainAdded) => {
5
+ const [isMezoChain, setIsMezoChain] = useState(false);
6
+ const MEZO_CHAIN = mezoNetwork === "mainnet" ? mezoMainnet : mezoTestnet;
7
+ const hexadecimalMezoChainId = `0x${MEZO_CHAIN.id.toString(16)}`;
8
+ const { connector } = useAccount();
9
+ useEffect(() => {
10
+ const getCurrentChainId = async () => {
11
+ if (!window.ethereum || connector?.type === "orangekit")
12
+ return;
13
+ const currentChainId = await window.ethereum.request({
14
+ method: "eth_chainId",
15
+ });
16
+ setIsMezoChain(currentChainId === hexadecimalMezoChainId);
17
+ };
18
+ getCurrentChainId();
19
+ }, [connector, hexadecimalMezoChainId]);
20
+ const addMezoChain = useCallback(async () => {
21
+ if (!window.ethereum || connector?.type === "orangekit")
22
+ return;
23
+ const mezoChainParams = {
24
+ chainId: hexadecimalMezoChainId,
25
+ chainName: MEZO_CHAIN.name,
26
+ nativeCurrency: MEZO_CHAIN.nativeCurrency,
27
+ rpcUrls: [MEZO_CHAIN.rpcUrls.default.http[0]],
28
+ blockExplorerUrls: [MEZO_CHAIN.blockExplorers?.default.url],
29
+ };
30
+ try {
31
+ await window.ethereum.request({
32
+ method: "wallet_addEthereumChain",
33
+ params: [mezoChainParams],
34
+ });
35
+ setIsMezoChain(true);
36
+ if (onMezoChainAdded)
37
+ onMezoChainAdded(MEZO_CHAIN.id);
38
+ // setConnectedChainId(MEZO_CHAIN.id)
39
+ }
40
+ catch (err) {
41
+ setIsMezoChain(false);
42
+ }
43
+ }, [
44
+ connector?.type,
45
+ hexadecimalMezoChainId,
46
+ MEZO_CHAIN.name,
47
+ MEZO_CHAIN.nativeCurrency,
48
+ MEZO_CHAIN.rpcUrls.default.http,
49
+ MEZO_CHAIN.blockExplorers?.default.url,
50
+ MEZO_CHAIN.id,
51
+ onMezoChainAdded,
52
+ ]);
53
+ return { isMezoChain, addMezoChain };
54
+ };
55
+ //# sourceMappingURL=useAddMezoChainToWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAddMezoChainToWallet.js","sourceRoot":"","sources":["../../../src/hooks/useAddMezoChainToWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,WAAkC,EAClC,gBAA4D,EAC5D,EAAE;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErD,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;IAExE,MAAM,sBAAsB,GAAG,KAAK,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;IAEhE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAA;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,EAAE,IAAI,KAAK,WAAW;gBAAE,OAAM;YAE/D,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACnD,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;YAEF,cAAc,CAAC,cAAc,KAAK,sBAAsB,CAAC,CAAA;QAC3D,CAAC,CAAA;QAED,iBAAiB,EAAE,CAAA;IACrB,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAEvC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,EAAE,IAAI,KAAK,WAAW;YAAE,OAAM;QAE/D,MAAM,eAAe,GAAG;YACtB,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,UAAU,CAAC,IAAI;YAC1B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,iBAAiB,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC;SAC5D,CAAA;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5B,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,CAAC,eAAe,CAAC;aAC1B,CAAC,CAAA;YAEF,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,IAAI,gBAAgB;gBAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YACrD,qCAAqC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;IACH,CAAC,EAAE;QACD,SAAS,EAAE,IAAI;QACf,sBAAsB;QACtB,UAAU,CAAC,IAAI;QACf,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC/B,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG;QACtC,UAAU,CAAC,EAAE;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AACtC,CAAC,CAAA"}
@@ -15,11 +15,11 @@ declare function useAuthenticateWithWallet(shouldCreateAccount?: boolean, mutati
15
15
  failureReason: Error | null;
16
16
  isPaused: boolean;
17
17
  submittedAt: number;
18
- authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
19
- authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
18
+ authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
19
+ authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
20
20
  } | {
21
21
  data: undefined;
22
- variables: number | void | undefined;
22
+ variables: number | void;
23
23
  error: null;
24
24
  isError: false;
25
25
  isIdle: false;
@@ -32,12 +32,12 @@ declare function useAuthenticateWithWallet(shouldCreateAccount?: boolean, mutati
32
32
  failureReason: Error | null;
33
33
  isPaused: boolean;
34
34
  submittedAt: number;
35
- authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
36
- authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
35
+ authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
36
+ authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
37
37
  } | {
38
38
  data: undefined;
39
39
  error: Error;
40
- variables: number | void | undefined;
40
+ variables: number | void;
41
41
  isError: true;
42
42
  isIdle: false;
43
43
  isPending: false;
@@ -49,12 +49,12 @@ declare function useAuthenticateWithWallet(shouldCreateAccount?: boolean, mutati
49
49
  failureReason: Error | null;
50
50
  isPaused: boolean;
51
51
  submittedAt: number;
52
- authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
53
- authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
52
+ authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
53
+ authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
54
54
  } | {
55
55
  data: Session;
56
56
  error: null;
57
- variables: number | void | undefined;
57
+ variables: number | void;
58
58
  isError: false;
59
59
  isIdle: false;
60
60
  isPending: false;
@@ -66,8 +66,8 @@ declare function useAuthenticateWithWallet(shouldCreateAccount?: boolean, mutati
66
66
  failureReason: Error | null;
67
67
  isPaused: boolean;
68
68
  submittedAt: number;
69
- authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
70
- authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
69
+ authenticateWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
70
+ authenticateWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
71
71
  };
72
72
  export { useAuthenticateWithWallet };
73
73
  //# sourceMappingURL=useAuthenticateWithWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthenticateWithWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EAEhB,MAAM,uBAAuB,CAAA;AAS9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGrC,iBAAS,yBAAyB,CAChC,mBAAmB,UAAQ,EAC3B,eAAe,GAAE,IAAI,CACnB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,EACrD,YAAY,GAAG,aAAa,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8FP;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAA"}
1
+ {"version":3,"file":"useAuthenticateWithWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EAEhB,MAAM,uBAAuB,CAAA;AAU9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAKrC,iBAAS,yBAAyB,CAChC,mBAAmB,UAAQ,EAC3B,eAAe,GAAE,IAAI,CACnB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,EACrD,YAAY,GAAG,aAAa,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyGP;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAA"}
@@ -1,28 +1,41 @@
1
- import { useSignMessage } from "wagmi";
1
+ import { useSignMessage, useSwitchChain } from "wagmi";
2
2
  import { useMutation, } from "@tanstack/react-query";
3
+ import { mezoMainnet, mezoTestnet } from "@mezo-org/orangekit";
3
4
  import { useCreateAccount } from "./useCreateAccount";
4
5
  import { useCreateSession } from "./useCreateSession";
5
6
  import { useEnsureNoSessionAndFetchNonce } from "./useEnsureNoSessionAndFetchNonce";
6
7
  import { createSignInWithWalletMessage, verifyDomainInSignInWithWalletMessage, } from "../utils/siww";
7
8
  import { useGetAccountByAddress } from "./useGetAccountByAddress";
8
9
  import useWalletAccount from "./useWalletAccount";
10
+ import { useAddMezoChainToWallet } from "./useAddMezoChainToWallet";
11
+ import { usePassportContext } from "./usePassportContext";
9
12
  function useAuthenticateWithWallet(shouldCreateAccount = false, mutationOptions = {}) {
10
13
  const { walletAddress, chainId: walletChainId, connector, networkFamily, } = useWalletAccount();
11
14
  const { ensureNoSessionAndFetchNonce } = useEnsureNoSessionAndFetchNonce();
12
15
  const { createSessionAsync } = useCreateSession();
13
16
  const { createAccountAsync } = useCreateAccount();
14
17
  const { signMessageAsync } = useSignMessage();
18
+ const { environment } = usePassportContext();
19
+ const { isMezoChain, addMezoChain } = useAddMezoChainToWallet(environment);
20
+ const MEZO_CHAIN = environment === "mainnet" ? mezoMainnet : mezoTestnet;
21
+ const { switchChainAsync } = useSwitchChain();
15
22
  const { refetch: getAccountByAddress } = useGetAccountByAddress(walletAddress, {
16
23
  enabled: false,
17
24
  retry: false,
18
25
  });
19
26
  const { mutate, mutateAsync, ...signInMutationRestParameters } = useMutation({
20
- mutationFn: async (chainId) => {
27
+ mutationFn: async () => {
21
28
  if (!walletAddress) {
22
29
  throw new Error("Sign in error: Wallet not connected!");
23
30
  }
31
+ let chainId = walletChainId;
32
+ if (connector?.type !== "orangekit" && !isMezoChain) {
33
+ await addMezoChain();
34
+ const newChain = await switchChainAsync({ chainId: MEZO_CHAIN.id });
35
+ chainId = newChain.id;
36
+ }
24
37
  const nonce = await ensureNoSessionAndFetchNonce();
25
- const messageResult = createSignInWithWalletMessage(walletAddress, nonce, networkFamily, chainId ?? walletChainId);
38
+ const messageResult = createSignInWithWalletMessage(walletAddress, nonce, networkFamily, chainId);
26
39
  const signatureResult = await signMessageAsync({
27
40
  message: messageResult,
28
41
  connector,
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthenticateWithWallet.js","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuthenticateWithWallet.js","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ declare function useSignInWithWallet(mutationOptions?: Omit<MutationOptions<Sess
15
15
  failureReason: Error | null;
16
16
  isPaused: boolean;
17
17
  submittedAt: number;
18
- signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
19
- signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
18
+ signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
19
+ signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
20
20
  } | {
21
21
  data: undefined;
22
- variables: number | void | undefined;
22
+ variables: number | void;
23
23
  error: null;
24
24
  isError: false;
25
25
  isIdle: false;
@@ -32,12 +32,12 @@ declare function useSignInWithWallet(mutationOptions?: Omit<MutationOptions<Sess
32
32
  failureReason: Error | null;
33
33
  isPaused: boolean;
34
34
  submittedAt: number;
35
- signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
36
- signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
35
+ signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
36
+ signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
37
37
  } | {
38
38
  data: undefined;
39
39
  error: Error;
40
- variables: number | void | undefined;
40
+ variables: number | void;
41
41
  isError: true;
42
42
  isIdle: false;
43
43
  isPending: false;
@@ -49,12 +49,12 @@ declare function useSignInWithWallet(mutationOptions?: Omit<MutationOptions<Sess
49
49
  failureReason: Error | null;
50
50
  isPaused: boolean;
51
51
  submittedAt: number;
52
- signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
53
- signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
52
+ signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
53
+ signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
54
54
  } | {
55
55
  data: Session;
56
56
  error: null;
57
- variables: number | void | undefined;
57
+ variables: number | void;
58
58
  isError: false;
59
59
  isIdle: false;
60
60
  isPending: false;
@@ -66,8 +66,8 @@ declare function useSignInWithWallet(mutationOptions?: Omit<MutationOptions<Sess
66
66
  failureReason: Error | null;
67
67
  isPaused: boolean;
68
68
  submittedAt: number;
69
- signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
70
- signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
69
+ signInWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
70
+ signInWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
71
71
  };
72
72
  export { useSignInWithWallet };
73
73
  //# sourceMappingURL=useSignInWithWallet.d.ts.map
@@ -15,11 +15,11 @@ declare function useSignUpWithWallet(mutationOptions?: Omit<MutationOptions<Sess
15
15
  failureReason: Error | null;
16
16
  isPaused: boolean;
17
17
  submittedAt: number;
18
- signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
19
- signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
18
+ signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
19
+ signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
20
20
  } | {
21
21
  data: undefined;
22
- variables: number | void | undefined;
22
+ variables: number | void;
23
23
  error: null;
24
24
  isError: false;
25
25
  isIdle: false;
@@ -32,12 +32,12 @@ declare function useSignUpWithWallet(mutationOptions?: Omit<MutationOptions<Sess
32
32
  failureReason: Error | null;
33
33
  isPaused: boolean;
34
34
  submittedAt: number;
35
- signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
36
- signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
35
+ signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
36
+ signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
37
37
  } | {
38
38
  data: undefined;
39
39
  error: Error;
40
- variables: number | void | undefined;
40
+ variables: number | void;
41
41
  isError: true;
42
42
  isIdle: false;
43
43
  isPending: false;
@@ -49,12 +49,12 @@ declare function useSignUpWithWallet(mutationOptions?: Omit<MutationOptions<Sess
49
49
  failureReason: Error | null;
50
50
  isPaused: boolean;
51
51
  submittedAt: number;
52
- signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
53
- signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
52
+ signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
53
+ signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
54
54
  } | {
55
55
  data: Session;
56
56
  error: null;
57
- variables: number | void | undefined;
57
+ variables: number | void;
58
58
  isError: false;
59
59
  isIdle: false;
60
60
  isPending: false;
@@ -66,8 +66,8 @@ declare function useSignUpWithWallet(mutationOptions?: Omit<MutationOptions<Sess
66
66
  failureReason: Error | null;
67
67
  isPaused: boolean;
68
68
  submittedAt: number;
69
- signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void | undefined, unknown>;
70
- signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void | undefined, unknown>;
69
+ signUpWithWallet: import("@tanstack/react-query").UseMutateFunction<Session, Error, number | void, unknown>;
70
+ signUpWithWalletAsync: import("@tanstack/react-query").UseMutateAsyncFunction<Session, Error, number | void, unknown>;
71
71
  };
72
72
  export { useSignUpWithWallet };
73
73
  //# sourceMappingURL=useSignUpWithWallet.d.ts.map
@@ -2,13 +2,13 @@ import { AuthApiClient, PortalApiClient } from "./api";
2
2
  export interface PassportContextValue {
3
3
  authApiClient: AuthApiClient;
4
4
  portalApiClient: PortalApiClient;
5
- environment?: Environment;
5
+ environment: Environment;
6
6
  }
7
7
  export declare const PassportContext: import("react").Context<PassportContextValue | undefined>;
8
8
  type Environment = "mainnet" | "testnet";
9
9
  type PassportProviderProps = {
10
10
  children: React.ReactNode;
11
- environment?: Environment;
11
+ environment: Environment;
12
12
  authApiUrl?: string;
13
13
  portalApiUrl?: string;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEtD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,eAAO,MAAM,eAAe,2DAE3B,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAExC,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB,WAAW,CAAC,EAAE,WAAW,CAAA;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,qBAAqB,6GAmBvB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEtD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,eAAO,MAAM,eAAe,2DAE3B,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAExC,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB,WAAW,EAAE,WAAW,CAAA;IAExB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,qBAAqB,6GAmBvB"}
@@ -2,7 +2,7 @@ import { createContext, createElement } from "react";
2
2
  import { AuthApiClient, PortalApiClient } from "./api";
3
3
  export const PassportContext = createContext(undefined);
4
4
  export function PassportProvider({ environment, authApiUrl, portalApiUrl, children, }) {
5
- if (environment && !["mainnet", "testnet"].includes(environment)) {
5
+ if (!environment || !["mainnet", "testnet"].includes(environment)) {
6
6
  throw new Error("Wrong environment passed to PassportProvider.");
7
7
  }
8
8
  return createElement(PassportContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAQtD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAC1C,SAAS,CACV,CAAA;AAcD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,GACc;IACtB,IAAI,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,aAAa,CAClB,eAAe,CAAC,QAAQ,EACxB;QACE,KAAK,EAAE;YACL,aAAa,EAAE,IAAI,aAAa,CAAC,WAAW,IAAI,SAAS,EAAE,UAAU,CAAC;YACtE,eAAe,EAAE,IAAI,eAAe,CAClC,WAAW,IAAI,SAAS,EACxB,YAAY,CACb;YACD,WAAW;SACZ;KACF,EACD,QAAQ,CACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAQtD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAC1C,SAAS,CACV,CAAA;AAcD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,GACc;IACtB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,aAAa,CAClB,eAAe,CAAC,QAAQ,EACxB;QACE,KAAK,EAAE;YACL,aAAa,EAAE,IAAI,aAAa,CAAC,WAAW,IAAI,SAAS,EAAE,UAAU,CAAC;YACtE,eAAe,EAAE,IAAI,eAAe,CAClC,WAAW,IAAI,SAAS,EACxB,YAAY,CACb;YACD,WAAW;SACZ;KACF,EACD,QAAQ,CACT,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mezo-org/passport",
3
- "version": "0.4.0-dev.75",
3
+ "version": "0.4.0-dev.77",
4
4
  "main": "dist/src/index.js",
5
5
  "license": "GPL-3.0-only",
6
6
  "scripts": {
@@ -6,6 +6,7 @@ export {
6
6
  useSubscribeToConnectorEvent,
7
7
  useSubscribeToWalletNetworkDoesNotMatchProviderChain,
8
8
  } from "@mezo-org/orangekit"
9
+ export * from "./useAddMezoChainToWallet"
9
10
  export { useInvalidateBorrowData, useResetBorrowData } from "./useBorrowData"
10
11
  export * from "./useGetAccountByAddress"
11
12
  export * from "./useGetAccountByMezoId"
@@ -0,0 +1,66 @@
1
+ import { mezoMainnet, mezoTestnet } from "@mezo-org/orangekit"
2
+ import { useCallback, useEffect, useState } from "react"
3
+ import { useAccount } from "wagmi"
4
+
5
+ export const useAddMezoChainToWallet = (
6
+ mezoNetwork: "mainnet" | "testnet",
7
+ onMezoChainAdded?: (chainId: number) => void | Promise<void>,
8
+ ) => {
9
+ const [isMezoChain, setIsMezoChain] = useState(false)
10
+
11
+ const MEZO_CHAIN = mezoNetwork === "mainnet" ? mezoMainnet : mezoTestnet
12
+
13
+ const hexadecimalMezoChainId = `0x${MEZO_CHAIN.id.toString(16)}`
14
+
15
+ const { connector } = useAccount()
16
+
17
+ useEffect(() => {
18
+ const getCurrentChainId = async () => {
19
+ if (!window.ethereum || connector?.type === "orangekit") return
20
+
21
+ const currentChainId = await window.ethereum.request({
22
+ method: "eth_chainId",
23
+ })
24
+
25
+ setIsMezoChain(currentChainId === hexadecimalMezoChainId)
26
+ }
27
+
28
+ getCurrentChainId()
29
+ }, [connector, hexadecimalMezoChainId])
30
+
31
+ const addMezoChain = useCallback(async () => {
32
+ if (!window.ethereum || connector?.type === "orangekit") return
33
+
34
+ const mezoChainParams = {
35
+ chainId: hexadecimalMezoChainId,
36
+ chainName: MEZO_CHAIN.name,
37
+ nativeCurrency: MEZO_CHAIN.nativeCurrency,
38
+ rpcUrls: [MEZO_CHAIN.rpcUrls.default.http[0]],
39
+ blockExplorerUrls: [MEZO_CHAIN.blockExplorers?.default.url],
40
+ }
41
+
42
+ try {
43
+ await window.ethereum.request({
44
+ method: "wallet_addEthereumChain",
45
+ params: [mezoChainParams],
46
+ })
47
+
48
+ setIsMezoChain(true)
49
+ if (onMezoChainAdded) onMezoChainAdded(MEZO_CHAIN.id)
50
+ // setConnectedChainId(MEZO_CHAIN.id)
51
+ } catch (err) {
52
+ setIsMezoChain(false)
53
+ }
54
+ }, [
55
+ connector?.type,
56
+ hexadecimalMezoChainId,
57
+ MEZO_CHAIN.name,
58
+ MEZO_CHAIN.nativeCurrency,
59
+ MEZO_CHAIN.rpcUrls.default.http,
60
+ MEZO_CHAIN.blockExplorers?.default.url,
61
+ MEZO_CHAIN.id,
62
+ onMezoChainAdded,
63
+ ])
64
+
65
+ return { isMezoChain, addMezoChain }
66
+ }
@@ -1,9 +1,10 @@
1
- import { useSignMessage } from "wagmi"
1
+ import { useSignMessage, useSwitchChain } from "wagmi"
2
2
  import {
3
3
  DefaultError,
4
4
  MutationOptions,
5
5
  useMutation,
6
6
  } from "@tanstack/react-query"
7
+ import { mezoMainnet, mezoTestnet } from "@mezo-org/orangekit"
7
8
  import { useCreateAccount } from "./useCreateAccount"
8
9
  import { useCreateSession } from "./useCreateSession"
9
10
  import { useEnsureNoSessionAndFetchNonce } from "./useEnsureNoSessionAndFetchNonce"
@@ -14,6 +15,8 @@ import {
14
15
  import { useGetAccountByAddress } from "./useGetAccountByAddress"
15
16
  import type { Session } from "../api"
16
17
  import useWalletAccount from "./useWalletAccount"
18
+ import { useAddMezoChainToWallet } from "./useAddMezoChainToWallet"
19
+ import { usePassportContext } from "./usePassportContext"
17
20
 
18
21
  function useAuthenticateWithWallet(
19
22
  shouldCreateAccount = false,
@@ -32,6 +35,10 @@ function useAuthenticateWithWallet(
32
35
  const { createSessionAsync } = useCreateSession()
33
36
  const { createAccountAsync } = useCreateAccount()
34
37
  const { signMessageAsync } = useSignMessage()
38
+ const { environment } = usePassportContext()
39
+ const { isMezoChain, addMezoChain } = useAddMezoChainToWallet(environment)
40
+ const MEZO_CHAIN = environment === "mainnet" ? mezoMainnet : mezoTestnet
41
+ const { switchChainAsync } = useSwitchChain()
35
42
 
36
43
  const { refetch: getAccountByAddress } = useGetAccountByAddress(
37
44
  walletAddress,
@@ -42,18 +49,25 @@ function useAuthenticateWithWallet(
42
49
  )
43
50
 
44
51
  const { mutate, mutateAsync, ...signInMutationRestParameters } = useMutation({
45
- mutationFn: async (chainId?: number | void) => {
52
+ mutationFn: async () => {
46
53
  if (!walletAddress) {
47
54
  throw new Error("Sign in error: Wallet not connected!")
48
55
  }
49
56
 
57
+ let chainId = walletChainId
58
+ if (connector?.type !== "orangekit" && !isMezoChain) {
59
+ await addMezoChain()
60
+ const newChain = await switchChainAsync({ chainId: MEZO_CHAIN.id })
61
+ chainId = newChain.id
62
+ }
63
+
50
64
  const nonce = await ensureNoSessionAndFetchNonce()
51
65
 
52
66
  const messageResult = createSignInWithWalletMessage(
53
67
  walletAddress,
54
68
  nonce,
55
69
  networkFamily,
56
- chainId ?? walletChainId,
70
+ chainId,
57
71
  )
58
72
  const signatureResult = await signMessageAsync({
59
73
  message: messageResult,
package/src/provider.ts CHANGED
@@ -4,7 +4,7 @@ import { AuthApiClient, PortalApiClient } from "./api"
4
4
  export interface PassportContextValue {
5
5
  authApiClient: AuthApiClient
6
6
  portalApiClient: PortalApiClient
7
- environment?: Environment
7
+ environment: Environment
8
8
  }
9
9
 
10
10
  export const PassportContext = createContext<PassportContextValue | undefined>(
@@ -16,7 +16,7 @@ type Environment = "mainnet" | "testnet"
16
16
  type PassportProviderProps = {
17
17
  children: React.ReactNode
18
18
  // eslint-disable-next-line react/require-default-props
19
- environment?: Environment
19
+ environment: Environment
20
20
  // eslint-disable-next-line react/require-default-props
21
21
  authApiUrl?: string
22
22
  // eslint-disable-next-line react/require-default-props
@@ -29,7 +29,7 @@ export function PassportProvider({
29
29
  portalApiUrl,
30
30
  children,
31
31
  }: PassportProviderProps) {
32
- if (environment && !["mainnet", "testnet"].includes(environment)) {
32
+ if (!environment || !["mainnet", "testnet"].includes(environment)) {
33
33
  throw new Error("Wrong environment passed to PassportProvider.")
34
34
  }
35
35