@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.
- package/dist/WalletProvider.d.ts +10 -0
- package/dist/WalletProvider.d.ts.map +1 -0
- package/dist/index.d.ts +5 -30
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +12 -1
- package/dist/index.mjs.map +1 -0
- package/dist/useWallet.d.ts +21 -0
- package/dist/useWallet.d.ts.map +1 -0
- package/package.json +12 -4
- package/src/WalletProvider.tsx +12 -0
- package/src/useWallet.tsx +4 -0
- package/CHANGELOG.md +0 -289
- package/READMEV1.md +0 -267
|
@@ -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
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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":";AAmBA,SAAS,eAAe,kBAAkB;AAyB1C,IAAM,kBAAkB;AAAA,EACtB,WAAW;AACb;AAEO,IAAM,gBAAgB;AAAA,EAC3B;AACF;AAEO,SAAS,YAAgC;AAC9C,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO;AACT;;;AC1DA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAoBP,SAAS,kBAAkB;AA3B3B;AAoCA,IAAM,eAKF;AAAA,EACF,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAEO,IAAM,6BAA2D,CAAC;AAAA,EACvE;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACF,MAAgC;AAC9B,QAAM,CAAC,EAAE,WAAW,SAAS,SAAS,OAAO,GAAG,QAAQ,IACtD,SAAS,YAAY;AAIvB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,IAAI;AAExD,QAAM,aAAa,QAAQ,MAAM,IAAI,WAAW,4BAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,QAAM,CAAC,SAAS,UAAU,IAAI;AAAA,IAC5B,WAAW;AAAA,EACb;AAEA,QAAM,UAAU,OAAO,eAA2B;AAChD,QAAI;AACF,mBAAa,IAAI;AACjB,YAAM,WAAW,QAAQ,UAAU;AAAA,IACrC,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B,UAAE;AACA,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,aAAa,YAAY;AAC7B,QAAI;AACF,YAAM,WAAW,WAAW;AAAA,IAC9B,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,kBAAkB,OACtB,aACA,YACA,YACkC;AAClC,QAAI;AACF,aAAO,MAAM,WAAW,gBAAgB,aAAa,YAAY,OAAO;AAAA,IAC1E,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,cAAc,OAClB,YACiC;AACjC,QAAI;AACF,aAAO,MAAM,WAAW,YAAY,OAAO;AAAA,IAC7C,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,uBAAuB,OAC3B,YACqB;AACrB,QAAI;AACF,aAAO,MAAM,WAAW,qBAAqB,OAAO;AAAA,IACtD,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,oBAAoB,OACxB,gBACwC;AACxC,QAAI;AACF,aAAO,MAAM,WAAW,kBAAkB,WAAW;AAAA,IACvD,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,2BAA2B,OAC/B,gBACG;AACH,QAAI;AACF,aAAO,MAAM,WAAW,yBAAyB,WAAW;AAAA,IAC9D,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAOA,aAAqB;AAChD,QAAI;AACF,aAAO,MAAM,WAAW,cAAcA,QAAO;AAAA,IAC/C,SAAS,OAAP;AACA,UAAI;AAAS,gBAAQ,KAAK;AAC1B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,aAAa;AACf,UAAI,aAAa,QAAQ,iBAAiB,KAAK,CAAC,WAAW;AACzD,gBAAQ,aAAa,QAAQ,iBAAiB,CAAe;AAAA,MAC/D,OAAO;AAEL,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,EACF,GAAG,OAAO;AAEV,YAAU,MAAM;AACd,QAAI,WAAW;AACb,iBAAW,gBAAgB;AAC3B,iBAAW,gBAAgB;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAGd,QAAM,gBAAgB,MAAM;AAC1B,aAAS,CAAC,UAAU;AAClB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW;AAAA,QACX,SAAS,WAAW;AAAA,QACpB,SAAS,WAAW;AAAA,QACpB,QAAQ,WAAW;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAGA,QAAM,mBAAmB,MAAM;AAC7B,QAAI,CAAC;AAAW;AAChB,aAAS,CAAC,UAAU;AAClB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW;AAAA,QACX,SAAS,WAAW;AAAA,QACpB,SAAS,WAAW;AAAA,QACpB,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH;AAGA,QAAM,sBAAsB,YAAY,MAAM;AAC5C,QAAI,CAAC;AAAW;AAChB,QAAI,CAAC,WAAW;AAAQ;AACxB,aAAS,CAAC,UAAU;AAClB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,WAAW;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,CAAC;AAGd,QAAM,sBAAsB,YAAY,MAAM;AAC5C,QAAI,CAAC;AAAW;AAChB,QAAI,CAAC,WAAW;AAAQ;AACxB,aAAS,CAAC,UAAU;AAClB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,WAAW;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,yBAAyB,CAAC,kBAA0B;AAExD,UAAM,iBAAiB,mCAAS,IAAI,CAACC,YAAW;AAC9C,UAAIA,QAAO,SAAS,cAAc,MAAM;AAEtC,eAAO,EAAE,GAAGA,SAAQ,YAAY,cAAc,WAAW;AAAA,MAC3D;AACA,aAAOA;AAAA,IACT;AACA,eAAW,cAAc;AAAA,EAC3B;AAEA,QAAM,6BAA6B,CAAC,mBAA2B;AAG7D,UAAM,sBAAsB,QAAQ;AAAA,MAClC,CAACA,YAAWA,QAAO,QAAQ,eAAe;AAAA,IAC5C;AACA,QAAI,wBAAwB,IAAI;AAE9B,iBAAW,CAACC,aAAY;AAAA,QACtB,GAAGA,SAAQ,MAAM,GAAG,mBAAmB;AAAA,QACvC;AAAA,QACA,GAAGA,SAAQ,MAAM,sBAAsB,CAAC;AAAA,MAC1C,CAAC;AAAA,IACH,OAAO;AAEL,iBAAW,CAACA,aAAY,CAAC,GAAGA,UAAS,cAAc,CAAC;AAAA,IACtD;AAAA,EACF;AAEA,YAAU,MAAM;AACd,eAAW,GAAG,WAAW,aAAa;AACtC,eAAW,GAAG,cAAc,gBAAgB;AAC5C,eAAW,GAAG,iBAAiB,mBAAmB;AAClD,eAAW,GAAG,iBAAiB,mBAAmB;AAClD,eAAW,GAAG,oBAAoB,sBAAsB;AACxD,eAAW,GAAG,wBAAwB,0BAA0B;AAChE,WAAO,MAAM;AACX,iBAAW,IAAI,WAAW,aAAa;AACvC,iBAAW,IAAI,cAAc,gBAAgB;AAC7C,iBAAW,IAAI,iBAAiB,mBAAmB;AACnD,iBAAW,IAAI,iBAAiB,mBAAmB;AACnD,iBAAW,IAAI,oBAAoB,sBAAsB;AACzD,iBAAW,IAAI,wBAAwB,0BAA0B;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,SAAS,SAAS,CAAC;AAEvB,SACE,oBAAC,cAAc,UAAd;AAAA,IACC,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IAEC;AAAA,GACH;AAEJ;;;ACxRA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","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
|
+
"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.
|
|
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 --
|
|
47
|
-
"
|
|
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
|
}
|
package/src/WalletProvider.tsx
CHANGED
|
@@ -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
|
-
```
|