thirdweb 5.41.0 → 5.42.0
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/cjs/adapters/wallet-adapter.js +12 -1
- package/dist/cjs/adapters/wallet-adapter.js.map +1 -1
- package/dist/cjs/client/client.js +19 -1
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/exports/extensions/common.js +3 -1
- package/dist/cjs/exports/extensions/common.js.map +1 -1
- package/dist/cjs/exports/extensions/erc1155.js +2 -1
- package/dist/cjs/exports/extensions/erc1155.js.map +1 -1
- package/dist/cjs/exports/react.js +7 -2
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/utils.js +3 -1
- package/dist/cjs/exports/utils.js.map +1 -1
- package/dist/cjs/exports/wallets/in-app.js.map +1 -1
- package/dist/cjs/exports/wallets.js.map +1 -1
- package/dist/cjs/exports/wallets.native.js.map +1 -1
- package/dist/cjs/react/core/hooks/others/useChainQuery.js +19 -3
- package/dist/cjs/react/core/hooks/others/useChainQuery.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/transaction-button-utils.js.map +1 -1
- package/dist/cjs/react/web/ui/AutoConnect/AutoConnect.js +5 -0
- package/dist/cjs/react/web/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +196 -2
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +109 -3
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js +127 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +70 -3
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +19 -7
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/storage/download.js +44 -4
- package/dist/cjs/storage/download.js.map +1 -1
- package/dist/cjs/utils/contract/parse-abi-params.js +87 -0
- package/dist/cjs/utils/contract/parse-abi-params.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/create-wallet.js +73 -0
- package/dist/cjs/wallets/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/index.js +2 -3
- package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/ecosystem.js +29 -3
- package/dist/cjs/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +100 -5
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/smart/smart-wallet.js +71 -5
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/esm/adapters/wallet-adapter.js +12 -1
- package/dist/esm/adapters/wallet-adapter.js.map +1 -1
- package/dist/esm/client/client.js +19 -1
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/exports/extensions/common.js +1 -0
- package/dist/esm/exports/extensions/common.js.map +1 -1
- package/dist/esm/exports/extensions/erc1155.js +1 -1
- package/dist/esm/exports/extensions/erc1155.js.map +1 -1
- package/dist/esm/exports/react.js +3 -0
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/exports/utils.js +1 -0
- package/dist/esm/exports/utils.js.map +1 -1
- package/dist/esm/exports/wallets/in-app.js.map +1 -1
- package/dist/esm/exports/wallets.js.map +1 -1
- package/dist/esm/exports/wallets.native.js.map +1 -1
- package/dist/esm/react/core/hooks/others/useChainQuery.js +19 -3
- package/dist/esm/react/core/hooks/others/useChainQuery.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/transaction-button-utils.js.map +1 -1
- package/dist/esm/react/web/ui/AutoConnect/AutoConnect.js +5 -0
- package/dist/esm/react/web/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +196 -2
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +109 -3
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js +124 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +69 -3
- package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +19 -7
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/storage/download.js +44 -4
- package/dist/esm/storage/download.js.map +1 -1
- package/dist/esm/utils/contract/parse-abi-params.js +84 -0
- package/dist/esm/utils/contract/parse-abi-params.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/create-wallet.js +73 -0
- package/dist/esm/wallets/create-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/index.js +2 -3
- package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/ecosystem.js +29 -3
- package/dist/esm/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +100 -5
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/smart/smart-wallet.js +71 -5
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/types/adapters/wallet-adapter.d.ts +12 -1
- package/dist/types/adapters/wallet-adapter.d.ts.map +1 -1
- package/dist/types/client/client.d.ts +19 -1
- package/dist/types/client/client.d.ts.map +1 -1
- package/dist/types/exports/extensions/common.d.ts +1 -0
- package/dist/types/exports/extensions/common.d.ts.map +1 -1
- package/dist/types/exports/extensions/erc1155.d.ts +1 -1
- package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
- package/dist/types/exports/react.d.ts +2 -0
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/utils.d.ts +2 -0
- package/dist/types/exports/utils.d.ts.map +1 -1
- package/dist/types/exports/wallets/in-app.d.ts +1 -0
- package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
- package/dist/types/exports/wallets.d.ts +4 -2
- package/dist/types/exports/wallets.d.ts.map +1 -1
- package/dist/types/exports/wallets.native.d.ts +3 -2
- package/dist/types/exports/wallets.native.d.ts.map +1 -1
- package/dist/types/react/core/hooks/others/useChainQuery.d.ts +21 -4
- package/dist/types/react/core/hooks/others/useChainQuery.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/transaction-button-utils.d.ts +1 -0
- package/dist/types/react/core/hooks/transaction/transaction-button-utils.d.ts.map +1 -1
- package/dist/types/react/web/ui/AutoConnect/AutoConnect.d.ts +5 -0
- package/dist/types/react/web/ui/AutoConnect/AutoConnect.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +196 -2
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +109 -3
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts +1 -1
- package/dist/types/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.d.ts +63 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts +21 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/storage/download.d.ts +43 -3
- package/dist/types/storage/download.d.ts.map +1 -1
- package/dist/types/utils/contract/parse-abi-params.d.ts +29 -0
- package/dist/types/utils/contract/parse-abi-params.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/create-wallet.d.ts +73 -0
- package/dist/types/wallets/create-wallet.d.ts.map +1 -1
- package/dist/types/wallets/ecosystem/types.d.ts +5 -4
- package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/ecosystem.d.ts +29 -3
- package/dist/types/wallets/in-app/web/ecosystem.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +100 -5
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/smart/smart-wallet.d.ts +71 -5
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/wallet-adapter.ts +12 -1
- package/src/client/client.ts +19 -1
- package/src/exports/extensions/common.ts +5 -0
- package/src/exports/extensions/erc1155.ts +1 -0
- package/src/exports/react.ts +7 -0
- package/src/exports/utils.ts +3 -0
- package/src/exports/wallets/in-app.ts +6 -0
- package/src/exports/wallets.native.ts +8 -1
- package/src/exports/wallets.ts +13 -1
- package/src/react/core/hooks/others/useChainQuery.ts +24 -4
- package/src/react/core/hooks/transaction/transaction-button-utils.ts +1 -0
- package/src/react/web/ui/AutoConnect/AutoConnect.tsx +5 -0
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +196 -2
- package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +109 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +2 -2
- package/src/react/web/ui/PayEmbed.tsx +1 -1
- package/src/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/BuyDirectListingButton.test.tsx +27 -0
- package/src/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.tsx +200 -0
- package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/index.tsx +78 -5
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +19 -8
- package/src/storage/download.ts +47 -4
- package/src/utils/contract/parse-abi-params.test.ts +160 -0
- package/src/utils/contract/parse-abi-params.ts +90 -0
- package/src/version.ts +1 -1
- package/src/wallets/create-wallet.ts +73 -0
- package/src/wallets/ecosystem/types.ts +9 -5
- package/src/wallets/in-app/core/wallet/index.ts +2 -3
- package/src/wallets/in-app/web/ecosystem.ts +29 -3
- package/src/wallets/in-app/web/in-app.ts +100 -5
- package/src/wallets/smart/smart-wallet.ts +71 -5
@@ -4,18 +4,58 @@ exports.download = download;
|
|
4
4
|
const fetch_js_1 = require("../utils/fetch.js");
|
5
5
|
const ipfs_js_1 = require("../utils/ipfs.js");
|
6
6
|
/**
|
7
|
-
* Downloads a file from the specified URI.
|
7
|
+
* @description Downloads a file from the specified IPFS, Arweave, or HTTP URI.
|
8
|
+
*
|
9
|
+
* `download` will parse the provided URI based on its scheme (ipfs://, ar://, https://) and convert it to a URL to fetch the file from thirdweb's storage service.
|
10
|
+
*
|
8
11
|
* @param options - The download options.
|
9
|
-
* @
|
10
|
-
* @
|
12
|
+
* @param options.client - The Thirdweb client. See [createThirdwebClient](https://portal.thirdweb.com/references/typescript/v5/createThirdwebClient).
|
13
|
+
* @param options.uri - The URI of the file to download. Can be IPFS, Arweave, or HTTP.
|
14
|
+
* @param [options.requestTimeoutMs] - The maximum time in milliseconds to wait for the request to complete. Defaults to 60 seconds (60,000 milliseconds).
|
15
|
+
*
|
16
|
+
* @returns Asynchronously returns the network response from fetching the file.
|
17
|
+
* @throws An error if the URI scheme is invalid or if the request fails.
|
18
|
+
*
|
11
19
|
* @example
|
20
|
+
* Download a file from IPFS:
|
12
21
|
* ```ts
|
13
22
|
* import { download } from "thirdweb/storage";
|
23
|
+
* import { createThirdwebClient } from "@thirdweb-dev/sdk";
|
24
|
+
*
|
25
|
+
* const client = createThirdwebClient({ clientId: "YOUR_CLIENT_ID" });
|
26
|
+
*
|
14
27
|
* const file = await download({
|
15
28
|
* client,
|
16
29
|
* uri: "ipfs://Qm...",
|
17
30
|
* });
|
18
31
|
* ```
|
32
|
+
*
|
33
|
+
* Download a file from Arweave:
|
34
|
+
* ```ts
|
35
|
+
* import { download } from "thirdweb/storage";
|
36
|
+
* import { createThirdwebClient } from "@thirdweb-dev/sdk";
|
37
|
+
*
|
38
|
+
* const client = createThirdwebClient({ clientId: "YOUR_CLIENT_ID" });
|
39
|
+
*
|
40
|
+
* const file = await download({
|
41
|
+
* client,
|
42
|
+
* uri: "ar://{arweave-transaction-id}",
|
43
|
+
* });
|
44
|
+
* ```
|
45
|
+
*
|
46
|
+
* Download a file from HTTP:
|
47
|
+
* ```ts
|
48
|
+
* import { download } from "thirdweb/storage";
|
49
|
+
* import { createThirdwebClient } from "@thirdweb-dev/sdk";
|
50
|
+
*
|
51
|
+
* const client = createThirdwebClient({ clientId: "YOUR_CLIENT_ID" });
|
52
|
+
*
|
53
|
+
* const file = await download({
|
54
|
+
* client,
|
55
|
+
* uri: "https://example.com/file.txt",
|
56
|
+
* });
|
57
|
+
* ```
|
58
|
+
*
|
19
59
|
* @storage
|
20
60
|
*/
|
21
61
|
async function download(options) {
|
@@ -30,7 +70,7 @@ async function download(options) {
|
|
30
70
|
const res = await (0, fetch_js_1.getClientFetch)(options.client)(url, {
|
31
71
|
keepalive: options.client.config?.storage?.fetch?.keepalive,
|
32
72
|
headers: options.client.config?.storage?.fetch?.headers,
|
33
|
-
requestTimeoutMs: options.client.config?.storage?.fetch?.requestTimeoutMs,
|
73
|
+
requestTimeoutMs: options.client.config?.storage?.fetch?.requestTimeoutMs ?? 60000,
|
34
74
|
});
|
35
75
|
if (!res.ok) {
|
36
76
|
res.body?.cancel();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/storage/download.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/storage/download.ts"],"names":[],"mappings":";;AAiEA,4BAqBC;AAtFD,gDAAmD;AACnD,8CAA4E;AAS5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACI,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,IAAI,GAAW,CAAC;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,oBAAoB,EAAE,GAAG,2CAAa,qBAAqB,EAAC,CAAC;QACrE,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE;QACpD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;QAC3D,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;QACvD,gBAAgB,EACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,IAAI,KAAK;KACnE,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.parseAbiParams = parseAbiParams;
|
4
|
+
const address_js_1 = require("../address.js");
|
5
|
+
const hex_js_1 = require("../encoding/hex.js");
|
6
|
+
/**
|
7
|
+
* Converts an array of parameter values to their respective types based on the provided type array.
|
8
|
+
*
|
9
|
+
* This utility function is particularly useful for ensuring that parameter values are correctly formatted
|
10
|
+
* according to the expected types before they are used in further processing or passed to a Solidity smart contract.
|
11
|
+
*
|
12
|
+
* @param {string[]} constructorParamTypes - An array of type strings indicating the expected types of the values,
|
13
|
+
* following Solidity type conventions (e.g., "address", "uint256", "bool").
|
14
|
+
* @param {unknown[]} constructorParamValues - An array of values to be converted according to the types.
|
15
|
+
* @returns - An array of values converted to their respective types.
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* ```ts
|
19
|
+
* import { parseAbiParams } from "thirdweb/utils";
|
20
|
+
*
|
21
|
+
* const example1 = parseAbiParams(
|
22
|
+
* ["address", "uint256"],
|
23
|
+
* ["0x.....", "1200000"]
|
24
|
+
* ); // result: ["0x......", 1200000n]
|
25
|
+
*
|
26
|
+
* const example2 = parseAbiParams(
|
27
|
+
* ["address", "bool"],
|
28
|
+
* ["0x.....", "true"]
|
29
|
+
* ); // result: ["0x......", true]
|
30
|
+
* ```
|
31
|
+
* @utils
|
32
|
+
*/
|
33
|
+
function parseAbiParams(constructorParamTypes, constructorParamValues) {
|
34
|
+
// Make sure they have the same length
|
35
|
+
if (constructorParamTypes.length !== constructorParamValues.length) {
|
36
|
+
throw new Error(`Passed the wrong number of constructor arguments: ${constructorParamValues.length}, expected ${constructorParamTypes.length}`);
|
37
|
+
}
|
38
|
+
return constructorParamTypes.map((type, index) => {
|
39
|
+
const value = constructorParamValues[index];
|
40
|
+
if (type === "tuple" || type.endsWith("[]")) {
|
41
|
+
if (typeof value === "string") {
|
42
|
+
return JSON.parse(value);
|
43
|
+
}
|
44
|
+
return value;
|
45
|
+
}
|
46
|
+
if (type === "bytes32") {
|
47
|
+
if (!(0, hex_js_1.isHex)(value)) {
|
48
|
+
throw new Error(`${value} is not a valid hex string`);
|
49
|
+
}
|
50
|
+
return (0, hex_js_1.padHex)(value);
|
51
|
+
}
|
52
|
+
if (type.startsWith("bytes")) {
|
53
|
+
if (!(0, hex_js_1.isHex)(value)) {
|
54
|
+
throw new Error(`${value} is not a valid hex string`);
|
55
|
+
}
|
56
|
+
return value;
|
57
|
+
}
|
58
|
+
if (type === "address") {
|
59
|
+
if (typeof value !== "string" || !(0, address_js_1.isAddress)(value)) {
|
60
|
+
throw new Error(`${value} is not a valid address`);
|
61
|
+
}
|
62
|
+
return value;
|
63
|
+
}
|
64
|
+
if (type.startsWith("uint") || type.startsWith("int")) {
|
65
|
+
if (typeof value !== "string" && typeof value !== "number") {
|
66
|
+
throw new Error(`Cannot convert type ${typeof value} to BigInt`);
|
67
|
+
}
|
68
|
+
try {
|
69
|
+
const val = BigInt(value);
|
70
|
+
return val;
|
71
|
+
}
|
72
|
+
catch (err) {
|
73
|
+
throw new Error(err.message);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
if (type.startsWith("bool")) {
|
77
|
+
if (value === "false" || value === false) {
|
78
|
+
return false;
|
79
|
+
}
|
80
|
+
if (value === "true" || value === true) {
|
81
|
+
return true;
|
82
|
+
}
|
83
|
+
throw new Error("Invalid boolean value. Expecting either 'true' or 'false'");
|
84
|
+
}
|
85
|
+
});
|
86
|
+
}
|
87
|
+
//# sourceMappingURL=parse-abi-params.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parse-abi-params.js","sourceRoot":"","sources":["../../../../src/utils/contract/parse-abi-params.ts"],"names":[],"mappings":";;AA8BA,wCA2DC;AAzFD,8CAA0C;AAC1C,+CAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,cAAc,CAC5B,qBAA+B,EAC/B,sBAAiC;IAEjC,sCAAsC;IACtC,IAAI,qBAAqB,CAAC,MAAM,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,qDAAqD,sBAAsB,CAAC,MAAM,cAAc,qBAAqB,CAAC,MAAM,EAAE,CAC/H,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,sBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,yBAAyB,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,KAAK,YAAY,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cjs/version.js
CHANGED
@@ -17,9 +17,31 @@ const wallet_emitter_js_1 = require("./wallet-emitter.js");
|
|
17
17
|
// TODO: figure out how to define the type without tuple args type and using function overloads
|
18
18
|
/**
|
19
19
|
* Creates a wallet based on the provided ID and arguments.
|
20
|
+
*
|
21
|
+
* - Supports 350+ wallets
|
22
|
+
* - Handles both injected browser wallets and WalletConnect sessions
|
23
|
+
*
|
24
|
+
* [View all available wallets](https://portal.thirdweb.com/typescript/v5/supported-wallets)
|
25
|
+
*
|
20
26
|
* @param args - The arguments for creating the wallet.
|
27
|
+
* @param args.id - The ID of the wallet to create, this will be autocompleted by your IDE.
|
28
|
+
* [View all available wallets](https://portal.thirdweb.com/typescript/v5/supported-wallets)
|
29
|
+
* @param args.createOptions - The options for creating the wallet.
|
30
|
+
* The arguments are different for each wallet type.
|
31
|
+
* Refer to the [WalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/WalletCreationOptions) type for more details.
|
21
32
|
* @returns - The created wallet.
|
22
33
|
* @example
|
34
|
+
*
|
35
|
+
* ## Connecting the wallet
|
36
|
+
*
|
37
|
+
* Once created, you can connect the wallet to your app by calling the `connect` method.
|
38
|
+
*
|
39
|
+
* The `connect` method returns a promise that resolves to the connected account.
|
40
|
+
*
|
41
|
+
* Each wallet type can have different connect options. [View the different connect options](https://portal.thirdweb.com/references/typescript/v5/WalletConnectionOption)
|
42
|
+
*
|
43
|
+
* ## Connecting to an injected wallet
|
44
|
+
*
|
23
45
|
* ```ts
|
24
46
|
* import { createWallet } from "thirdweb/wallets";
|
25
47
|
*
|
@@ -29,6 +51,57 @@ const wallet_emitter_js_1 = require("./wallet-emitter.js");
|
|
29
51
|
* client,
|
30
52
|
* });
|
31
53
|
* ```
|
54
|
+
*
|
55
|
+
* You can check if a wallet is installed by calling the [injectedProvider](https://portal.thirdweb.com/references/typescript/v5/injectedProvider) method.
|
56
|
+
*
|
57
|
+
* ## Connecting via WalletConnect modal
|
58
|
+
*
|
59
|
+
* ```ts
|
60
|
+
* import { createWallet } from "thirdweb/wallets";
|
61
|
+
*
|
62
|
+
* const metamaskWallet = createWallet("io.metamask");
|
63
|
+
*
|
64
|
+
* await metamask.connect({
|
65
|
+
* client,
|
66
|
+
* walletConnect: {
|
67
|
+
* projectId: "YOUR_PROJECT_ID",
|
68
|
+
* showQrModal: true,
|
69
|
+
* appMetadata: {
|
70
|
+
* name: "My App",
|
71
|
+
* url: "https://my-app.com",
|
72
|
+
* description: "my app description",
|
73
|
+
* logoUrl: "https://path/to/my-app/logo.svg",
|
74
|
+
* },
|
75
|
+
* },
|
76
|
+
* });
|
77
|
+
* ```
|
78
|
+
* [View ConnectWallet connection options](https://portal.thirdweb.com/references/typescript/v5/WCConnectOptions)
|
79
|
+
*
|
80
|
+
* ## Connecting with coinbase wallet
|
81
|
+
*
|
82
|
+
* ```ts
|
83
|
+
* import { createWallet } from "thirdweb/wallets";
|
84
|
+
*
|
85
|
+
* const cbWallet = createWallet("com.coinbase.wallet", {
|
86
|
+
* appMetadata: {
|
87
|
+
* name: "My App",
|
88
|
+
* url: "https://my-app.com",
|
89
|
+
* description: "my app description",
|
90
|
+
* logoUrl: "https://path/to/my-app/logo.svg",
|
91
|
+
* },
|
92
|
+
* walletConfig: {
|
93
|
+
* // options: 'all' | 'smartWalletOnly' | 'eoaOnly'
|
94
|
+
* options: 'all',
|
95
|
+
* },
|
96
|
+
* });
|
97
|
+
*
|
98
|
+
* const account = await cbWallet.connect({
|
99
|
+
* client,
|
100
|
+
* });
|
101
|
+
* ```
|
102
|
+
*
|
103
|
+
* [View Coinbase wallet creation options](https://portal.thirdweb.com/references/typescript/v5/CoinbaseWalletCreationOptions)
|
104
|
+
*
|
32
105
|
* @wallet
|
33
106
|
*/
|
34
107
|
function createWallet(...args) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"create-wallet.js","sourceRoot":"","sources":["../../../src/wallets/create-wallet.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"create-wallet.js","sourceRoot":"","sources":["../../../src/wallets/create-wallet.ts"],"names":[],"mappings":"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"}
|
@@ -22,10 +22,9 @@ async function connectInAppWallet(options, createOptions, connector) {
|
|
22
22
|
if (createOptions?.auth?.mode === "redirect" &&
|
23
23
|
connector.authenticateWithRedirect) {
|
24
24
|
const strategy = options.strategy;
|
25
|
-
if (
|
26
|
-
|
25
|
+
if (types_js_1.socialAuthOptions.includes(strategy)) {
|
26
|
+
connector.authenticateWithRedirect(strategy);
|
27
27
|
}
|
28
|
-
connector.authenticateWithRedirect(strategy);
|
29
28
|
}
|
30
29
|
// If we don't have authenticateWithRedirect then it's likely react native, so the default is to redirect and we can carry on
|
31
30
|
// IF WE EVER ADD MORE CONNECTOR TYPES, this could cause redirect to be ignored despite being specified
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/index.ts"],"names":[],"mappings":";;AAuBA,sCAIC;AAKD,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/index.ts"],"names":[],"mappings":"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"}
|
@@ -3,10 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ecosystemWallet = ecosystemWallet;
|
4
4
|
const ecosystem_core_js_1 = require("../core/wallet/ecosystem-core.js");
|
5
5
|
/**
|
6
|
-
* Creates an
|
6
|
+
* Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods.
|
7
|
+
*
|
8
|
+
* Available authentication methods:
|
9
|
+
* - Email
|
10
|
+
* - Phone
|
11
|
+
* - Passkey
|
12
|
+
* - Google
|
13
|
+
* - Apple
|
14
|
+
* - Facebook
|
15
|
+
* - Discord
|
16
|
+
* - Farcaster
|
17
|
+
*
|
18
|
+
* Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
|
19
|
+
*
|
20
|
+
* Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for detailed usage examples.
|
21
|
+
*
|
7
22
|
* @param createOptions - configuration options
|
23
|
+
* Refer to [EcosystemWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletCreationOptions) for more details.
|
8
24
|
* @returns The created ecosystem wallet.
|
9
25
|
* @example
|
26
|
+
*
|
27
|
+
* ### Connect to an ecosystem wallet
|
28
|
+
*
|
10
29
|
* ```ts
|
11
30
|
* import { ecosystemWallet } from "thirdweb/wallets";
|
12
31
|
*
|
@@ -19,14 +38,21 @@ const ecosystem_core_js_1 = require("../core/wallet/ecosystem-core.js");
|
|
19
38
|
* });
|
20
39
|
* ```
|
21
40
|
*
|
22
|
-
*
|
23
|
-
*
|
41
|
+
* [View all connection options](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletConnectionOptions)
|
42
|
+
*
|
43
|
+
* ### Connect to a restricted ecosystem wallet with your designated partner ID
|
44
|
+
*
|
45
|
+
* The parnter ID will be provided to you by the ecosystem with which you're integrating.
|
46
|
+
*
|
24
47
|
* ```ts
|
25
48
|
* import { ecosystemWallet } from "thirdweb/wallets";
|
26
49
|
* const wallet = ecosystemWallet("ecosystem.hooli", {
|
27
50
|
* partnerId: "..."
|
28
51
|
* });
|
29
52
|
* ```
|
53
|
+
*
|
54
|
+
* Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for more usage examples.
|
55
|
+
*
|
30
56
|
* @wallet
|
31
57
|
*/
|
32
58
|
function ecosystemWallet(...args) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ecosystem.js","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/ecosystem.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"ecosystem.js","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/ecosystem.ts"],"names":[],"mappings":";;AA6DA,0CAkBC;AAzED,wEAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,SAAgB,eAAe,CAC7B,GAAG,IAAyC;IAE5C,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO,IAAA,yCAAqB,EAAC;QAC3B,EAAE,EAAE,WAAW;QACf,aAAa;QACb,gBAAgB,EAAE,KAAK,EAAE,MAAsB,EAAE,EAAE;YACjD,MAAM,EAAE,iBAAiB,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;YACrE,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,MAAM;gBACN,SAAS,EAAE;oBACT,EAAE,EAAE,WAAW;oBACf,SAAS,EAAE,aAAa,EAAE,SAAS;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
@@ -3,10 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.inAppWallet = inAppWallet;
|
4
4
|
const in_app_core_js_1 = require("../core/wallet/in-app-core.js");
|
5
5
|
/**
|
6
|
-
* Creates an
|
6
|
+
* Creates an app scoped wallet for users based on various authentication methods.
|
7
|
+
*
|
8
|
+
* Available authentication methods:
|
9
|
+
* - Email
|
10
|
+
* - Phone
|
11
|
+
* - Passkey
|
12
|
+
* - Google
|
13
|
+
* - Apple
|
14
|
+
* - Facebook
|
15
|
+
* - Discord
|
16
|
+
* - Farcaster
|
17
|
+
*
|
18
|
+
* Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
|
19
|
+
*
|
7
20
|
* @param createOptions - configuration options
|
21
|
+
* Refer to [InAppWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/InAppWalletCreationOptions) to see the available options.
|
8
22
|
* @returns The created in-app wallet.
|
9
23
|
* @example
|
24
|
+
*
|
25
|
+
* ### Login with socials
|
26
|
+
*
|
10
27
|
* ```ts
|
11
28
|
* import { inAppWallet } from "thirdweb/wallets";
|
12
29
|
*
|
@@ -19,18 +36,90 @@ const in_app_core_js_1 = require("../core/wallet/in-app-core.js");
|
|
19
36
|
* });
|
20
37
|
* ```
|
21
38
|
*
|
22
|
-
*
|
39
|
+
* [View all available social auth methods](https://portal.thirdweb.com/references/typescript/v5/InAppWalletSocialAuth)
|
40
|
+
*
|
41
|
+
* * ### Login with email
|
42
|
+
*
|
43
|
+
* ```ts
|
44
|
+
* import { inAppWallet, preAuthenticate } from "thirdweb/wallets/in-app";
|
45
|
+
*
|
46
|
+
* const wallet = inAppWallet();
|
47
|
+
*
|
48
|
+
* // sends a verification code to the provided email
|
49
|
+
* await preAuthenticate({
|
50
|
+
* client,
|
51
|
+
* strategy: "email",
|
52
|
+
* email: "example@example.com",
|
53
|
+
* });
|
54
|
+
*
|
55
|
+
* // login with the verification code
|
56
|
+
* const account = await wallet.connect({
|
57
|
+
* client,
|
58
|
+
* chain,
|
59
|
+
* strategy: "email",
|
60
|
+
* verificationCode: "123456",
|
61
|
+
* });
|
62
|
+
* ```
|
63
|
+
*
|
64
|
+
* ### Login with phone number
|
65
|
+
* ```ts
|
66
|
+
* import { inAppWallet, preAuthenticate } from "thirdweb/wallets/in-app";
|
67
|
+
*
|
68
|
+
* const wallet = inAppWallet();
|
69
|
+
*
|
70
|
+
* // sends a verification code to the provided phone number
|
71
|
+
* await preAuthenticate({
|
72
|
+
* client,
|
73
|
+
* strategy: "phone",
|
74
|
+
* phoneNumber: "+1234567890",
|
75
|
+
* });
|
76
|
+
*
|
77
|
+
* // login with the verification code
|
78
|
+
* const account = await wallet.connect({
|
79
|
+
* client,
|
80
|
+
* chain,
|
81
|
+
* strategy: "phone",
|
82
|
+
* verificationCode: "123456",
|
83
|
+
* });
|
84
|
+
*
|
85
|
+
* ### Login with passkey
|
86
|
+
*
|
87
|
+
* ```ts
|
88
|
+
* import { inAppWallet, hasStoredPasskey } from "thirdweb/wallets/in-app";
|
89
|
+
*
|
90
|
+
* const wallet = inAppWallet();
|
91
|
+
*
|
92
|
+
* const wallet = inAppWallet();
|
93
|
+
* const hasPasskey = await hasStoredPasskey(client);
|
94
|
+
* await wallet.connect({
|
95
|
+
* client,
|
96
|
+
* strategy: "passkey",
|
97
|
+
* type: hasPasskey ? "sign-in" : "sign-up",
|
98
|
+
* });
|
99
|
+
* ```
|
100
|
+
*
|
101
|
+
* ### Enable smart accounts and sponsor gas for your users:
|
102
|
+
*
|
23
103
|
* ```ts
|
24
104
|
* import { inAppWallet } from "thirdweb/wallets";
|
105
|
+
* import { sepolia } from "thirdweb/chains";
|
106
|
+
*
|
25
107
|
* const wallet = inAppWallet({
|
26
108
|
* smartAccount: {
|
27
109
|
* chain: sepolia,
|
28
110
|
* sponsorGas: true,
|
29
111
|
* },
|
30
112
|
* });
|
113
|
+
*
|
114
|
+
* // account will be a smart account with sponsored gas enabled
|
115
|
+
* const account = await wallet.connect({
|
116
|
+
* client,
|
117
|
+
* chain,
|
118
|
+
* strategy: "google",
|
119
|
+
* });
|
31
120
|
* ```
|
32
121
|
*
|
33
|
-
* Specify a logo for your login page
|
122
|
+
* ### Specify a logo for your login page (Connect UI)
|
34
123
|
* ```ts
|
35
124
|
* import { inAppWallet } from "thirdweb/wallets";
|
36
125
|
* const wallet = inAppWallet({
|
@@ -45,7 +134,8 @@ const in_app_core_js_1 = require("../core/wallet/in-app-core.js");
|
|
45
134
|
* });
|
46
135
|
* ```
|
47
136
|
*
|
48
|
-
* Hide the ability to export the private key within the Connect Modal
|
137
|
+
* ### Hide the ability to export the private key within the Connect Modal UI
|
138
|
+
*
|
49
139
|
* ```ts
|
50
140
|
* import { inAppWallet } from "thirdweb/wallets";
|
51
141
|
* const wallet = inAppWallet({
|
@@ -53,7 +143,10 @@ const in_app_core_js_1 = require("../core/wallet/in-app-core.js");
|
|
53
143
|
* });
|
54
144
|
* ```
|
55
145
|
*
|
56
|
-
* Open the Oauth window in the same tab
|
146
|
+
* ### Open the Oauth window in the same tab
|
147
|
+
*
|
148
|
+
* By default, the Oauth window will open in a popup window. You can change this behavior by setting the `auth.mode` option to `"redirect"`.
|
149
|
+
*
|
57
150
|
* ```ts
|
58
151
|
* import { inAppWallet } from "thirdweb/wallets";
|
59
152
|
* const wallet = inAppWallet({
|
@@ -62,6 +155,8 @@ const in_app_core_js_1 = require("../core/wallet/in-app-core.js");
|
|
62
155
|
* }
|
63
156
|
* });
|
64
157
|
* ```
|
158
|
+
*
|
159
|
+
* @returns The created in-app wallet.
|
65
160
|
* @wallet
|
66
161
|
*/
|
67
162
|
function inAppWallet(createOptions) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"in-app.js","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/in-app.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"in-app.js","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/in-app.ts"],"names":[],"mappings":";;AAkKA,kCAYC;AA3KD,kEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4JG;AACH,SAAgB,WAAW,CACzB,aAA4C;IAE5C,OAAO,IAAA,kCAAiB,EAAC;QACvB,aAAa;QACb,gBAAgB,EAAE,KAAK,EAAE,MAAsB,EAAE,EAAE;YACjD,MAAM,EAAE,iBAAiB,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;YACrE,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,MAAM;aACP,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
@@ -7,23 +7,89 @@ const is_contract_deployed_js_1 = require("../../utils/bytecode/is-contract-depl
|
|
7
7
|
const wallet_emitter_js_1 = require("../wallet-emitter.js");
|
8
8
|
const constants_js_1 = require("./lib/constants.js");
|
9
9
|
/**
|
10
|
-
* Creates a smart wallet.
|
10
|
+
* Creates a ERC4337 smart wallet based on a admin account.
|
11
|
+
*
|
12
|
+
* Smart wallets are smart contract wallets that enable multiple benefits for users:
|
13
|
+
*
|
14
|
+
* - Sponsor gas fees for transactions
|
15
|
+
* - Multiple owners
|
16
|
+
* - Session keys
|
17
|
+
* - Batch transactions
|
18
|
+
* - Predictable addresses
|
19
|
+
* - Programmable features
|
20
|
+
*
|
21
|
+
* [Learn more about account abstraction](https://portal.thirdweb.com/connect/account-abstraction/how-it-works)
|
22
|
+
*
|
11
23
|
* @param createOptions - The options for creating the wallet.
|
24
|
+
* Refer to [SmartWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/SmartWalletCreationOptions) for more details.
|
12
25
|
* @returns The created smart wallet.
|
13
26
|
* @example
|
27
|
+
*
|
28
|
+
* ## Connect to a smart wallet
|
29
|
+
*
|
30
|
+
* To connect to a smart wallet, you need to provide an admin account as the `personalAccount` option.
|
31
|
+
*
|
32
|
+
* Any wallet can be used as an admin account, including an in-app wallets.
|
33
|
+
*
|
34
|
+
* The `sponsorGas` option is used to enable sponsored gas for transactions automatically.
|
35
|
+
*
|
14
36
|
* ```ts
|
15
|
-
* import {
|
37
|
+
* import { smartWalletm inAppWallet } from "thirdweb/wallets";
|
38
|
+
* import { sepolia } from "thirdweb/chains";
|
39
|
+
* import { sendTransaction } from "thirdweb";
|
16
40
|
*
|
17
41
|
* const wallet = smartWallet({
|
18
42
|
* chain: sepolia,
|
19
|
-
*
|
43
|
+
* sponsorGas: true, // enable sponsored transactions
|
20
44
|
* });
|
21
45
|
*
|
22
|
-
*
|
46
|
+
* // any wallet can be used as an admin account
|
47
|
+
* // in this example we use an in-app wallet
|
48
|
+
* const adminWallet = inAppWallet();
|
49
|
+
* const personalAccount = await adminWallet.connect({
|
23
50
|
* client,
|
24
|
-
*
|
51
|
+
* chain: sepolia,
|
52
|
+
* strategy: "google",
|
53
|
+
* });
|
54
|
+
*
|
55
|
+
* const smartAccount = await wallet.connect({
|
56
|
+
* client,
|
57
|
+
* personalAccount, // pass the admin account
|
58
|
+
* });
|
59
|
+
*
|
60
|
+
* // sending sponsored transactions with the smartAccount
|
61
|
+
* await sendTransaction({
|
62
|
+
* account: smartAccount,
|
63
|
+
* transaction,
|
25
64
|
* });
|
26
65
|
* ```
|
66
|
+
*
|
67
|
+
* ## Configuring the smart wallet
|
68
|
+
*
|
69
|
+
* You can pass options to the `smartWallet` function to configure the smart wallet.
|
70
|
+
*
|
71
|
+
* ```ts
|
72
|
+
* import { smartWallet } from "thirdweb/wallets";
|
73
|
+
* import { sepolia } from "thirdweb/chains";
|
74
|
+
*
|
75
|
+
* const wallet = smartWallet({
|
76
|
+
* chain: sepolia,
|
77
|
+
* sponsorGas: true, // enable sponsored transactions
|
78
|
+
* factoryAddress: "0x...", // custom factory address
|
79
|
+
* overrides: {
|
80
|
+
* accountAddress: "0x...", // override account address
|
81
|
+
* accountSalt: "0x...", // override account salt
|
82
|
+
* entrypointAddress: "0x...", // override entrypoint address
|
83
|
+
* erc20Paymaster: { ... }, // enable erc20 paymaster
|
84
|
+
* bundlerUrl: "https://...", // override bundler url
|
85
|
+
* paymaster: (userOp) => { ... }, // override paymaster
|
86
|
+
* ...
|
87
|
+
* }
|
88
|
+
* });
|
89
|
+
* ```
|
90
|
+
*
|
91
|
+
* Refer to [SmartWalletOptions](https://portal.thirdweb.com/references/typescript/v5/SmartWalletOptions) for more details.
|
92
|
+
*
|
27
93
|
* @wallet
|
28
94
|
*/
|
29
95
|
function smartWallet(createOptions) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"smart-wallet.js","sourceRoot":"","sources":["../../../../src/wallets/smart/smart-wallet.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"smart-wallet.js","sourceRoot":"","sources":["../../../../src/wallets/smart/smart-wallet.ts"],"names":[],"mappings":"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"}
|