thirdweb 5.98.2 → 5.99.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/exports/react.js +11 -8
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/react.native.js +11 -8
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/exports/wallets/eip5792.js +7 -3
- package/dist/cjs/exports/wallets/eip5792.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useCapabilities.js +5 -6
- package/dist/cjs/react/core/hooks/wallets/useCapabilities.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useSendAndConfirmCalls.js +99 -0
- package/dist/cjs/react/core/hooks/wallets/useSendAndConfirmCalls.js.map +1 -0
- package/dist/cjs/react/core/hooks/wallets/useSendCalls.js +32 -40
- package/dist/cjs/react/core/hooks/wallets/useSendCalls.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useWaitForCallsReceipt.js +38 -0
- package/dist/cjs/react/core/hooks/wallets/useWaitForCallsReceipt.js.map +1 -0
- package/dist/cjs/react/core/providers/thirdweb-provider.js +4 -3
- package/dist/cjs/react/core/providers/thirdweb-provider.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbase-web.js +2 -85
- package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-calls-status.js +54 -15
- package/dist/cjs/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-capabilities.js +21 -8
- package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/cjs/wallets/eip5792/send-and-confirm-calls.js +41 -0
- package/dist/cjs/wallets/eip5792/send-and-confirm-calls.js.map +1 -0
- package/dist/cjs/wallets/eip5792/send-calls.js +27 -14
- package/dist/cjs/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/cjs/wallets/eip5792/show-calls-status.js +8 -7
- package/dist/cjs/wallets/eip5792/show-calls-status.js.map +1 -1
- package/dist/cjs/wallets/eip5792/{wait-for-bundle.js → wait-for-calls-receipt.js} +23 -10
- package/dist/cjs/wallets/eip5792/wait-for-calls-receipt.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js +15 -10
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +13 -3
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js +4 -2
- package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js.map +1 -1
- package/dist/esm/exports/react.js +5 -3
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/exports/react.native.js +5 -3
- package/dist/esm/exports/react.native.js.map +1 -1
- package/dist/esm/exports/wallets/eip5792.js +3 -1
- package/dist/esm/exports/wallets/eip5792.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useCapabilities.js +5 -6
- package/dist/esm/react/core/hooks/wallets/useCapabilities.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useSendAndConfirmCalls.js +96 -0
- package/dist/esm/react/core/hooks/wallets/useSendAndConfirmCalls.js.map +1 -0
- package/dist/esm/react/core/hooks/wallets/useSendCalls.js +32 -40
- package/dist/esm/react/core/hooks/wallets/useSendCalls.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useWaitForCallsReceipt.js +35 -0
- package/dist/esm/react/core/hooks/wallets/useWaitForCallsReceipt.js.map +1 -0
- package/dist/esm/react/core/providers/thirdweb-provider.js +4 -3
- package/dist/esm/react/core/providers/thirdweb-provider.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbase-web.js +2 -81
- package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-calls-status.js +54 -15
- package/dist/esm/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-capabilities.js +22 -9
- package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/esm/wallets/eip5792/send-and-confirm-calls.js +38 -0
- package/dist/esm/wallets/eip5792/send-and-confirm-calls.js.map +1 -0
- package/dist/esm/wallets/eip5792/send-calls.js +28 -15
- package/dist/esm/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/esm/wallets/eip5792/show-calls-status.js +9 -8
- package/dist/esm/wallets/eip5792/show-calls-status.js.map +1 -1
- package/dist/esm/wallets/eip5792/{wait-for-bundle.js → wait-for-calls-receipt.js} +22 -9
- package/dist/esm/wallets/eip5792/wait-for-calls-receipt.js.map +1 -0
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js +15 -10
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +1 -1
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +13 -3
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +1 -1
- package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js +4 -2
- package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js.map +1 -1
- package/dist/types/exports/react.d.ts +4 -3
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/react.native.d.ts +4 -3
- package/dist/types/exports/react.native.d.ts.map +1 -1
- package/dist/types/exports/wallets/eip5792.d.ts +3 -1
- package/dist/types/exports/wallets/eip5792.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useCapabilities.d.ts +1 -0
- package/dist/types/react/core/hooks/wallets/useCapabilities.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useSendAndConfirmCalls.d.ts +66 -0
- package/dist/types/react/core/hooks/wallets/useSendAndConfirmCalls.d.ts.map +1 -0
- package/dist/types/react/core/hooks/wallets/useSendCalls.d.ts +8 -11
- package/dist/types/react/core/hooks/wallets/useSendCalls.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useWaitForCallsReceipt.d.ts +32 -0
- package/dist/types/react/core/hooks/wallets/useWaitForCallsReceipt.d.ts.map +1 -0
- package/dist/types/react/core/providers/thirdweb-provider.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/coinbase/coinbase-web.d.ts +2 -30
- package/dist/types/wallets/coinbase/coinbase-web.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/get-calls-status.d.ts +5 -6
- package/dist/types/wallets/eip5792/get-calls-status.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/get-capabilities.d.ts +2 -1
- package/dist/types/wallets/eip5792/get-capabilities.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/send-and-confirm-calls.d.ts +39 -0
- package/dist/types/wallets/eip5792/send-and-confirm-calls.d.ts.map +1 -0
- package/dist/types/wallets/eip5792/send-calls.d.ts +12 -5
- package/dist/types/wallets/eip5792/send-calls.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/show-calls-status.d.ts +2 -2
- package/dist/types/wallets/eip5792/show-calls-status.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/types.d.ts +33 -4
- package/dist/types/wallets/eip5792/types.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/{wait-for-bundle.d.ts → wait-for-calls-receipt.d.ts} +21 -9
- package/dist/types/wallets/eip5792/wait-for-calls-receipt.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts +3 -3
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts +3 -3
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts +2 -2
- package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/react.native.ts +6 -3
- package/src/exports/react.ts +6 -3
- package/src/exports/wallets/eip5792.ts +5 -3
- package/src/react/core/hooks/wallets/useCapabilities.ts +6 -6
- package/src/react/core/hooks/wallets/useSendAndConfirmCalls.ts +114 -0
- package/src/react/core/hooks/wallets/useSendCalls.ts +33 -50
- package/src/react/core/hooks/wallets/useWaitForCallsReceipt.ts +43 -0
- package/src/react/core/providers/thirdweb-provider.tsx +4 -3
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-web.ts +6 -117
- package/src/wallets/eip5792/get-calls-status.test.ts +27 -33
- package/src/wallets/eip5792/get-calls-status.ts +68 -19
- package/src/wallets/eip5792/get-capabilities.test.ts +10 -10
- package/src/wallets/eip5792/get-capabilities.ts +33 -11
- package/src/wallets/eip5792/send-and-confirm-calls.ts +48 -0
- package/src/wallets/eip5792/send-calls.test.ts +7 -7
- package/src/wallets/eip5792/send-calls.ts +43 -21
- package/src/wallets/eip5792/show-calls-status.test.ts +3 -3
- package/src/wallets/eip5792/show-calls-status.ts +13 -12
- package/src/wallets/eip5792/types.ts +43 -4
- package/src/wallets/eip5792/{wait-for-bundle.test.ts → wait-for-calls-receipt.test.ts} +19 -9
- package/src/wallets/eip5792/{wait-for-bundle.ts → wait-for-calls-receipt.ts} +26 -16
- package/src/wallets/in-app/core/eip5972/in-app-wallet-calls.ts +17 -16
- package/src/wallets/in-app/core/eip5972/in-app-wallet-capabilities.ts +14 -3
- package/src/wallets/smart/lib/smart-wallet-capabilities.ts +5 -2
- package/dist/cjs/react/core/hooks/wallets/useCallsStatus.js +0 -41
- package/dist/cjs/react/core/hooks/wallets/useCallsStatus.js.map +0 -1
- package/dist/cjs/wallets/eip5792/wait-for-bundle.js.map +0 -1
- package/dist/esm/react/core/hooks/wallets/useCallsStatus.js +0 -38
- package/dist/esm/react/core/hooks/wallets/useCallsStatus.js.map +0 -1
- package/dist/esm/wallets/eip5792/wait-for-bundle.js.map +0 -1
- package/dist/types/react/core/hooks/wallets/useCallsStatus.d.ts +0 -26
- package/dist/types/react/core/hooks/wallets/useCallsStatus.d.ts.map +0 -1
- package/dist/types/wallets/eip5792/wait-for-bundle.d.ts.map +0 -1
- package/src/react/core/hooks/wallets/useCallsStatus.ts +0 -48
@@ -1,14 +1,14 @@
|
|
1
1
|
import * as ox__Hex from "ox/Hex";
|
2
2
|
import * as ox__TypedData from "ox/TypedData";
|
3
|
-
import { getValidPublicRPCUrl } from "../utils/chains.js";
|
4
|
-
import { normalizeChainId } from "../utils/normalizeChainId.js";
|
5
3
|
import { trackTransaction } from "../../analytics/track/transaction.js";
|
6
4
|
import { getCachedChain, getChainMetadata } from "../../chains/utils.js";
|
7
5
|
import { getAddress } from "../../utils/address.js";
|
8
6
|
import { numberToHex, stringToHex, uint8ArrayToHex, } from "../../utils/encoding/hex.js";
|
9
7
|
import { parseTypedData } from "../../utils/signatures/helpers/parse-typed-data.js";
|
10
8
|
import { COINBASE } from "../constants.js";
|
9
|
+
import { getValidPublicRPCUrl } from "../utils/chains.js";
|
11
10
|
import { getDefaultAppMetadata } from "../utils/defaultDappMetadata.js";
|
11
|
+
import { normalizeChainId } from "../utils/normalizeChainId.js";
|
12
12
|
import { showCoinbasePopup } from "./utils.js";
|
13
13
|
// Need to keep the provider around because it keeps a single popup window connection behind the scenes
|
14
14
|
// this should be ok since all the creation options are provided at build time
|
@@ -49,85 +49,6 @@ export async function getCoinbaseWebProvider(options) {
|
|
49
49
|
export function isCoinbaseSDKWallet(wallet) {
|
50
50
|
return wallet.id === COINBASE;
|
51
51
|
}
|
52
|
-
/**
|
53
|
-
* @internal
|
54
|
-
*/
|
55
|
-
export async function coinbaseSDKWalletGetCapabilities(args) {
|
56
|
-
const { wallet } = args;
|
57
|
-
const account = wallet.getAccount();
|
58
|
-
if (!account) {
|
59
|
-
return {
|
60
|
-
message: `Can't get capabilities, no account connected for wallet: ${wallet.id}`,
|
61
|
-
};
|
62
|
-
}
|
63
|
-
const config = wallet.getConfig();
|
64
|
-
const provider = await getCoinbaseWebProvider(config);
|
65
|
-
try {
|
66
|
-
return (await provider.request({
|
67
|
-
method: "wallet_getCapabilities",
|
68
|
-
params: [account.address],
|
69
|
-
}));
|
70
|
-
}
|
71
|
-
catch (error) {
|
72
|
-
if (/unsupport|not support/i.test(error.message)) {
|
73
|
-
return {
|
74
|
-
message: `${wallet.id} does not support wallet_getCapabilities, reach out to them directly to request EIP-5792 support.`,
|
75
|
-
};
|
76
|
-
}
|
77
|
-
throw error;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
/**
|
81
|
-
* @internal
|
82
|
-
*/
|
83
|
-
export async function coinbaseSDKWalletSendCalls(args) {
|
84
|
-
const { wallet, params } = args;
|
85
|
-
const config = wallet.getConfig();
|
86
|
-
const provider = await getCoinbaseWebProvider(config);
|
87
|
-
try {
|
88
|
-
return (await provider.request({
|
89
|
-
method: "wallet_sendCalls",
|
90
|
-
params,
|
91
|
-
}));
|
92
|
-
}
|
93
|
-
catch (error) {
|
94
|
-
if (/unsupport|not support/i.test(error.message)) {
|
95
|
-
throw new Error(`${wallet.id} does not support wallet_sendCalls, reach out to them directly to request EIP-5792 support.`);
|
96
|
-
}
|
97
|
-
throw error;
|
98
|
-
}
|
99
|
-
}
|
100
|
-
/**
|
101
|
-
* @internal
|
102
|
-
*/
|
103
|
-
export async function coinbaseSDKWalletShowCallsStatus(args) {
|
104
|
-
const { wallet, bundleId } = args;
|
105
|
-
const provider = await getCoinbaseWebProvider(wallet.getConfig());
|
106
|
-
try {
|
107
|
-
return await provider.request({
|
108
|
-
method: "wallet_showCallsStatus",
|
109
|
-
params: [bundleId],
|
110
|
-
});
|
111
|
-
}
|
112
|
-
catch (error) {
|
113
|
-
if (/unsupport|not support/i.test(error.message)) {
|
114
|
-
throw new Error(`${wallet.id} does not support wallet_showCallsStatus, reach out to them directly to request EIP-5792 support.`);
|
115
|
-
}
|
116
|
-
throw error;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
/**
|
120
|
-
* @internal
|
121
|
-
*/
|
122
|
-
export async function coinbaseSDKWalletGetCallsStatus(args) {
|
123
|
-
const { wallet, bundleId } = args;
|
124
|
-
const config = wallet.getConfig();
|
125
|
-
const provider = await getCoinbaseWebProvider(config);
|
126
|
-
return provider.request({
|
127
|
-
method: "wallet_getCallsStatus",
|
128
|
-
params: [bundleId],
|
129
|
-
});
|
130
|
-
}
|
131
52
|
function createAccount({ provider, address, client, }) {
|
132
53
|
const account = {
|
133
54
|
address: getAddress(address),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"coinbase-web.js","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbase-web.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"coinbase-web.js","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbase-web.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,aAAa,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAEL,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAmF/C,uGAAuG;AACvG,8EAA8E;AAC9E,IAAI,SAAwC,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA8C;IAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,iBAAiB,GAAY,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;aACpE,OAAO,CAAC;QACX,wCAAwC;QACxC,6CAA6C;QAC7C,IACE,OAAO,iBAAiB,KAAK,UAAU;YACvC,OAAQ,iBAA0C,CAAC,OAAO,KAAK,UAAU,EACzE,CAAC;YACD,iBAAiB,GACf,iBACD,CAAC,OAAO,CAAC;QACZ,CAAC;QAED,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,qBAAqB,EAAE,CAAC,IAAI;YACnE,WAAW,EAAE,OAAO,EAAE,MAAM;gBAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,CAAC,CAAC,SAAS;YACb,UAAU,EACR,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC,OAAO;SACnE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChE,SAAS,GAAG,QAAQ,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc;IAEd,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,MAAM,GAKP;IACC,MAAM,OAAO,GAAY;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,eAAe,CAAC,EAAyB;YAC7C,MAAM,eAAe,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAC9C,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE;oBACN;wBACE,UAAU,EAAE,EAAE,CAAC,UAAU;wBACzB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;wBACnD,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;wBAC7C,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;wBACzB,EAAE,EAAE,EAAE,CAAC,EAAa;wBACpB,IAAI,EAAE,EAAE,CAAC,IAAI;qBACd;iBACF;aACF,CAAC,CAAQ,CAAC;YAEX,gBAAgB,CAAC;gBACf,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC;gBAClC,UAAU,EAAE,QAAQ;gBACpB,eAAe;gBACf,eAAe,EAAE,EAAE,CAAC,EAAE,IAAI,SAAS;gBACnC,QAAQ,EAAE,EAAE,CAAC,QAAQ;aACtB,CAAC,CAAC;YAEH,OAAO;gBACL,eAAe;aAChB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;gBAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,OAAO,CAAC,GAAG,YAAY,UAAU,EAAE,CAAC;oBACtC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACjC,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;aACzC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CACrD,SAAS,CACkB,CAAC;YAE9B,MAAM,KAAK,GAAG;gBACZ,YAAY,EAAE,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC;gBAC5D,GAAG,SAAS,CAAC,KAAK;aACnB,CAAC;YAEF,uFAAuF;YACvF,qDAAqD;YACrD,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAEhE,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC;gBAC9C,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,OAAO;gBACP,WAAW;gBACX,KAAK;aACN,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACjC,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACjC,kFAAkF;YAClF,kDAAkD;YAClD,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAChB,OAAe,EACf,KAAY,EACZ,QAA2B,EAC3B,OAAuC,EACvC,MAAsB;IAEtB,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7D,KAAK,UAAU,UAAU;QACvB,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC9D,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,UAAU,YAAY;QACzB,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,iBAAiB,CAAC,QAAkB;QAC3C,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,aAAa,CAAC;gBAC/B,QAAQ;gBACR,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,UAAkB;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAExC,OAAO;QACL,OAAO;QACP,KAAK;QACL,YAAY;QACZ,CAAC,QAAQ,EAAE,EAAE,CAAC,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAgD,EAChD,OAAuC,EACvC,QAA2B;IAE3B,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;QACvC,MAAM,EAAE,qBAAqB;KAC9B,CAAC,CAAa,CAAC;IAEhB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,gBAAgB,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;QAC/C,MAAM,EAAE,aAAa;KACtB,CAAC,CAAoB,CAAC;IAEvB,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,KAAK,GACP,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO;QAC3C,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9B,8BAA8B;IAC9B,IAAI,OAAO,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC/D,MAAM,4BAA4B,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5D,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAgD,EAChD,OAAuC,EACvC,QAA2B;IAE3B,qBAAqB;IACrB,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,cAAc;KACvB,CAAC,CAAa,CAAC;IAEhB,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;QAC/C,MAAM,EAAE,aAAa;KACtB,CAAC,CAAoB,CAAC;IACvB,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO;QAC3C,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,QAA2B,EAC3B,KAAY;IAEZ,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE/C,2CAA2C;QAC3C,8DAA8D;QAC9D,IAAK,KAAa,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,uBAAuB;YACvB,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,UAAU;wBACnB,SAAS,EAAE,QAAQ,CAAC,IAAI;wBACxB,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,+BAA+B;wBACxE,iBAAiB,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;qBAC/D;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { hexToBigInt } from "../../utils/encoding/hex.js";
|
2
|
+
import { hexToNumber } from "../../utils/encoding/hex.js";
|
1
3
|
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
2
4
|
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
3
5
|
import { getInjectedProvider } from "../injected/index.js";
|
@@ -22,17 +24,16 @@ import { isWalletConnect } from "../wallet-connect/controller.js";
|
|
22
24
|
*
|
23
25
|
* const client = createThirdwebClient({ clientId: ... });
|
24
26
|
*
|
25
|
-
* const
|
27
|
+
* const result = await sendCalls({ wallet, client, calls });
|
26
28
|
*
|
27
29
|
* let result;
|
28
|
-
* while (result.status !== "
|
29
|
-
* result = await getCallsStatus(
|
30
|
+
* while (result.status !== "success") {
|
31
|
+
* result = await getCallsStatus(result);
|
30
32
|
* }
|
31
33
|
* ```
|
32
34
|
* @extension EIP5792
|
33
|
-
* @extension EIP5792
|
34
35
|
*/
|
35
|
-
export async function getCallsStatus({ wallet, client,
|
36
|
+
export async function getCallsStatus({ wallet, client, id, }) {
|
36
37
|
const account = wallet.getAccount();
|
37
38
|
if (!account) {
|
38
39
|
throw new Error(`Failed to get call status, no account found for wallet ${wallet.id}`);
|
@@ -40,22 +41,56 @@ export async function getCallsStatus({ wallet, client, bundleId, }) {
|
|
40
41
|
// These conveniently operate the same
|
41
42
|
if (isSmartWallet(wallet) || isInAppWallet(wallet)) {
|
42
43
|
const { inAppWalletGetCallsStatus } = await import("../in-app/core/eip5972/in-app-wallet-calls.js");
|
43
|
-
return inAppWalletGetCallsStatus({ wallet, client,
|
44
|
-
}
|
45
|
-
if (isCoinbaseSDKWallet(wallet)) {
|
46
|
-
const { coinbaseSDKWalletGetCallsStatus } = await import("../coinbase/coinbase-web.js");
|
47
|
-
return coinbaseSDKWalletGetCallsStatus({ wallet, bundleId });
|
44
|
+
return inAppWalletGetCallsStatus({ wallet, client, id });
|
48
45
|
}
|
49
46
|
if (isWalletConnect(wallet)) {
|
50
47
|
throw new Error("getCallsStatus is not yet supported for Wallet Connect");
|
51
48
|
}
|
52
|
-
|
53
|
-
|
49
|
+
let provider;
|
50
|
+
if (isCoinbaseSDKWallet(wallet)) {
|
51
|
+
const { getCoinbaseWebProvider } = await import("../coinbase/coinbase-web.js");
|
52
|
+
const config = wallet.getConfig();
|
53
|
+
provider = (await getCoinbaseWebProvider(config));
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
provider = getInjectedProvider(wallet.id);
|
57
|
+
}
|
54
58
|
try {
|
55
|
-
|
59
|
+
const { atomic = false, chainId, receipts, version = "2.0.0", ...response } = (await provider.request({
|
56
60
|
method: "wallet_getCallsStatus",
|
57
|
-
params: [
|
58
|
-
});
|
61
|
+
params: [id],
|
62
|
+
}));
|
63
|
+
const [status, statusCode] = (() => {
|
64
|
+
const statusCode = response.status;
|
65
|
+
if (statusCode >= 100 && statusCode < 200)
|
66
|
+
return ["pending", statusCode];
|
67
|
+
if (statusCode >= 200 && statusCode < 300)
|
68
|
+
return ["success", statusCode];
|
69
|
+
if (statusCode >= 300 && statusCode < 700)
|
70
|
+
return ["failure", statusCode];
|
71
|
+
// @ts-expect-error: for backwards compatibility
|
72
|
+
if (statusCode === "CONFIRMED")
|
73
|
+
return ["success", 200];
|
74
|
+
// @ts-expect-error: for backwards compatibility
|
75
|
+
if (statusCode === "PENDING")
|
76
|
+
return ["pending", 100];
|
77
|
+
return [undefined, statusCode];
|
78
|
+
})();
|
79
|
+
return {
|
80
|
+
...response,
|
81
|
+
atomic,
|
82
|
+
// @ts-expect-error: for backwards compatibility
|
83
|
+
chainId: chainId ? hexToNumber(chainId) : undefined,
|
84
|
+
receipts: receipts?.map((receipt) => ({
|
85
|
+
...receipt,
|
86
|
+
blockNumber: hexToBigInt(receipt.blockNumber),
|
87
|
+
gasUsed: hexToBigInt(receipt.gasUsed),
|
88
|
+
status: receiptStatuses[receipt.status],
|
89
|
+
})) ?? [],
|
90
|
+
statusCode,
|
91
|
+
status,
|
92
|
+
version,
|
93
|
+
};
|
59
94
|
}
|
60
95
|
catch (error) {
|
61
96
|
if (/unsupport|not support/i.test(error.message)) {
|
@@ -64,4 +99,8 @@ export async function getCallsStatus({ wallet, client, bundleId, }) {
|
|
64
99
|
throw error;
|
65
100
|
}
|
66
101
|
}
|
102
|
+
const receiptStatuses = {
|
103
|
+
"0x0": "reverted",
|
104
|
+
"0x1": "success",
|
105
|
+
};
|
67
106
|
//# sourceMappingURL=get-calls-status.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-calls-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"get-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-calls-status.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { getAddress } from "../../utils/address.js";
|
2
|
-
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
2
|
+
import { isCoinbaseSDKWallet, } from "../coinbase/coinbase-web.js";
|
3
3
|
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
4
4
|
import { getInjectedProvider } from "../injected/index.js";
|
5
5
|
import { isWalletConnect } from "../wallet-connect/controller.js";
|
@@ -23,7 +23,7 @@ import { isWalletConnect } from "../wallet-connect/controller.js";
|
|
23
23
|
*
|
24
24
|
* @extension EIP5792
|
25
25
|
*/
|
26
|
-
export async function getCapabilities({ wallet, }) {
|
26
|
+
export async function getCapabilities({ wallet, chainId, }) {
|
27
27
|
const account = wallet.getAccount();
|
28
28
|
if (!account) {
|
29
29
|
return {
|
@@ -38,23 +38,36 @@ export async function getCapabilities({ wallet, }) {
|
|
38
38
|
const { inAppWalletGetCapabilities } = await import("../in-app/core/eip5972/in-app-wallet-capabilities.js");
|
39
39
|
return inAppWalletGetCapabilities({ wallet });
|
40
40
|
}
|
41
|
-
if (isCoinbaseSDKWallet(wallet)) {
|
42
|
-
const { coinbaseSDKWalletGetCapabilities } = await import("../coinbase/coinbase-web.js");
|
43
|
-
return coinbaseSDKWalletGetCapabilities({ wallet });
|
44
|
-
}
|
45
41
|
// TODO: Add Wallet Connect support
|
46
42
|
if (isWalletConnect(wallet)) {
|
47
43
|
return {
|
48
44
|
message: "getCapabilities is not yet supported with Wallet Connect",
|
49
45
|
};
|
50
46
|
}
|
51
|
-
|
52
|
-
|
47
|
+
let provider;
|
48
|
+
if (isCoinbaseSDKWallet(wallet)) {
|
49
|
+
const { getCoinbaseWebProvider } = await import("../coinbase/coinbase-web.js");
|
50
|
+
const config = wallet.getConfig();
|
51
|
+
provider = (await getCoinbaseWebProvider(config));
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
provider = getInjectedProvider(wallet.id);
|
55
|
+
}
|
53
56
|
try {
|
54
|
-
|
57
|
+
const result = await provider.request({
|
55
58
|
method: "wallet_getCapabilities",
|
56
59
|
params: [getAddress(account.address)],
|
57
60
|
});
|
61
|
+
const capabilities = {};
|
62
|
+
for (const [chainId, capabilities_] of Object.entries(result)) {
|
63
|
+
capabilities[Number(chainId)] = {};
|
64
|
+
const capabilitiesCopy = {};
|
65
|
+
for (const [key, value] of Object.entries(capabilities_)) {
|
66
|
+
capabilitiesCopy[key] = value;
|
67
|
+
}
|
68
|
+
capabilities[Number(chainId)] = capabilitiesCopy;
|
69
|
+
}
|
70
|
+
return (typeof chainId === "number" ? capabilities[chainId] : capabilities);
|
58
71
|
}
|
59
72
|
catch (error) {
|
60
73
|
if (/unsupport|not support|not available/i.test(error.message)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-capabilities.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,
|
1
|
+
{"version":3,"file":"get-capabilities.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-capabilities.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { sendCalls } from "./send-calls.js";
|
2
|
+
import { waitForCallsReceipt } from "./wait-for-calls-receipt.js";
|
3
|
+
/**
|
4
|
+
* Send and confirm calls in a single transaction.
|
5
|
+
*
|
6
|
+
* This is a convenience function that sends the calls with `sendCalls` and then waits for the receipts with `waitForCallsReceipt`.
|
7
|
+
*
|
8
|
+
* @param options - The options for sending and confirming calls.
|
9
|
+
* @returns The receipts of the calls.
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const call1 = approve({
|
13
|
+
* contract: USDT_CONTRACT,
|
14
|
+
* amount: 100,
|
15
|
+
* spender: "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
|
16
|
+
* });
|
17
|
+
* const call2 = transfer({
|
18
|
+
* contract: USDT_CONTRACT,
|
19
|
+
* to: "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
|
20
|
+
* amount: 100,
|
21
|
+
* });
|
22
|
+
* const result = await sendAndConfirmCalls({
|
23
|
+
* calls: [call1, call2],
|
24
|
+
* wallet: wallet,
|
25
|
+
* });
|
26
|
+
* console.log("Transaction receipts:", result.receipts);
|
27
|
+
* ```
|
28
|
+
* @extension EIP5792
|
29
|
+
* @beta
|
30
|
+
*/
|
31
|
+
export async function sendAndConfirmCalls(options) {
|
32
|
+
const sendCallsResult = await sendCalls(options);
|
33
|
+
return waitForCallsReceipt({
|
34
|
+
...sendCallsResult,
|
35
|
+
maxBlocksWaitTime: options.maxBlocksWaitTime,
|
36
|
+
});
|
37
|
+
}
|
38
|
+
//# sourceMappingURL=send-and-confirm-calls.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"send-and-confirm-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-and-confirm-calls.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAMC;IAED,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,mBAAmB,CAAC;QACzB,GAAG,eAAe;QAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAC;AACL,CAAC"}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { encode } from "../../transaction/actions/encode.js";
|
2
2
|
import { getAddress } from "../../utils/address.js";
|
3
3
|
import { numberToHex } from "../../utils/encoding/hex.js";
|
4
|
+
import { stringify } from "../../utils/json.js";
|
4
5
|
import { resolvePromisedValue, } from "../../utils/promise/resolve-promised-value.js";
|
5
|
-
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
6
|
+
import { isCoinbaseSDKWallet, } from "../coinbase/coinbase-web.js";
|
6
7
|
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
7
8
|
import { getInjectedProvider } from "../injected/index.js";
|
8
9
|
import { isSmartWallet } from "../smart/index.js";
|
@@ -33,6 +34,7 @@ import { isWalletConnect } from "../wallet-connect/controller.js";
|
|
33
34
|
*
|
34
35
|
* const client = createThirdwebClient({ clientId: ... });
|
35
36
|
* const wallet = createWallet("com.coinbase.wallet");
|
37
|
+
* await wallet.connect({ client });
|
36
38
|
*
|
37
39
|
* const sendTx1 = approve({
|
38
40
|
contract: USDT_CONTRACT,
|
@@ -62,12 +64,13 @@ import { isWalletConnect } from "../wallet-connect/controller.js";
|
|
62
64
|
* }
|
63
65
|
* }
|
64
66
|
* });
|
65
|
-
* We recommend proxying any paymaster calls via an API route you setup and control.
|
66
67
|
* ```
|
68
|
+
* We recommend proxying any paymaster calls via an API route you setup and control.
|
69
|
+
*
|
67
70
|
* @extension EIP5792
|
68
71
|
*/
|
69
72
|
export async function sendCalls(options) {
|
70
|
-
const { wallet, calls, capabilities, version = "
|
73
|
+
const { wallet, calls, capabilities, version = "2.0.0", chain = wallet.getChain(), } = options;
|
71
74
|
if (!chain) {
|
72
75
|
throw new Error(`Cannot send calls, no active chain found for wallet: ${wallet.id}`);
|
73
76
|
}
|
@@ -75,10 +78,16 @@ export async function sendCalls(options) {
|
|
75
78
|
if (!account) {
|
76
79
|
throw new Error(`Cannot send calls, no account connected for wallet: ${wallet.id}`);
|
77
80
|
}
|
81
|
+
const firstCall = options.calls[0];
|
82
|
+
if (!firstCall) {
|
83
|
+
throw new Error("No calls to send");
|
84
|
+
}
|
85
|
+
const client = firstCall.client;
|
78
86
|
// These conveniently operate the same
|
79
87
|
if (isSmartWallet(wallet) || isInAppWallet(wallet)) {
|
80
88
|
const { inAppWalletSendCalls } = await import("../in-app/core/eip5972/in-app-wallet-calls.js");
|
81
|
-
|
89
|
+
const id = await inAppWalletSendCalls({ account, calls });
|
90
|
+
return { id, client, chain, wallet };
|
82
91
|
}
|
83
92
|
const preparedCalls = await Promise.all(calls.map(async (call) => {
|
84
93
|
const { to, value } = call;
|
@@ -109,27 +118,31 @@ export async function sendCalls(options) {
|
|
109
118
|
atomicRequired: options.atomicRequired ?? false,
|
110
119
|
},
|
111
120
|
];
|
112
|
-
if (isCoinbaseSDKWallet(wallet)) {
|
113
|
-
const { coinbaseSDKWalletSendCalls } = await import("../coinbase/coinbase-web.js");
|
114
|
-
return coinbaseSDKWalletSendCalls({
|
115
|
-
wallet,
|
116
|
-
params: injectedWalletCallParams,
|
117
|
-
});
|
118
|
-
}
|
119
121
|
if (isWalletConnect(wallet)) {
|
120
122
|
throw new Error("sendCalls is not yet supported for Wallet Connect");
|
121
123
|
}
|
122
|
-
|
123
|
-
|
124
|
+
let provider;
|
125
|
+
if (isCoinbaseSDKWallet(wallet)) {
|
126
|
+
const { getCoinbaseWebProvider } = await import("../coinbase/coinbase-web.js");
|
127
|
+
const config = wallet.getConfig();
|
128
|
+
provider = (await getCoinbaseWebProvider(config));
|
129
|
+
}
|
130
|
+
else {
|
131
|
+
provider = getInjectedProvider(wallet.id);
|
132
|
+
}
|
124
133
|
try {
|
125
|
-
|
134
|
+
const callId = await provider.request({
|
126
135
|
method: "wallet_sendCalls",
|
127
136
|
params: injectedWalletCallParams, // The viem type definition is slightly different
|
128
137
|
});
|
138
|
+
if (typeof callId === "object" && "id" in callId) {
|
139
|
+
return { id: callId.id, client, chain, wallet };
|
140
|
+
}
|
141
|
+
return { id: callId, client, chain, wallet };
|
129
142
|
}
|
130
143
|
catch (error) {
|
131
144
|
if (/unsupport|not support/i.test(error.message)) {
|
132
|
-
throw new Error(`${wallet.id}
|
145
|
+
throw new Error(`${wallet.id} errored calling wallet_sendCalls, with error: ${error instanceof Error ? error.message : stringify(error)}`);
|
133
146
|
}
|
134
147
|
throw error;
|
135
148
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,OAAO,EAAgB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAY,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAEL,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,
|
1
|
+
{"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,OAAO,EAAgB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAY,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAEL,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA4ClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAA6B;IAE7B,MAAM,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,GAC1B,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wDAAwD,MAAM,CAAC,EAAE,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,uDAAuD,MAAM,CAAC,EAAE,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEhC,sCAAsC;IACtC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAC3C,+CAA+C,CAChD,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,aAAa,GAAkB,MAAM,OAAO,CAAC,GAAG,CACpD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,oBAAoB,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;YACZ,oBAAoB,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,GAAc;YAClB,IAAI,EAAE,KAAY;YAClB,KAAK,EACH,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;gBACtD,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;gBACrB,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,wBAAwB,GAA8B;QAC1D;YACE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YACjC,KAAK,EAAE,aAAa;YACpB,YAAY;YACZ,OAAO;YACP,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,gEAAgE;YAChE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;SAChD;KACF,CAAC;IAEF,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,6BAA6B,CAC9B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAmC,CAAC;QACnE,QAAQ,GAAG,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAa,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,wBAAyD,EAAE,iDAAiD;SACrH,CAAC,CAAC;QACH,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACjD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,wBAAwB,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,EAAE,kDAAkD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1H,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
1
|
+
import { getCoinbaseWebProvider, isCoinbaseSDKWallet, } from "../coinbase/coinbase-web.js";
|
2
2
|
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
3
3
|
import { getInjectedProvider } from "../injected/index.js";
|
4
4
|
import { isSmartWallet } from "../smart/index.js";
|
@@ -27,23 +27,24 @@ import { isWalletConnect } from "../wallet-connect/controller.js";
|
|
27
27
|
* @extension EIP5792
|
28
28
|
* @internal
|
29
29
|
*/
|
30
|
-
export async function showCallsStatus({ wallet,
|
30
|
+
export async function showCallsStatus({ wallet, id, }) {
|
31
31
|
if (isSmartWallet(wallet) ||
|
32
32
|
isInAppWallet(wallet) ||
|
33
33
|
isWalletConnect(wallet)) {
|
34
34
|
throw new Error("showCallsStatus is currently unsupported for this wallet type");
|
35
35
|
}
|
36
|
+
let provider;
|
36
37
|
if (isCoinbaseSDKWallet(wallet)) {
|
37
|
-
|
38
|
-
|
39
|
-
|
38
|
+
provider = (await getCoinbaseWebProvider(wallet.getConfig()));
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
// Default to injected wallet
|
42
|
+
provider = getInjectedProvider(wallet.id);
|
40
43
|
}
|
41
|
-
// Default to injected wallet
|
42
|
-
const provider = getInjectedProvider(wallet.id);
|
43
44
|
try {
|
44
45
|
return await provider.request({
|
45
46
|
method: "wallet_showCallsStatus",
|
46
|
-
params: [
|
47
|
+
params: [id],
|
47
48
|
});
|
48
49
|
}
|
49
50
|
catch (error) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"show-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/show-calls-status.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"show-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/show-calls-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EACN,EAAE,GACqB;IACvB,IACE,aAAa,CAAC,MAAM,CAAC;QACrB,aAAa,CAAC,MAAM,CAAC;QACrB,eAAe,CAAC,MAAM,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,QAAQ,GAAG,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAa,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE,CAAC,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,wBAAwB,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,EAAE,mGAAmG,CAChH,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -14,20 +14,32 @@ const map = new Map();
|
|
14
14
|
* @beta
|
15
15
|
* @example
|
16
16
|
* ```ts
|
17
|
-
* import {
|
18
|
-
* const result = await
|
17
|
+
* import { waitForCallsReceipt } from "thirdweb/wallets/eip5792";
|
18
|
+
* const result = await waitForCallsReceipt({
|
19
19
|
* client,
|
20
20
|
* chain,
|
21
21
|
* wallet,
|
22
|
-
*
|
22
|
+
* id: "0x123...",
|
23
23
|
* });
|
24
24
|
* ```
|
25
|
+
*
|
26
|
+
* Example with useSendCalls:
|
27
|
+
* ```ts
|
28
|
+
* const sendResult = await sendCalls({
|
29
|
+
* client,
|
30
|
+
* chain,
|
31
|
+
* wallet,
|
32
|
+
* calls: [...],
|
33
|
+
* });
|
34
|
+
* const confirmResult = await waitForCallsReceipt(sendResult);
|
35
|
+
* console.log("Transaction confirmed: ", confirmResult.receipts?.[0].transactionHash);
|
36
|
+
* ```
|
25
37
|
* @extension EIP5792
|
26
38
|
*/
|
27
|
-
export function
|
28
|
-
const {
|
39
|
+
export function waitForCallsReceipt(options) {
|
40
|
+
const { id, chain, wallet, client } = options;
|
29
41
|
const chainId = chain.id;
|
30
|
-
const key = `${chainId}:calls_${
|
42
|
+
const key = `${chainId}:calls_${id}`;
|
31
43
|
const maxBlocksWaitTime = options.maxBlocksWaitTime ?? DEFAULT_MAX_BLOCKS_WAIT_TIME;
|
32
44
|
if (map.has(key)) {
|
33
45
|
// biome-ignore lint/style/noNonNullAssertion: the `has` above ensures that this will always be set
|
@@ -50,13 +62,14 @@ export function waitForBundle(options) {
|
|
50
62
|
const result = await getCallsStatus({
|
51
63
|
wallet,
|
52
64
|
client,
|
53
|
-
|
65
|
+
id,
|
54
66
|
});
|
55
|
-
if (result.status === "
|
67
|
+
if (result.status === "success" || result.status === "failure") {
|
56
68
|
// stop the polling
|
57
69
|
unwatch();
|
58
70
|
// resolve the top level promise with the result
|
59
71
|
resolve(result);
|
72
|
+
return;
|
60
73
|
}
|
61
74
|
}
|
62
75
|
catch {
|
@@ -71,4 +84,4 @@ export function waitForBundle(options) {
|
|
71
84
|
map.set(key, promise);
|
72
85
|
return promise;
|
73
86
|
}
|
74
|
-
//# sourceMappingURL=wait-for-
|
87
|
+
//# sourceMappingURL=wait-for-calls-receipt.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"wait-for-calls-receipt.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/wait-for-calls-receipt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2C,CAAC;AAS/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE9C,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB,IAAI,4BAA4B,CAAC;IAE5D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,mGAAmG;QACnG,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtE,oDAAoD;QACpD,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QAEtB,MAAM,OAAO,GAAG,gBAAgB,CAAC;YAC/B,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;YACZ,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC3B,YAAY,EAAE,CAAC;gBACf,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAAC;oBACtC,OAAO,EAAE,CAAC;oBACV,MAAM,CACJ,IAAI,KAAK,CAAC,8BAA8B,iBAAiB,SAAS,CAAC,CACpE,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;wBAClC,MAAM;wBACN,MAAM;wBACN,EAAE;qBACH,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC/D,mBAAmB;wBACnB,OAAO,EAAE,CAAC;wBACV,gDAAgD;wBAChD,OAAO,CAAC,MAAM,CAAC,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;gBAC7C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,wEAAwE;IAC1E,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|