@aptos-labs/wallet-adapter-react 2.3.3 → 2.3.5

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.
@@ -0,0 +1,10 @@
1
+ import { FC, ReactNode } from "react";
2
+ import type { Wallet } from "@aptos-labs/wallet-adapter-core";
3
+ export interface AptosWalletProviderProps {
4
+ children: ReactNode;
5
+ plugins?: ReadonlyArray<Wallet>;
6
+ autoConnect?: boolean;
7
+ onError?: (error: any) => void;
8
+ }
9
+ export declare const AptosWalletAdapterProvider: FC<AptosWalletProviderProps>;
10
+ //# sourceMappingURL=WalletProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../src/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EACF,SAAS,EAKV,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAIV,MAAM,EAaP,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAcD,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,wBAAwB,CAoPnE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,30 +1,5 @@
1
- import { AccountInfo, NetworkInfo, WalletName, WalletInfo, Wallet, InputTransactionData, AnyRawTransaction, Types, InputGenerateTransactionOptions, AccountAuthenticator, InputSubmitTransactionData, PendingTransactionResponse, SignMessagePayload, SignMessageResponse } from '@aptos-labs/wallet-adapter-core';
2
- export { AccountInfo, InputTransactionData, NetworkInfo, NetworkName, Wallet, WalletInfo, WalletName, WalletReadyState, isInAppBrowser, isMobile, isRedirectable } from '@aptos-labs/wallet-adapter-core';
3
- import { ReactNode, FC } from 'react';
4
-
5
- interface WalletContextState {
6
- connected: boolean;
7
- isLoading: boolean;
8
- account: AccountInfo | null;
9
- network: NetworkInfo | null;
10
- connect(walletName: WalletName): void;
11
- disconnect(): void;
12
- wallet: WalletInfo | null;
13
- wallets?: ReadonlyArray<Wallet>;
14
- signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;
15
- signTransaction(transactionOrPayload: AnyRawTransaction | Types.TransactionPayload, asFeePayer?: boolean, options?: InputGenerateTransactionOptions): Promise<AccountAuthenticator>;
16
- submitTransaction(transaction: InputSubmitTransactionData): Promise<PendingTransactionResponse>;
17
- signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
18
- signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;
19
- }
20
- declare function useWallet(): WalletContextState;
21
-
22
- interface AptosWalletProviderProps {
23
- children: ReactNode;
24
- plugins?: ReadonlyArray<Wallet>;
25
- autoConnect?: boolean;
26
- onError?: (error: any) => void;
27
- }
28
- declare const AptosWalletAdapterProvider: FC<AptosWalletProviderProps>;
29
-
30
- export { AptosWalletAdapterProvider, AptosWalletProviderProps, useWallet };
1
+ export { useWallet } from "./useWallet";
2
+ export * from "./WalletProvider";
3
+ export type { Wallet, AccountInfo, NetworkInfo, WalletInfo, WalletName, InputTransactionData, } from "@aptos-labs/wallet-adapter-core";
4
+ export { WalletReadyState, NetworkName, isInAppBrowser, isMobile, isRedirectable, } from "@aptos-labs/wallet-adapter-core";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,YAAY,EACV,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,GACf,MAAM,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -134,6 +134,15 @@ var AptosWalletAdapterProvider = ({
134
134
  return Promise.reject(error);
135
135
  }
136
136
  };
