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
@@ -2,23 +2,19 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getCoinbaseWebProvider = getCoinbaseWebProvider;
|
4
4
|
exports.isCoinbaseSDKWallet = isCoinbaseSDKWallet;
|
5
|
-
exports.coinbaseSDKWalletGetCapabilities = coinbaseSDKWalletGetCapabilities;
|
6
|
-
exports.coinbaseSDKWalletSendCalls = coinbaseSDKWalletSendCalls;
|
7
|
-
exports.coinbaseSDKWalletShowCallsStatus = coinbaseSDKWalletShowCallsStatus;
|
8
|
-
exports.coinbaseSDKWalletGetCallsStatus = coinbaseSDKWalletGetCallsStatus;
|
9
5
|
exports.connectCoinbaseWalletSDK = connectCoinbaseWalletSDK;
|
10
6
|
exports.autoConnectCoinbaseWalletSDK = autoConnectCoinbaseWalletSDK;
|
11
7
|
const ox__Hex = require("ox/Hex");
|
12
8
|
const ox__TypedData = require("ox/TypedData");
|
13
|
-
const chains_js_1 = require("../utils/chains.js");
|
14
|
-
const normalizeChainId_js_1 = require("../utils/normalizeChainId.js");
|
15
9
|
const transaction_js_1 = require("../../analytics/track/transaction.js");
|
16
10
|
const utils_js_1 = require("../../chains/utils.js");
|
17
11
|
const address_js_1 = require("../../utils/address.js");
|
18
12
|
const hex_js_1 = require("../../utils/encoding/hex.js");
|
19
13
|
const parse_typed_data_js_1 = require("../../utils/signatures/helpers/parse-typed-data.js");
|
20
14
|
const constants_js_1 = require("../constants.js");
|
15
|
+
const chains_js_1 = require("../utils/chains.js");
|
21
16
|
const defaultDappMetadata_js_1 = require("../utils/defaultDappMetadata.js");
|
17
|
+
const normalizeChainId_js_1 = require("../utils/normalizeChainId.js");
|
22
18
|
const utils_js_2 = require("./utils.js");
|
23
19
|
// Need to keep the provider around because it keeps a single popup window connection behind the scenes
|
24
20
|
// this should be ok since all the creation options are provided at build time
|
@@ -59,85 +55,6 @@ async function getCoinbaseWebProvider(options) {
|
|
59
55
|
function isCoinbaseSDKWallet(wallet) {
|
60
56
|
return wallet.id === constants_js_1.COINBASE;
|
61
57
|
}
|
62
|
-
/**
|
63
|
-
* @internal
|
64
|
-
*/
|
65
|
-
async function coinbaseSDKWalletGetCapabilities(args) {
|
66
|
-
const { wallet } = args;
|
67
|
-
const account = wallet.getAccount();
|
68
|
-
if (!account) {
|
69
|
-
return {
|
70
|
-
message: `Can't get capabilities, no account connected for wallet: ${wallet.id}`,
|
71
|
-
};
|
72
|
-
}
|
73
|
-
const config = wallet.getConfig();
|
74
|
-
const provider = await getCoinbaseWebProvider(config);
|
75
|
-
try {
|
76
|
-
return (await provider.request({
|
77
|
-
method: "wallet_getCapabilities",
|
78
|
-
params: [account.address],
|
79
|
-
}));
|
80
|
-
}
|
81
|
-
catch (error) {
|
82
|
-
if (/unsupport|not support/i.test(error.message)) {
|
83
|
-
return {
|
84
|
-
message: `${wallet.id} does not support wallet_getCapabilities, reach out to them directly to request EIP-5792 support.`,
|
85
|
-
};
|
86
|
-
}
|
87
|
-
throw error;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
/**
|
91
|
-
* @internal
|
92
|
-
*/
|
93
|
-
async function coinbaseSDKWalletSendCalls(args) {
|
94
|
-
const { wallet, params } = args;
|
95
|
-
const config = wallet.getConfig();
|
96
|
-
const provider = await getCoinbaseWebProvider(config);
|
97
|
-
try {
|
98
|
-
return (await provider.request({
|
99
|
-
method: "wallet_sendCalls",
|
100
|
-
params,
|
101
|
-
}));
|
102
|
-
}
|
103
|
-
catch (error) {
|
104
|
-
if (/unsupport|not support/i.test(error.message)) {
|
105
|
-
throw new Error(`${wallet.id} does not support wallet_sendCalls, reach out to them directly to request EIP-5792 support.`);
|
106
|
-
}
|
107
|
-
throw error;
|
108
|
-
}
|
109
|
-
}
|
110
|
-
/**
|
111
|
-
* @internal
|
112
|
-
*/
|
113
|
-
async function coinbaseSDKWalletShowCallsStatus(args) {
|
114
|
-
const { wallet, bundleId } = args;
|
115
|
-
const provider = await getCoinbaseWebProvider(wallet.getConfig());
|
116
|
-
try {
|
117
|
-
return await provider.request({
|
118
|
-
method: "wallet_showCallsStatus",
|
119
|
-
params: [bundleId],
|
120
|
-
});
|
121
|
-
}
|
122
|
-
catch (error) {
|
123
|
-
if (/unsupport|not support/i.test(error.message)) {
|
124
|
-
throw new Error(`${wallet.id} does not support wallet_showCallsStatus, reach out to them directly to request EIP-5792 support.`);
|
125
|
-
}
|
126
|
-
throw error;
|
127
|
-
}
|
128
|
-
}
|
129
|
-
/**
|
130
|
-
* @internal
|
131
|
-
*/
|
132
|
-
async function coinbaseSDKWalletGetCallsStatus(args) {
|
133
|
-
const { wallet, bundleId } = args;
|
134
|
-
const config = wallet.getConfig();
|
135
|
-
const provider = await getCoinbaseWebProvider(config);
|
136
|
-
return provider.request({
|
137
|
-
method: "wallet_getCallsStatus",
|
138
|
-
params: [bundleId],
|
139
|
-
});
|
140
|
-
}
|
141
58
|
function createAccount({ provider, address, client, }) {
|
142
59
|
const account = {
|
143
60
|
address: (0, address_js_1.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":"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"}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getCallsStatus = getCallsStatus;
|
4
|
+
const hex_js_1 = require("../../utils/encoding/hex.js");
|
5
|
+
const hex_js_2 = require("../../utils/encoding/hex.js");
|
4
6
|
const coinbase_web_js_1 = require("../coinbase/coinbase-web.js");
|
5
7
|
const index_js_1 = require("../in-app/core/wallet/index.js");
|
6
8
|
const index_js_2 = require("../injected/index.js");
|
@@ -25,17 +27,16 @@ const controller_js_1 = require("../wallet-connect/controller.js");
|
|
25
27
|
*
|
26
28
|
* const client = createThirdwebClient({ clientId: ... });
|
27
29
|
*
|
28
|
-
* const
|
30
|
+
* const result = await sendCalls({ wallet, client, calls });
|
29
31
|
*
|
30
32
|
* let result;
|
31
|
-
* while (result.status !== "
|
32
|
-
* result = await getCallsStatus(
|
33
|
+
* while (result.status !== "success") {
|
34
|
+
* result = await getCallsStatus(result);
|
33
35
|
* }
|
34
36
|
* ```
|
35
37
|
* @extension EIP5792
|
36
|
-
* @extension EIP5792
|
37
38
|
*/
|
38
|
-
async function getCallsStatus({ wallet, client,
|
39
|
+
async function getCallsStatus({ wallet, client, id, }) {
|
39
40
|
const account = wallet.getAccount();
|
40
41
|
if (!account) {
|
41
42
|
throw new Error(`Failed to get call status, no account found for wallet ${wallet.id}`);
|
@@ -43,22 +44,56 @@ async function getCallsStatus({ wallet, client, bundleId, }) {
|
|
43
44
|
// These conveniently operate the same
|
44
45
|
if ((0, index_js_3.isSmartWallet)(wallet) || (0, index_js_1.isInAppWallet)(wallet)) {
|
45
46
|
const { inAppWalletGetCallsStatus } = await Promise.resolve().then(() => require("../in-app/core/eip5972/in-app-wallet-calls.js"));
|
46
|
-
return inAppWalletGetCallsStatus({ wallet, client,
|
47
|
-
}
|
48
|
-
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
49
|
-
const { coinbaseSDKWalletGetCallsStatus } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
50
|
-
return coinbaseSDKWalletGetCallsStatus({ wallet, bundleId });
|
47
|
+
return inAppWalletGetCallsStatus({ wallet, client, id });
|
51
48
|
}
|
52
49
|
if ((0, controller_js_1.isWalletConnect)(wallet)) {
|
53
50
|
throw new Error("getCallsStatus is not yet supported for Wallet Connect");
|
54
51
|
}
|
55
|
-
|
56
|
-
|
52
|
+
let provider;
|
53
|
+
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
54
|
+
const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
55
|
+
const config = wallet.getConfig();
|
56
|
+
provider = (await getCoinbaseWebProvider(config));
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
60
|
+
}
|
57
61
|
try {
|
58
|
-
|
62
|
+
const { atomic = false, chainId, receipts, version = "2.0.0", ...response } = (await provider.request({
|
59
63
|
method: "wallet_getCallsStatus",
|
60
|
-
params: [
|
61
|
-
});
|
64
|
+
params: [id],
|
65
|
+
}));
|
66
|
+
const [status, statusCode] = (() => {
|
67
|
+
const statusCode = response.status;
|
68
|
+
if (statusCode >= 100 && statusCode < 200)
|
69
|
+
return ["pending", statusCode];
|
70
|
+
if (statusCode >= 200 && statusCode < 300)
|
71
|
+
return ["success", statusCode];
|
72
|
+
if (statusCode >= 300 && statusCode < 700)
|
73
|
+
return ["failure", statusCode];
|
74
|
+
// @ts-expect-error: for backwards compatibility
|
75
|
+
if (statusCode === "CONFIRMED")
|
76
|
+
return ["success", 200];
|
77
|
+
// @ts-expect-error: for backwards compatibility
|
78
|
+
if (statusCode === "PENDING")
|
79
|
+
return ["pending", 100];
|
80
|
+
return [undefined, statusCode];
|
81
|
+
})();
|
82
|
+
return {
|
83
|
+
...response,
|
84
|
+
atomic,
|
85
|
+
// @ts-expect-error: for backwards compatibility
|
86
|
+
chainId: chainId ? (0, hex_js_2.hexToNumber)(chainId) : undefined,
|
87
|
+
receipts: receipts?.map((receipt) => ({
|
88
|
+
...receipt,
|
89
|
+
blockNumber: (0, hex_js_1.hexToBigInt)(receipt.blockNumber),
|
90
|
+
gasUsed: (0, hex_js_1.hexToBigInt)(receipt.gasUsed),
|
91
|
+
status: receiptStatuses[receipt.status],
|
92
|
+
})) ?? [],
|
93
|
+
statusCode,
|
94
|
+
status,
|
95
|
+
version,
|
96
|
+
};
|
62
97
|
}
|
63
98
|
catch (error) {
|
64
99
|
if (/unsupport|not support/i.test(error.message)) {
|
@@ -67,4 +102,8 @@ async function getCallsStatus({ wallet, client, bundleId, }) {
|
|
67
102
|
throw error;
|
68
103
|
}
|
69
104
|
}
|
105
|
+
const receiptStatuses = {
|
106
|
+
"0x0": "reverted",
|
107
|
+
"0x1": "success",
|
108
|
+
};
|
70
109
|
//# 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":";;
|
1
|
+
{"version":3,"file":"get-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-calls-status.ts"],"names":[],"mappings":"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"}
|
@@ -26,7 +26,7 @@ const controller_js_1 = require("../wallet-connect/controller.js");
|
|
26
26
|
*
|
27
27
|
* @extension EIP5792
|
28
28
|
*/
|
29
|
-
async function getCapabilities({ wallet, }) {
|
29
|
+
async function getCapabilities({ wallet, chainId, }) {
|
30
30
|
const account = wallet.getAccount();
|
31
31
|
if (!account) {
|
32
32
|
return {
|
@@ -41,23 +41,36 @@ async function getCapabilities({ wallet, }) {
|
|
41
41
|
const { inAppWalletGetCapabilities } = await Promise.resolve().then(() => require("../in-app/core/eip5972/in-app-wallet-capabilities.js"));
|
42
42
|
return inAppWalletGetCapabilities({ wallet });
|
43
43
|
}
|
44
|
-
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
45
|
-
const { coinbaseSDKWalletGetCapabilities } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
46
|
-
return coinbaseSDKWalletGetCapabilities({ wallet });
|
47
|
-
}
|
48
44
|
// TODO: Add Wallet Connect support
|
49
45
|
if ((0, controller_js_1.isWalletConnect)(wallet)) {
|
50
46
|
return {
|
51
47
|
message: "getCapabilities is not yet supported with Wallet Connect",
|
52
48
|
};
|
53
49
|
}
|
54
|
-
|
55
|
-
|
50
|
+
let provider;
|
51
|
+
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
52
|
+
const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
53
|
+
const config = wallet.getConfig();
|
54
|
+
provider = (await getCoinbaseWebProvider(config));
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
58
|
+
}
|
56
59
|
try {
|
57
|
-
|
60
|
+
const result = await provider.request({
|
58
61
|
method: "wallet_getCapabilities",
|
59
62
|
params: [(0, address_js_1.getAddress)(account.address)],
|
60
63
|
});
|
64
|
+
const capabilities = {};
|
65
|
+
for (const [chainId, capabilities_] of Object.entries(result)) {
|
66
|
+
capabilities[Number(chainId)] = {};
|
67
|
+
const capabilitiesCopy = {};
|
68
|
+
for (const [key, value] of Object.entries(capabilities_)) {
|
69
|
+
capabilitiesCopy[key] = value;
|
70
|
+
}
|
71
|
+
capabilities[Number(chainId)] = capabilitiesCopy;
|
72
|
+
}
|
73
|
+
return (typeof chainId === "number" ? capabilities[chainId] : capabilities);
|
61
74
|
}
|
62
75
|
catch (error) {
|
63
76
|
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":";;
|
1
|
+
{"version":3,"file":"get-capabilities.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-capabilities.ts"],"names":[],"mappings":";;AA2CA,0CAuEC;AAlHD,uDAAoD;AAEpD,iEAGqC;AACrC,6DAA+D;AAC/D,mDAA2D;AAG3D,mEAAkE;AAalE;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,eAAe,CAAuC,EAC1E,MAAM,EACN,OAAO,GACoB;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,4DAA4D,MAAM,CAAC,EAAE,EAAE;SACjF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,0BAA0B,EAAE,GAAG,2CACrC,2CAA2C,EAC5C,CAAC;QACF,OAAO,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAA,wBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,EAAE,0BAA0B,EAAE,GAAG,2CACrC,sDAAsD,EACvD,CAAC;QACF,OAAO,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAA,+BAAe,EAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,0DAA0D;SACpE,CAAC;IACJ,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,2CACjC,6BAA6B,EAC9B,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,IAAA,8BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE,CAAC,IAAA,uBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACtC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAGpB,CAAC;QACF,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,EAAwB,CAAC;YAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzD,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAChC,CAAC;YACD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC;QACnD,CAAC;QACD,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAC1D,CAAC;IACb,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,sCAAsC,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,mGAAmG;aACzH,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.sendAndConfirmCalls = sendAndConfirmCalls;
|
4
|
+
const send_calls_js_1 = require("./send-calls.js");
|
5
|
+
const wait_for_calls_receipt_js_1 = require("./wait-for-calls-receipt.js");
|
6
|
+
/**
|
7
|
+
* Send and confirm calls in a single transaction.
|
8
|
+
*
|
9
|
+
* This is a convenience function that sends the calls with `sendCalls` and then waits for the receipts with `waitForCallsReceipt`.
|
10
|
+
*
|
11
|
+
* @param options - The options for sending and confirming calls.
|
12
|
+
* @returns The receipts of the calls.
|
13
|
+
* @example
|
14
|
+
* ```ts
|
15
|
+
* const call1 = approve({
|
16
|
+
* contract: USDT_CONTRACT,
|
17
|
+
* amount: 100,
|
18
|
+
* spender: "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
|
19
|
+
* });
|
20
|
+
* const call2 = transfer({
|
21
|
+
* contract: USDT_CONTRACT,
|
22
|
+
* to: "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
|
23
|
+
* amount: 100,
|
24
|
+
* });
|
25
|
+
* const result = await sendAndConfirmCalls({
|
26
|
+
* calls: [call1, call2],
|
27
|
+
* wallet: wallet,
|
28
|
+
* });
|
29
|
+
* console.log("Transaction receipts:", result.receipts);
|
30
|
+
* ```
|
31
|
+
* @extension EIP5792
|
32
|
+
* @beta
|
33
|
+
*/
|
34
|
+
async function sendAndConfirmCalls(options) {
|
35
|
+
const sendCallsResult = await (0, send_calls_js_1.sendCalls)(options);
|
36
|
+
return (0, wait_for_calls_receipt_js_1.waitForCallsReceipt)({
|
37
|
+
...sendCallsResult,
|
38
|
+
maxBlocksWaitTime: options.maxBlocksWaitTime,
|
39
|
+
});
|
40
|
+
}
|
41
|
+
//# 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":";;AAiCA,kDAcC;AA9CD,mDAAmE;AAEnE,2EAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAMC;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,yBAAS,EAAC,OAAO,CAAC,CAAC;IACjD,OAAO,IAAA,+CAAmB,EAAC;QACzB,GAAG,eAAe;QAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAC;AACL,CAAC"}
|
@@ -4,6 +4,7 @@ exports.sendCalls = sendCalls;
|
|
4
4
|
const encode_js_1 = require("../../transaction/actions/encode.js");
|
5
5
|
const address_js_1 = require("../../utils/address.js");
|
6
6
|
const hex_js_1 = require("../../utils/encoding/hex.js");
|
7
|
+
const json_js_1 = require("../../utils/json.js");
|
7
8
|
const resolve_promised_value_js_1 = require("../../utils/promise/resolve-promised-value.js");
|
8
9
|
const coinbase_web_js_1 = require("../coinbase/coinbase-web.js");
|
9
10
|
const index_js_1 = require("../in-app/core/wallet/index.js");
|
@@ -36,6 +37,7 @@ const controller_js_1 = require("../wallet-connect/controller.js");
|
|
36
37
|
*
|
37
38
|
* const client = createThirdwebClient({ clientId: ... });
|
38
39
|
* const wallet = createWallet("com.coinbase.wallet");
|
40
|
+
* await wallet.connect({ client });
|
39
41
|
*
|
40
42
|
* const sendTx1 = approve({
|
41
43
|
contract: USDT_CONTRACT,
|
@@ -65,12 +67,13 @@ const controller_js_1 = require("../wallet-connect/controller.js");
|
|
65
67
|
* }
|
66
68
|
* }
|
67
69
|
* });
|
68
|
-
* We recommend proxying any paymaster calls via an API route you setup and control.
|
69
70
|
* ```
|
71
|
+
* We recommend proxying any paymaster calls via an API route you setup and control.
|
72
|
+
*
|
70
73
|
* @extension EIP5792
|
71
74
|
*/
|
72
75
|
async function sendCalls(options) {
|
73
|
-
const { wallet, calls, capabilities, version = "
|
76
|
+
const { wallet, calls, capabilities, version = "2.0.0", chain = wallet.getChain(), } = options;
|
74
77
|
if (!chain) {
|
75
78
|
throw new Error(`Cannot send calls, no active chain found for wallet: ${wallet.id}`);
|
76
79
|
}
|
@@ -78,10 +81,16 @@ async function sendCalls(options) {
|
|
78
81
|
if (!account) {
|
79
82
|
throw new Error(`Cannot send calls, no account connected for wallet: ${wallet.id}`);
|
80
83
|
}
|
84
|
+
const firstCall = options.calls[0];
|
85
|
+
if (!firstCall) {
|
86
|
+
throw new Error("No calls to send");
|
87
|
+
}
|
88
|
+
const client = firstCall.client;
|
81
89
|
// These conveniently operate the same
|
82
90
|
if ((0, index_js_3.isSmartWallet)(wallet) || (0, index_js_1.isInAppWallet)(wallet)) {
|
83
91
|
const { inAppWalletSendCalls } = await Promise.resolve().then(() => require("../in-app/core/eip5972/in-app-wallet-calls.js"));
|
84
|
-
|
92
|
+
const id = await inAppWalletSendCalls({ account, calls });
|
93
|
+
return { id, client, chain, wallet };
|
85
94
|
}
|
86
95
|
const preparedCalls = await Promise.all(calls.map(async (call) => {
|
87
96
|
const { to, value } = call;
|
@@ -112,27 +121,31 @@ async function sendCalls(options) {
|
|
112
121
|
atomicRequired: options.atomicRequired ?? false,
|
113
122
|
},
|
114
123
|
];
|
115
|
-
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
116
|
-
const { coinbaseSDKWalletSendCalls } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
117
|
-
return coinbaseSDKWalletSendCalls({
|
118
|
-
wallet,
|
119
|
-
params: injectedWalletCallParams,
|
120
|
-
});
|
121
|
-
}
|
122
124
|
if ((0, controller_js_1.isWalletConnect)(wallet)) {
|
123
125
|
throw new Error("sendCalls is not yet supported for Wallet Connect");
|
124
126
|
}
|
125
|
-
|
126
|
-
|
127
|
+
let provider;
|
128
|
+
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
129
|
+
const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
130
|
+
const config = wallet.getConfig();
|
131
|
+
provider = (await getCoinbaseWebProvider(config));
|
132
|
+
}
|
133
|
+
else {
|
134
|
+
provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
135
|
+
}
|
127
136
|
try {
|
128
|
-
|
137
|
+
const callId = await provider.request({
|
129
138
|
method: "wallet_sendCalls",
|
130
139
|
params: injectedWalletCallParams, // The viem type definition is slightly different
|
131
140
|
});
|
141
|
+
if (typeof callId === "object" && "id" in callId) {
|
142
|
+
return { id: callId.id, client, chain, wallet };
|
143
|
+
}
|
144
|
+
return { id: callId, client, chain, wallet };
|
132
145
|
}
|
133
146
|
catch (error) {
|
134
147
|
if (/unsupport|not support/i.test(error.message)) {
|
135
|
-
throw new Error(`${wallet.id}
|
148
|
+
throw new Error(`${wallet.id} errored calling wallet_sendCalls, with error: ${error instanceof Error ? error.message : (0, json_js_1.stringify)(error)}`);
|
136
149
|
}
|
137
150
|
throw error;
|
138
151
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":"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"}
|
@@ -30,23 +30,24 @@ const controller_js_1 = require("../wallet-connect/controller.js");
|
|
30
30
|
* @extension EIP5792
|
31
31
|
* @internal
|
32
32
|
*/
|
33
|
-
async function showCallsStatus({ wallet,
|
33
|
+
async function showCallsStatus({ wallet, id, }) {
|
34
34
|
if ((0, index_js_3.isSmartWallet)(wallet) ||
|
35
35
|
(0, index_js_1.isInAppWallet)(wallet) ||
|
36
36
|
(0, controller_js_1.isWalletConnect)(wallet)) {
|
37
37
|
throw new Error("showCallsStatus is currently unsupported for this wallet type");
|
38
38
|
}
|
39
|
+
let provider;
|
39
40
|
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
40
|
-
|
41
|
-
|
42
|
-
|
41
|
+
provider = (await (0, coinbase_web_js_1.getCoinbaseWebProvider)(wallet.getConfig()));
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
// Default to injected wallet
|
45
|
+
provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
43
46
|
}
|
44
|
-
// Default to injected wallet
|
45
|
-
const provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
46
47
|
try {
|
47
48
|
return await provider.request({
|
48
49
|
method: "wallet_showCallsStatus",
|
49
|
-
params: [
|
50
|
+
params: [id],
|
50
51
|
});
|
51
52
|
}
|
52
53
|
catch (error) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"show-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/show-calls-status.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"show-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/show-calls-status.ts"],"names":[],"mappings":";;AAyCA,0CAmCC;AA5ED,iEAGqC;AACrC,6DAA+D;AAC/D,mDAA2D;AAG3D,gDAAkD;AAClD,mEAAkE;AAQlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EACN,EAAE,GACqB;IACvB,IACE,IAAA,wBAAa,EAAC,MAAM,CAAC;QACrB,IAAA,wBAAa,EAAC,MAAM,CAAC;QACrB,IAAA,+BAAe,EAAC,MAAM,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;QAChC,QAAQ,GAAG,CAAC,MAAM,IAAA,wCAAsB,EAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAa,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,QAAQ,GAAG,IAAA,8BAAmB,EAAC,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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.waitForCallsReceipt = waitForCallsReceipt;
|
4
4
|
const watchBlockNumber_js_1 = require("../../rpc/watchBlockNumber.js");
|
5
5
|
const get_calls_status_js_1 = require("./get-calls-status.js");
|
6
6
|
const DEFAULT_MAX_BLOCKS_WAIT_TIME = 100;
|
@@ -17,20 +17,32 @@ const map = new Map();
|
|
17
17
|
* @beta
|
18
18
|
* @example
|
19
19
|
* ```ts
|
20
|
-
* import {
|
21
|
-
* const result = await
|
20
|
+
* import { waitForCallsReceipt } from "thirdweb/wallets/eip5792";
|
21
|
+
* const result = await waitForCallsReceipt({
|
22
22
|
* client,
|
23
23
|
* chain,
|
24
24
|
* wallet,
|
25
|
-
*
|
25
|
+
* id: "0x123...",
|
26
26
|
* });
|
27
27
|
* ```
|
28
|
+
*
|
29
|
+
* Example with useSendCalls:
|
30
|
+
* ```ts
|
31
|
+
* const sendResult = await sendCalls({
|
32
|
+
* client,
|
33
|
+
* chain,
|
34
|
+
* wallet,
|
35
|
+
* calls: [...],
|
36
|
+
* });
|
37
|
+
* const confirmResult = await waitForCallsReceipt(sendResult);
|
38
|
+
* console.log("Transaction confirmed: ", confirmResult.receipts?.[0].transactionHash);
|
39
|
+
* ```
|
28
40
|
* @extension EIP5792
|
29
41
|
*/
|
30
|
-
function
|
31
|
-
const {
|
42
|
+
function waitForCallsReceipt(options) {
|
43
|
+
const { id, chain, wallet, client } = options;
|
32
44
|
const chainId = chain.id;
|
33
|
-
const key = `${chainId}:calls_${
|
45
|
+
const key = `${chainId}:calls_${id}`;
|
34
46
|
const maxBlocksWaitTime = options.maxBlocksWaitTime ?? DEFAULT_MAX_BLOCKS_WAIT_TIME;
|
35
47
|
if (map.has(key)) {
|
36
48
|
// biome-ignore lint/style/noNonNullAssertion: the `has` above ensures that this will always be set
|
@@ -53,13 +65,14 @@ function waitForBundle(options) {
|
|
53
65
|
const result = await (0, get_calls_status_js_1.getCallsStatus)({
|
54
66
|
wallet,
|
55
67
|
client,
|
56
|
-
|
68
|
+
id,
|
57
69
|
});
|
58
|
-
if (result.status === "
|
70
|
+
if (result.status === "success" || result.status === "failure") {
|
59
71
|
// stop the polling
|
60
72
|
unwatch();
|
61
73
|
// resolve the top level promise with the result
|
62
74
|
resolve(result);
|
75
|
+
return;
|
63
76
|
}
|
64
77
|
}
|
65
78
|
catch {
|
@@ -74,4 +87,4 @@ function waitForBundle(options) {
|
|
74
87
|
map.set(key, promise);
|
75
88
|
return promise;
|
76
89
|
}
|
77
|
-
//# sourceMappingURL=wait-for-
|
90
|
+
//# 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":";;AAoDA,kDAuDC;AAzGD,uEAAiE;AAGjE,+DAAuD;AAEvD,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2C,CAAC;AAS/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,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,IAAA,sCAAgB,EAAC;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,IAAA,oCAAc,EAAC;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"}
|