137
+ const changeNetwork = async (network2) => {
138
+ try {
139
+ return await walletCore.changeNetwork(network2);
140
+ } catch (error) {
141
+ if (onError)
142
+ onError(error);
143
+ return Promise.reject(error);
144
+ }
145
+ };
137
146
  (0, import_react2.useEffect)(() => {
138
147
  if (autoConnect) {
139
148
  if (localStorage.getItem("AptosWalletName") && !connected) {
@@ -250,7 +259,8 @@ var AptosWalletAdapterProvider = ({
250
259
  signMessage,
251
260
  signMessageAndVerify,
252
261
  isLoading,
253
- submitTransaction
262
+ submitTransaction,
263
+ changeNetwork
254
264
  },
255
265
  children
256
266
  });
@@ -268,3 +278,4 @@ var import_wallet_adapter_core2 = require("@aptos-labs/wallet-adapter-core");
268
278
  isRedirectable,
269
279
  useWallet
270
280
  });
281
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.tsx","../src/useWallet.tsx","../src/WalletProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nexport { useWallet } from \"./useWallet\";\nexport * from \"./WalletProvider\";\nexport type {\n Wallet,\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n WalletName,\n InputTransactionData,\n} from \"@aptos-labs/wallet-adapter-core\";\n\nexport {\n WalletReadyState,\n NetworkName,\n isInAppBrowser,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n StandardNetworkInfo,\n AptosChangeNetworkOutput,\n Network,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n StandardNetworkInfo,\n Network,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n autoConnect?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n autoConnect = false,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(() => new WalletCore(plugins ?? []), []);\n const [wallets, setWallets] = useState<ReadonlyArray<Wallet>>(\n walletCore.wallets\n );\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, wallets);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = wallets?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (standardWallet: Wallet) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n"],"mappings":"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","names":["import_react","network","wallet","wallets","import_wallet_adapter_core"]}
package/dist/index.mjs CHANGED
@@ -107,6 +107,15 @@ var AptosWalletAdapterProvider = ({
107
107
  return Promise.reject(error);
108
108
  }
109
109
  };
110
+ const changeNetwork = async (network2) => {
111
+ try {
112
+ return await walletCore.changeNetwork(network2);
113
+ } catch (error) {
114
+ if (onError)
115
+ onError(error);
116
+ return Promise.reject(error);
117
+ }
118
+ };
110
119
  useEffect(() => {
111
120
  if (autoConnect) {
112
121
  if (localStorage.getItem("AptosWalletName") && !connected) {
@@ -223,7 +232,8 @@ var AptosWalletAdapterProvider = ({
223
232
  signMessage,
224
233
  signMessageAndVerify,
225
234
  isLoading,
226
- submitTransaction
235
+ submitTransaction,
236
+ changeNetwork
227
237
  },
228
238
  children
229
239
  });
@@ -246,3 +256,4 @@ export {
246
256
  isRedirectable,
247
257
  useWallet
248
258
  };
259
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/useWallet.tsx","../src/WalletProvider.tsx","../src/index.tsx"],"sourcesContent":["import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n StandardNetworkInfo,\n AptosChangeNetworkOutput,\n Network,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n StandardNetworkInfo,\n Network,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n autoConnect?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n autoConnect = false,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(() => new WalletCore(plugins ?? []), []);\n const [wallets, setWallets] = useState<ReadonlyArray<Wallet>>(\n walletCore.wallets\n );\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, wallets);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = wallets?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (standardWallet: Wallet) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n","import * as React from \"react\";\nexport { useWallet } from \"./useWallet\";\nexport * from \"./WalletProvider\";\nexport type {\n Wallet,\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n WalletName,\n InputTransactionData,\n} from \"@aptos-labs/wallet-adapter-core\";\n\nexport {\n WalletReadyState,\n NetworkName,\n isInAppBrowser,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\n"],"mappings":"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","names":["network","wallet","wallets"]}
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { AccountInfo, NetworkInfo, WalletInfo, SignMessagePayload, SignMessageResponse, Wallet, InputGenerateTransactionOptions, AnyRawTransaction, InputTransactionData, InputSubmitTransactionData, PendingTransactionResponse, AccountAuthenticator, Types, WalletName, AptosChangeNetworkOutput, Network } from "@aptos-labs/wallet-adapter-core";
3
+ export interface WalletContextState {
4
+ connected: boolean;
5
+ isLoading: boolean;
6
+ account: AccountInfo | null;
7
+ network: NetworkInfo | null;
8
+ connect(walletName: WalletName): void;
9
+ disconnect(): void;
10
+ wallet: WalletInfo | null;
11
+ wallets?: ReadonlyArray<Wallet>;
12
+ signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;
13
+ signTransaction(transactionOrPayload: AnyRawTransaction | Types.TransactionPayload, asFeePayer?: boolean, options?: InputGenerateTransactionOptions): Promise<AccountAuthenticator>;
14
+ submitTransaction(transaction: InputSubmitTransactionData): Promise<PendingTransactionResponse>;
15
+ signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
16
+ signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;
17
+ changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;
18
+ }
19
+ export declare const WalletContext: import("react").Context<WalletContextState>;
20
+ export declare function useWallet(): WalletContextState;
21
+ //# sourceMappingURL=useWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../src/useWallet.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,+BAA+B,EAC/B,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,EACL,UAAU,EAEV,wBAAwB,EACxB,OAAO,EACR,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACtC,UAAU,IAAI,IAAI,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,wBAAwB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,eAAe,CACb,oBAAoB,EAAE,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,EAClE,UAAU,CAAC,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,+BAA+B,GACxC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,iBAAiB,CACf,WAAW,EAAE,0BAA0B,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACpE;AAMD,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptos-labs/wallet-adapter-react",
3
- "version": "2.3.3",
3
+ "version": "2.3.5",
4
4
  "description": "Aptos Wallet Adapter React Provider",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -37,14 +37,22 @@
37
37
  "@aptos-labs/wallet-adapter-tsconfig": "0.0.0"
38
38
  },
39
39
  "dependencies": {
40
- "@aptos-labs/wallet-adapter-core": "3.11.1"
40
+ "@aptos-labs/wallet-adapter-core": "3.12.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "react": "^18"
44
44
  },
45
+ "files": [
46
+ "dist",
47
+ "src",
48
+ "!src/**.test.ts",
49
+ "!src/**/__tests__"
50
+ ],
45
51
  "scripts": {
46
- "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
47
- "dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
52
+ "build:bundle": "tsup src/index.tsx --format esm,cjs --sourcemap",
53
+ "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap",
54
+ "build": "pnpm build:bundle && pnpm build:declarations",
55
+ "dev": "tsup src/index.tsx --format esm,cjs --watch",
48
56
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
49
57
  "lint": "TIMING=1 eslint \"src/**/*.ts*\""
50
58
  }
@@ -22,6 +22,8 @@ import type {
22
22
  WalletName,
23
23
  Types,
24
24
  InputTransactionData,
25
+ StandardNetworkInfo,
26
+ Network,
25
27
  } from "@aptos-labs/wallet-adapter-core";
26
28
  import { WalletCore } from "@aptos-labs/wallet-adapter-core";
27
29
 
@@ -140,6 +142,15 @@ export const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({
140
142
  }
141
143
  };
142
144
 
145
+ const changeNetwork = async (network: Network) => {
146
+ try {
147
+ return await walletCore.changeNetwork(network);
148
+ } catch (error: any) {
149
+ if (onError) onError(error);
150
+ return Promise.reject(error);
151
+ }
152
+ };
153
+
143
154
  useEffect(() => {
144
155
  if (autoConnect) {
145
156
  if (localStorage.getItem("AptosWalletName") && !connected) {
@@ -273,6 +284,7 @@ export const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({
273
284
  signMessageAndVerify,
274
285
  isLoading,
275
286
  submitTransaction,
287
+ changeNetwork,
276
288
  }}
277
289
  >
278
290
  {children}
package/src/useWallet.tsx CHANGED
@@ -13,6 +13,9 @@ import {
13
13
  AccountAuthenticator,
14
14
  Types,
15
15
  WalletName,
16
+ StandardNetworkInfo,
17
+ AptosChangeNetworkOutput,
18
+ Network,
16
19
  } from "@aptos-labs/wallet-adapter-core";
17
20
  import { createContext, useContext } from "react";
18
21
 
@@ -36,6 +39,7 @@ export interface WalletContextState {
36
39
  ): Promise<PendingTransactionResponse>;
37
40
  signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
38
41
  signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;
42
+ changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;
39
43
  }
40
44
 
41
45
  const DEFAULT_CONTEXT = {
package/CHANGELOG.md DELETED
@@ -1,289 +0,0 @@
1
- # @aptos-labs/wallet-adapter-react
2
-
3
- ## 2.3.3
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [55f9970]
8
- - @aptos-labs/wallet-adapter-core@3.11.1
9
-
10
- ## 2.3.2
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [245ce8d]
15
- - @aptos-labs/wallet-adapter-core@3.11.0
16
-
17
- ## 2.3.1
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies [41f9485]
22
- - @aptos-labs/wallet-adapter-core@3.10.0
23
-
24
- ## 2.3.0
25
-
26
- ### Minor Changes
27
-
28
- - 444c708: Fix wallet detection
29
-
30
- ### Patch Changes
31
-
32
- - Updated dependencies [6be2a06]
33
- - @aptos-labs/wallet-adapter-core@3.9.0
34
-
35
- ## 2.2.1
36
-
37
- ### Patch Changes
38
-
39
- - Updated dependencies [4127cfb]
40
- - @aptos-labs/wallet-adapter-core@3.8.0
41
-
42
- ## 2.2.0
43
-
44
- ### Minor Changes
45
-
46
- - 4d6e2f6: Add AIP-62 wallet standard support
47
-
48
- ### Patch Changes
49
-
50
- - Updated dependencies [4d6e2f6]
51
- - @aptos-labs/wallet-adapter-core@3.7.0
52
-
53
- ## 2.1.8
54
-
55
- ### Patch Changes
56
-
57
- - Updated dependencies [8ebd4c7]
58
- - @aptos-labs/wallet-adapter-core@3.6.0
59
-
60
- ## 2.1.7
61
-
62
- ### Patch Changes
63
-
64
- - Updated dependencies [4ca4201]
65
- - @aptos-labs/wallet-adapter-core@3.5.0
66
-
67
- ## 2.1.6
68
-
69
- ### Patch Changes
70
-
71
- - Updated dependencies [e1e9eb2]
72
- - @aptos-labs/wallet-adapter-core@3.4.0
73
-
74
- ## 2.1.5
75
-
76
- ### Patch Changes
77
-
78
- - Updated dependencies [570cbda]
79
- - @aptos-labs/wallet-adapter-core@3.3.0
80
-
81
- ## 2.1.4
82
-
83
- ### Patch Changes
84
-
85
- - Updated dependencies [3f38c51]
86
- - @aptos-labs/wallet-adapter-core@3.2.1
87
-
88
- ## 2.1.3
89
-
90
- ### Patch Changes
91
-
92
- - Updated dependencies [12163ca]
93
- - Updated dependencies [a6f0e46]
94
- - @aptos-labs/wallet-adapter-core@3.2.0
95
-
96
- ## 2.1.2
97
-
98
- ### Patch Changes
99
-
100
- - a1c08cc: Export missing InputTransactionData type
101
-
102
- ## 2.1.1
103
-
104
- ### Patch Changes
105
-
106
- - 6266a29: Consolidate options argument on signAndSubmitTransaction
107
- - Updated dependencies [6266a29]
108
- - @aptos-labs/wallet-adapter-core@3.1.1
109
-
110
- ## 2.1.0
111
-
112
- ### Minor Changes
113
-
114
- - aa3d15a: Make sender optional when sign and submit single signer transaction
115
-
116
- ### Patch Changes
117
-
118
- - Updated dependencies [6257015]
119
- - Updated dependencies [aa3d15a]
120
- - @aptos-labs/wallet-adapter-core@3.1.0
121
-
122
- ## 2.0.0
123
-
124
- ### Major Changes
125
-
126
- - 31e0084: Support TypeScript SDK V2. Fully compatible with existing SDK V1 and Wallet Adapter V1
127
- but with a full SDK V2 support for the dapp.
128
-
129
- - Add support for SDK V2 input types
130
- - `signAndSubmitTransaction()` accept only SDK V2 transaction input type
131
- - Implement a `submitTransaction()` function for multi signers transactions
132
- - `signTransaction()` to support both SDK V1 and V2 versions
133
- - Convert wallet `SignedTransaction` response from `signTransaction()` to TS SDK V2 `AccountAuthenticator`
134
- - Demo app to demonstrate different trnsaction flows - single signer, sponsor and multi agent transactions
135
- - Reject promise on core and/or provider errors instead of just returning `false`
136
- - Use `@aptos-labs/ts-sdk@experimental` version `0.0.7`
137
-
138
- ### Patch Changes
139
-
140
- - Updated dependencies [31e0084]
141
- - @aptos-labs/wallet-adapter-core@3.0.0
142
-
143
- ## 1.4.0
144
-
145
- ### Minor Changes
146
-
147
- - 7acfa69: Adding support for the new Typescript SDK in the package `@aptos-labs/ts-sdk`. The wallet adapter now supports submitting a basic transaction with the new SDK types.
148
-
149
- ### Patch Changes
150
-
151
- - dd6e1ed: Moves dependencies to peer dependencies as needed
152
- - Updated dependencies [7acfa69]
153
- - Updated dependencies [dd6e1ed]
154
- - @aptos-labs/wallet-adapter-core@2.6.0
155
-
156
- ## 1.3.2
157
-
158
- ### Patch Changes
159
-
160
- - 7e314e5: Update aptos dependency
161
- - Updated dependencies [7e314e5]
162
- - @aptos-labs/wallet-adapter-core@2.5.1
163
-
164
- ## 1.3.1
165
-
166
- ### Patch Changes
167
-
168
- - Updated dependencies [c95933a]
169
- - @aptos-labs/wallet-adapter-core@2.5.0
170
-
171
- ## 1.3.0
172
-
173
- ### Minor Changes
174
-
175
- - 3834890: Add an optional `onError` prop to error handle wallet callbacks
176
-
177
- ### Patch Changes
178
-
179
- - Updated dependencies [d2a0bbd]
180
- - Updated dependencies [b0586e8]
181
- - @aptos-labs/wallet-adapter-core@2.4.0
182
-
183
- ## 1.2.3
184
-
185
- ### Patch Changes
186
-
187
- - dc98bf4: fix sendAndSubmitTransaction params
188
- - Updated dependencies [dc98bf4]
189
- - @aptos-labs/wallet-adapter-core@2.3.3
190
-
191
- ## 1.2.2
192
-
193
- ### Patch Changes
194
-
195
- - 22ecf6a: Throw `wallet already connected` error when trying to connect to an already connected wallet
196
- - e4b06de: Await for wallet connect request before setting isLoading state
197
- - Updated dependencies [22ecf6a]
198
- - @aptos-labs/wallet-adapter-core@2.3.2
199
-
200
- ## 1.2.1
201
-
202
- ### Patch Changes
203
-
204
- - Updated dependencies [06f334f]
205
- - @aptos-labs/wallet-adapter-core@2.3.1
206
-
207
- ## 1.2.0
208
-
209
- ### Minor Changes
210
-
211
- - 1605d28: Support ReadonlyArray of Wallets in AptosWalletAdapterProvider and WalletCore
212
-
213
- ### Patch Changes
214
-
215
- - Updated dependencies [bb1595e]
216
- - Updated dependencies [1605d28]
217
- - @aptos-labs/wallet-adapter-core@2.3.0
218
-
219
- ## 1.1.0
220
-
221
- ### Minor Changes
222
-
223
- - d8d5a8a: Support deeplink on React Provider and Nextjs demo app
224
-
225
- ## 1.0.6
226
-
227
- ### Patch Changes
228
-
229
- - Updated dependencies [814939c]
230
- - @aptos-labs/wallet-adapter-core@2.2.0
231
-
232
- ## 1.0.5
233
-
234
- ### Patch Changes
235
-
236
- - 56a3f9f: BCS transaction support in react provider package
237
-
238
- ## 1.0.4
239
-
240
- ### Patch Changes
241
-
242
- - 8dea640: Fix wallet adapter auto reconnect on page refresh
243
- - Updated dependencies [50968c4]
244
- - Updated dependencies [8dea640]
245
- - @aptos-labs/wallet-adapter-core@2.1.0
246
-
247
- ## 1.0.3
248
-
249
- ### Patch Changes
250
-
251
- - 03eb0f5: Define core package version to use
252
-
253
- ## 0.2.4
254
-
255
- ### Patch Changes
256
-
257
- - e03f79c: Update Blocto and Martian package version and fix a minor autoConnect bug
258
-
259
- ## 0.2.3
260
-
261
- ### Patch Changes
262
-
263
- - 7498973: Support Loadable wallet for ant-design and export NetworkName
264
-
265
- ## 0.2.2
266
-
267
- ### Patch Changes
268
-
269
- - 552d255: Add react package as a dependency
270
-
271
- ## 0.2.1
272
-
273
- ### Patch Changes
274
-
275
- - c3eb031: Export WalletReadyState enum from react package
276
-
277
- ## 0.2.0
278
-
279
- ### Minor Changes
280
-
281
- - 6e53116: Add support to verify a signed message
282
-
283
- ### Patch Changes
284
-
285
- - Updated dependencies [18a0429]
286
- - Updated dependencies [42e29f6]
287
- - Updated dependencies [576bb57]
288
- - Updated dependencies [6e53116]
289
- - @aptos-labs/wallet-adapter-core@0.2.0
package/READMEV1.md DELETED
@@ -1,267 +0,0 @@
1
- > **_NOTE:_** This documentation is for Wallet Adapter `v^1.*.*`
2
-
3
- # Wallet Adapter React Provider
4
-
5
- A react provider wrapper for the Aptos Wallet Adapter
6
-
7
- Dapps that want to use the adapter should install this package and other supported wallet packages.
8
-
9
- ### Support
10
-
11
- The react provider supports all [wallet standard](https://aptos.dev/guides/wallet-standard) functions and feature functions
12
-
13
- ##### Standard functions
14
-
15
- ```
16
- connect
17
- disconnect
18
- connected
19
- account
20
- network
21
- signAndSubmitTransaction
22
- signMessage
23
- ```
24
-
25
- ##### Feature functions - functions that may not be supported by all wallets
26
-
27
- ```
28
- signTransaction
29
- signMessageAndVerify
30
- signAndSubmitBCSTransaction
31
- ```
32
-
33
- ### Usage
34
-
35
- #### Install Dependencies
36
-
37
- Install wallet dependencies you want to include in your app.
38
- To do that, you can look at our [supported wallets list](https://github.com/aptos-labs/aptos-wallet-adapter#supported-wallet-packages). Each wallet is a link to npm package where you can install it from.
39
-
40
- Next, install the `@aptos-labs/wallet-adapter-react`
41
-
42
- ```
43
- pnpm i @aptos-labs/wallet-adapter-react
44
- ```
45
-
46
- using npm
47
-
48
- ```
49
- npm i @aptos-labs/wallet-adapter-react
50
- ```
51
-
52
- #### Import dependencies
53
-
54
- On the `App.jsx` file,
55
-
56
- Import the installed wallets.
57
-
58
- ```js
59
- import { SomeAptosWallet } from "some-aptos-wallet-package";
60
- ```
61
-
62
- Import the `AptosWalletAdapterProvider`.
63
-
64
- ```js
65
- import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react";
66
- ```
67
-
68
- Wrap your app with the Provider, pass it the `plugins (wallets)` you want to have on your app as an array and a `autoConnect` option (set to false by default)
69
-
70
- ```js
71
- const wallets = [new AptosWallet()];
72
-
73
- <AptosWalletAdapterProvider
74
- plugins={wallets}
75
- autoConnect={true}
76
- onError={(error) => {
77
- console.log("error", error);
78
- }}
79
- >
80
- <App />
81
- </AptosWalletAdapterProvider>;
82
- ```
83
-
84
- #### Use Wallet
85
-
86
- On any page you want to use the wallet props, import `useWallet` from `@aptos-labs/wallet-adapter-react`
87
-
88
- ```js
89
- import { useWallet } from "@aptos-labs/wallet-adapter-react";
90
- ```
91
-
92
- Then you can use the exported properties
93
-
94
- ```js
95
- const {
96
- connect,
97
- account,
98
- network,
99
- connected,
100
- disconnect,
101
- wallet,
102
- wallets,
103
- signAndSubmitTransaction,
104
- signAndSubmitBCSTransaction,
105
- signTransaction,
106
- signMessage,
107
- signMessageAndVerify,
108
- } = useWallet();
109
- ```
110
-
111
- ### Use a UI package (recommended)
112
-
113
- As part of the wallet adapter repo we provide a wallet connect UI package that provides a wallet connect button and a wallet select modal.
114
- You can find it [here](../wallet-adapter-ant-design/) with instructions on how to use it.
115
-
116
- #### Examples
117
-
118
- ##### connect(walletName)
119
-
120
- ```js
121
- const onConnect = async (walletName) => {
122
- await connect(walletName);
123
- };
124
-
125
- <button onClick={() => onConnect(wallet.name)}>{wallet.name}</button>;
126
- ```
127
-
128
- ##### disconnect()
129
-
130
- ```js
131
- <button onClick={disconnect}>Disconnect</button>
132
- ```
133
-
134
- ##### signAndSubmitTransaction(payload)
135
-
136
- ```js
137
- const onSignAndSubmitTransaction = async () => {
138
- const payload: Types.TransactionPayload = {
139
- type: "entry_function_payload",
140
- function: "0x1::coin::transfer",
141
- type_arguments: ["0x1::aptos_coin::AptosCoin"],
142
- arguments: [account?.address, 1], // 1 is in Octas
143
- };
144
- const response = await signAndSubmitTransaction(payload);
145
- // if you want to wait for transaction
146
- try {
147
- await aptosClient.waitForTransaction(response?.hash || "");
148
- } catch (error) {
149
- console.error(error);
150
- }
151
- };
152
-
153
- <button onClick={onSignAndSubmitTransaction}>
154
- Sign and submit transaction
155
- </button>
156
- ```
157
-
158
- ##### signAndSubmitBCSTransaction(payload)
159
-
160
- ```js
161
- const onSignAndSubmitBCSTransaction = async () => {
162
- const token = new TxnBuilderTypes.TypeTagStruct(
163
- TxnBuilderTypes.StructTag.fromString("0x1::aptos_coin::AptosCoin")
164
- );
165
- const entryFunctionBCSPayload =
166
- new TxnBuilderTypes.TransactionPayloadEntryFunction(
167
- TxnBuilderTypes.EntryFunction.natural(
168
- "0x1::coin",
169
- "transfer",
170
- [token],
171
- [
172
- BCS.bcsToBytes(
173
- TxnBuilderTypes.AccountAddress.fromHex(account!.address)
174
- ),
175
- BCS.bcsSerializeUint64(2),
176
- ]
177
- )
178
- );
179
-
180
- const response = await signAndSubmitBCSTransaction(entryFunctionBCSPayload);
181
- // if you want to wait for transaction
182
- try {
183
- await aptosClient.waitForTransaction(response?.hash || "");
184
- } catch (error) {
185
- console.error(error);
186
- }
187
- };
188
-
189
- <button onClick={onSignAndSubmitTransaction}>
190
- Sign and submit BCS transaction
191
- </button>
192
- ```
193
-
194
- ##### signMessage(payload)
195
-
196
- ```js
197
- const onSignMessage = async () => {
198
- const payload = {
199
- message: "Hello from Aptos Wallet Adapter",
200
- nonce: "random_string",
201
- };
202
- const response = await signMessage(payload);
203
- };
204
-
205
- <button onClick={onSignMessage}>Sign message</button>;
206
- ```
207
-
208
- ##### Account
209
-
210
- ```js
211
- <div>{account?.address}</div>
212
- <div>{account?.publicKey}</div>
213
- ```
214
-
215
- ##### Network
216
-
217
- ```js
218
- <div>{network?.name}</div>
219
- ```
220
-
221
- ##### Wallet
222
-
223
- ```js
224
- <div>{wallet?.name}</div>
225
- <div>{wallet?.icon}</div>
226
- <div>{wallet?.url}</div>
227
- ```
228
-
229
- ##### Wallets
230
-
231
- ```js
232
- {
233
- wallets.map((wallet) => <p>{wallet.name}</p>);
234
- }
235
- ```
236
-
237
- ##### signTransaction(payload)
238
-
239
- ```js
240
- const onSignTransaction = async () => {
241
- const payload: Types.TransactionPayload = {
242
- type: "entry_function_payload",
243
- function: "0x1::coin::transfer",
244
- type_arguments: ["0x1::aptos_coin::AptosCoin"],
245
- arguments: [account?.address, 1], // 1 is in Octas
246
- };
247
- const response = await signTransaction(payload);
248
- };
249
-
250
- <button onClick={onSignTransaction}>
251
- Sign transaction
252
- </button>
253
- ```
254
-
255
- ##### signMessageAndVerify(payload)
256
-
257
- ```js
258
- const onSignMessageAndVerify = async () => {
259
- const payload = {
260
- message: "Hello from Aptos Wallet Adapter",
261
- nonce: "random_string",
262
- };
263
- const response = await signMessageAndVerify(payload);
264
- };
265
-
266
- <button onClick={onSignMessageAndVerify}>Sign message and verify</button>;
267
- ```