thirdweb 5.98.1 → 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/extensions/erc20/read/getCurrencyMetadata.js +2 -2
- package/dist/cjs/extensions/erc20/read/getCurrencyMetadata.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/react/native/ui/connect/ConnectButton.js +4 -1
- package/dist/cjs/react/native/ui/connect/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +6 -4
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +5 -15
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js +8 -1
- package/dist/cjs/react/web/ui/PayEmbed.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/connection/autoConnectCore.js +29 -12
- package/dist/cjs/wallets/connection/autoConnectCore.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/in-app/core/wallet/is-in-app-signer.js +15 -0
- package/dist/cjs/wallets/in-app/core/wallet/is-in-app-signer.js.map +1 -0
- 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/extensions/erc20/read/getCurrencyMetadata.js +2 -2
- package/dist/esm/extensions/erc20/read/getCurrencyMetadata.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/react/native/ui/connect/ConnectButton.js +4 -1
- package/dist/esm/react/native/ui/connect/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +6 -4
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +1 -11
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js +8 -1
- package/dist/esm/react/web/ui/PayEmbed.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/connection/autoConnectCore.js +29 -12
- package/dist/esm/wallets/connection/autoConnectCore.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/in-app/core/wallet/is-in-app-signer.js +12 -0
- package/dist/esm/wallets/in-app/core/wallet/is-in-app-signer.js.map +1 -0
- 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/react/native/ui/connect/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts +1 -1
- package/dist/types/react/web/ui/PayEmbed.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/connection/autoConnectCore.d.ts.map +1 -1
- package/dist/types/wallets/connection/types.d.ts +9 -0
- package/dist/types/wallets/connection/types.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/in-app/core/wallet/is-in-app-signer.d.ts +6 -0
- package/dist/types/wallets/in-app/core/wallet/is-in-app-signer.d.ts.map +1 -0
- 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/extensions/erc20/read/getCurrencyMetadata.ts +2 -2
- 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/react/native/ui/connect/ConnectButton.tsx +4 -1
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +11 -3
- package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +1 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +1 -21
- package/src/react/web/ui/PayEmbed.tsx +15 -1
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-web.ts +6 -117
- package/src/wallets/connection/autoConnectCore.ts +33 -12
- package/src/wallets/connection/types.ts +10 -0
- 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/in-app/core/wallet/is-in-app-signer.ts +21 -0
- 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
@@ -297,6 +297,9 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
297
297
|
);
|
298
298
|
const localeQuery = useConnectLocale(props.locale || "en_US");
|
299
299
|
const connectionManager = useConnectionManager();
|
300
|
+
const activeAccount = useActiveAccount();
|
301
|
+
const activeWallet = useActiveWallet();
|
302
|
+
const siweAuth = useSiweAuth(activeWallet, activeAccount, props.auth);
|
300
303
|
|
301
304
|
usePreloadWalletProviders({
|
302
305
|
wallets,
|
@@ -337,6 +340,7 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
337
340
|
}
|
338
341
|
accountAbstraction={props.accountAbstraction}
|
339
342
|
onConnect={props.onConnect}
|
343
|
+
siweAuth={siweAuth}
|
340
344
|
/>
|
341
345
|
);
|
342
346
|
|
@@ -362,7 +366,11 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
362
366
|
|
363
367
|
return (
|
364
368
|
<WalletUIStatesProvider theme={props.theme} isOpen={false}>
|
365
|
-
<ConnectButtonInner
|
369
|
+
<ConnectButtonInner
|
370
|
+
{...props}
|
371
|
+
siweAuth={siweAuth}
|
372
|
+
connectLocale={localeQuery.data}
|
373
|
+
/>
|
366
374
|
<ConnectModal
|
367
375
|
shouldSetActive={true}
|
368
376
|
accountAbstraction={props.accountAbstraction}
|
@@ -396,11 +404,11 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
396
404
|
function ConnectButtonInner(
|
397
405
|
props: ConnectButtonProps & {
|
398
406
|
connectLocale: ConnectLocale;
|
407
|
+
siweAuth: ReturnType<typeof useSiweAuth>;
|
399
408
|
},
|
400
409
|
) {
|
401
|
-
const
|
410
|
+
const siweAuth = props.siweAuth;
|
402
411
|
const activeAccount = useActiveAccount();
|
403
|
-
const siweAuth = useSiweAuth(activeWallet, activeAccount, props.auth);
|
404
412
|
const [showSignatureModal, setShowSignatureModal] = useState(false);
|
405
413
|
|
406
414
|
// if wallet gets disconnected suddently, close the signature modal if it's open
|
@@ -247,6 +247,7 @@ export function ConnectEmbed(props: ConnectEmbedProps) {
|
|
247
247
|
chain={preferredChain}
|
248
248
|
appMetadata={props.appMetadata}
|
249
249
|
client={props.client}
|
250
|
+
siweAuth={siweAuth}
|
250
251
|
wallets={wallets}
|
251
252
|
accountAbstraction={props.accountAbstraction}
|
252
253
|
timeout={
|
@@ -23,10 +23,7 @@ import { sendTransaction } from "../../../../../../../transaction/actions/send-t
|
|
23
23
|
import type { WaitForReceiptOptions } from "../../../../../../../transaction/actions/wait-for-tx-receipt.js";
|
24
24
|
import { waitForReceipt } from "../../../../../../../transaction/actions/wait-for-tx-receipt.js";
|
25
25
|
import { formatNumber } from "../../../../../../../utils/formatNumber.js";
|
26
|
-
import {
|
27
|
-
import { isInAppWallet } from "../../../../../../../wallets/in-app/core/wallet/index.js";
|
28
|
-
import type { Wallet } from "../../../../../../../wallets/interfaces/wallet.js";
|
29
|
-
import { isSmartWallet } from "../../../../../../../wallets/smart/is-smart-wallet.js";
|
26
|
+
import { isInAppSigner } from "../../../../../../../wallets/in-app/core/wallet/is-in-app-signer.js";
|
30
27
|
import { spacing } from "../../../../../../core/design-system/index.js";
|
31
28
|
import { useChainName } from "../../../../../../core/hooks/others/useChainQuery.js";
|
32
29
|
import { useBuyWithCryptoStatus } from "../../../../../../core/hooks/pay/useBuyWithCryptoStatus.js";
|
@@ -779,20 +776,3 @@ function useSwapMutation(props: {
|
|
779
776
|
},
|
780
777
|
});
|
781
778
|
}
|
782
|
-
|
783
|
-
function isInAppSigner(options: {
|
784
|
-
wallet: Wallet;
|
785
|
-
connectedWallets: Wallet[];
|
786
|
-
}) {
|
787
|
-
const isInAppOrEcosystem = (w: Wallet) =>
|
788
|
-
isInAppWallet(w) || isEcosystemWallet(w);
|
789
|
-
const isSmartWalletWithAdmin =
|
790
|
-
isSmartWallet(options.wallet) &&
|
791
|
-
options.connectedWallets.some(
|
792
|
-
(w) =>
|
793
|
-
isInAppOrEcosystem(w) &&
|
794
|
-
w.getAccount()?.address?.toLowerCase() ===
|
795
|
-
options.wallet.getAdminAccount?.()?.address?.toLowerCase(),
|
796
|
-
);
|
797
|
-
return isInAppOrEcosystem(options.wallet) || isSmartWalletWithAdmin;
|
798
|
-
}
|
@@ -9,13 +9,19 @@ import type { AppMetadata } from "../../../wallets/types.js";
|
|
9
9
|
import type { WalletId } from "../../../wallets/wallet-types.js";
|
10
10
|
import { CustomThemeProvider } from "../../core/design-system/CustomThemeProvider.js";
|
11
11
|
import type { Theme } from "../../core/design-system/index.js";
|
12
|
-
import
|
12
|
+
import {
|
13
|
+
type SiweAuthOptions,
|
14
|
+
useSiweAuth,
|
15
|
+
} from "../../core/hooks/auth/useSiweAuth.js";
|
13
16
|
import type {
|
14
17
|
ConnectButton_connectModalOptions,
|
15
18
|
PayUIOptions,
|
16
19
|
} from "../../core/hooks/connection/ConnectButtonProps.js";
|
20
|
+
import { useActiveAccount } from "../../core/hooks/wallets/useActiveAccount.js";
|
21
|
+
import { useActiveWallet } from "../../core/hooks/wallets/useActiveWallet.js";
|
17
22
|
import { useConnectionManager } from "../../core/providers/connection-manager.js";
|
18
23
|
import type { SupportedTokens } from "../../core/utils/defaultTokens.js";
|
24
|
+
import { AutoConnect } from "../../web/ui/AutoConnect/AutoConnect.js";
|
19
25
|
import { EmbedContainer } from "./ConnectWallet/Modal/ConnectEmbed.js";
|
20
26
|
import { useConnectLocale } from "./ConnectWallet/locale/getConnectLocale.js";
|
21
27
|
import BuyScreen from "./ConnectWallet/screens/Buy/BuyScreen.js";
|
@@ -300,6 +306,13 @@ export function PayEmbed(props: PayEmbedProps) {
|
|
300
306
|
const [screen, setScreen] = useState<"buy" | "execute-tx">("buy");
|
301
307
|
const theme = props.theme || "dark";
|
302
308
|
const connectionManager = useConnectionManager();
|
309
|
+
const activeAccount = useActiveAccount();
|
310
|
+
const activeWallet = useActiveWallet();
|
311
|
+
const siweAuth = useSiweAuth(
|
312
|
+
activeWallet,
|
313
|
+
activeAccount,
|
314
|
+
props.connectOptions?.auth,
|
315
|
+
);
|
303
316
|
|
304
317
|
// Add props.chain and props.chains to defined chains store
|
305
318
|
useEffect(() => {
|
@@ -342,6 +355,7 @@ export function PayEmbed(props: PayEmbedProps) {
|
|
342
355
|
} else {
|
343
356
|
content = (
|
344
357
|
<>
|
358
|
+
<AutoConnect client={props.client} siweAuth={siweAuth} />
|
345
359
|
{screen === "buy" && (
|
346
360
|
<BuyScreen
|
347
361
|
title={metadata?.name || "Buy"}
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.
|
1
|
+
export const version = "5.99.0";
|
@@ -1,14 +1,8 @@
|
|
1
1
|
import type { ProviderInterface } from "@coinbase/wallet-sdk";
|
2
|
+
import type { Preference } from "@coinbase/wallet-sdk/dist/core/provider/interface.js";
|
2
3
|
import type { Address } from "abitype";
|
3
4
|
import * as ox__Hex from "ox/Hex";
|
4
5
|
import * as ox__TypedData from "ox/TypedData";
|
5
|
-
import type { Account, Wallet } from "../interfaces/wallet.js";
|
6
|
-
import type { SendTransactionOption } from "../interfaces/wallet.js";
|
7
|
-
import type { AppMetadata, DisconnectFn, SwitchChainFn } from "../types.js";
|
8
|
-
import { getValidPublicRPCUrl } from "../utils/chains.js";
|
9
|
-
import { normalizeChainId } from "../utils/normalizeChainId.js";
|
10
|
-
|
11
|
-
import type { Preference } from "@coinbase/wallet-sdk/dist/core/provider/interface.js";
|
12
6
|
import { trackTransaction } from "../../analytics/track/transaction.js";
|
13
7
|
import type { Chain } from "../../chains/types.js";
|
14
8
|
import { getCachedChain, getChainMetadata } from "../../chains/utils.js";
|
@@ -22,14 +16,12 @@ import {
|
|
22
16
|
} from "../../utils/encoding/hex.js";
|
23
17
|
import { parseTypedData } from "../../utils/signatures/helpers/parse-typed-data.js";
|
24
18
|
import { COINBASE } from "../constants.js";
|
25
|
-
import type {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
WalletSendCallsId,
|
30
|
-
WalletSendCallsParameters,
|
31
|
-
} from "../eip5792/types.js";
|
19
|
+
import type { Account, Wallet } from "../interfaces/wallet.js";
|
20
|
+
import type { SendTransactionOption } from "../interfaces/wallet.js";
|
21
|
+
import type { AppMetadata, DisconnectFn, SwitchChainFn } from "../types.js";
|
22
|
+
import { getValidPublicRPCUrl } from "../utils/chains.js";
|
32
23
|
import { getDefaultAppMetadata } from "../utils/defaultDappMetadata.js";
|
24
|
+
import { normalizeChainId } from "../utils/normalizeChainId.js";
|
33
25
|
import type { WalletEmitter } from "../wallet-emitter.js";
|
34
26
|
import type {
|
35
27
|
CreateWalletArgs,
|
@@ -171,109 +163,6 @@ export function isCoinbaseSDKWallet(
|
|
171
163
|
return wallet.id === COINBASE;
|
172
164
|
}
|
173
165
|
|
174
|
-
/**
|
175
|
-
* @internal
|
176
|
-
*/
|
177
|
-
export async function coinbaseSDKWalletGetCapabilities(args: {
|
178
|
-
wallet: Wallet<typeof COINBASE>;
|
179
|
-
}) {
|
180
|
-
const { wallet } = args;
|
181
|
-
|
182
|
-
const account = wallet.getAccount();
|
183
|
-
if (!account) {
|
184
|
-
return {
|
185
|
-
message: `Can't get capabilities, no account connected for wallet: ${wallet.id}`,
|
186
|
-
};
|
187
|
-
}
|
188
|
-
|
189
|
-
const config = wallet.getConfig();
|
190
|
-
const provider = await getCoinbaseWebProvider(config);
|
191
|
-
try {
|
192
|
-
return (await provider.request({
|
193
|
-
method: "wallet_getCapabilities",
|
194
|
-
params: [account.address],
|
195
|
-
})) as WalletCapabilitiesRecord<WalletCapabilities, number>;
|
196
|
-
} catch (error: unknown) {
|
197
|
-
if (/unsupport|not support/i.test((error as Error).message)) {
|
198
|
-
return {
|
199
|
-
message: `${wallet.id} does not support wallet_getCapabilities, reach out to them directly to request EIP-5792 support.`,
|
200
|
-
};
|
201
|
-
}
|
202
|
-
throw error;
|
203
|
-
}
|
204
|
-
}
|
205
|
-
|
206
|
-
/**
|
207
|
-
* @internal
|
208
|
-
*/
|
209
|
-
export async function coinbaseSDKWalletSendCalls(args: {
|
210
|
-
wallet: Wallet<typeof COINBASE>;
|
211
|
-
params: WalletSendCallsParameters;
|
212
|
-
}) {
|
213
|
-
const { wallet, params } = args;
|
214
|
-
|
215
|
-
const config = wallet.getConfig();
|
216
|
-
const provider = await getCoinbaseWebProvider(config);
|
217
|
-
|
218
|
-
try {
|
219
|
-
return (await provider.request({
|
220
|
-
method: "wallet_sendCalls",
|
221
|
-
params,
|
222
|
-
})) as WalletSendCallsId;
|
223
|
-
} catch (error) {
|
224
|
-
if (/unsupport|not support/i.test((error as Error).message)) {
|
225
|
-
throw new Error(
|
226
|
-
`${wallet.id} does not support wallet_sendCalls, reach out to them directly to request EIP-5792 support.`,
|
227
|
-
);
|
228
|
-
}
|
229
|
-
throw error;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
/**
|
234
|
-
* @internal
|
235
|
-
*/
|
236
|
-
export async function coinbaseSDKWalletShowCallsStatus(args: {
|
237
|
-
wallet: Wallet<typeof COINBASE>;
|
238
|
-
bundleId: string;
|
239
|
-
}) {
|
240
|
-
const { wallet, bundleId } = args;
|
241
|
-
|
242
|
-
const provider = await getCoinbaseWebProvider(wallet.getConfig());
|
243
|
-
|
244
|
-
try {
|
245
|
-
return await provider.request({
|
246
|
-
method: "wallet_showCallsStatus",
|
247
|
-
params: [bundleId],
|
248
|
-
});
|
249
|
-
} catch (error: unknown) {
|
250
|
-
if (/unsupport|not support/i.test((error as Error).message)) {
|
251
|
-
throw new Error(
|
252
|
-
`${wallet.id} does not support wallet_showCallsStatus, reach out to them directly to request EIP-5792 support.`,
|
253
|
-
);
|
254
|
-
}
|
255
|
-
throw error;
|
256
|
-
}
|
257
|
-
}
|
258
|
-
|
259
|
-
/**
|
260
|
-
* @internal
|
261
|
-
*/
|
262
|
-
export async function coinbaseSDKWalletGetCallsStatus(args: {
|
263
|
-
wallet: Wallet<typeof COINBASE>;
|
264
|
-
bundleId: string;
|
265
|
-
}) {
|
266
|
-
const { wallet, bundleId } = args;
|
267
|
-
|
268
|
-
const config = wallet.getConfig();
|
269
|
-
const provider = await getCoinbaseWebProvider(config);
|
270
|
-
|
271
|
-
return provider.request({
|
272
|
-
method: "wallet_getCallsStatus",
|
273
|
-
params: [bundleId],
|
274
|
-
}) as Promise<GetCallsStatusResponse>;
|
275
|
-
}
|
276
|
-
|
277
166
|
function createAccount({
|
278
167
|
provider,
|
279
168
|
address,
|
@@ -8,6 +8,7 @@ import type {
|
|
8
8
|
AuthArgsType,
|
9
9
|
AuthStoredTokenWithCookieReturnType,
|
10
10
|
} from "../in-app/core/authentication/types.js";
|
11
|
+
import { isInAppSigner } from "../in-app/core/wallet/is-in-app-signer.js";
|
11
12
|
import { getUrlToken } from "../in-app/web/lib/get-url-token.js";
|
12
13
|
import type { Wallet } from "../interfaces/wallet.js";
|
13
14
|
import {
|
@@ -82,11 +83,11 @@ const _autoConnectCore = async ({
|
|
82
83
|
getStoredActiveWalletId(storage),
|
83
84
|
]);
|
84
85
|
|
85
|
-
const
|
86
|
+
const urlToken = getUrlToken();
|
86
87
|
|
87
88
|
// If an auth cookie is found and this site supports the wallet, we'll set the auth cookie in the client storage
|
88
|
-
const wallet = wallets.find((w) => w.id ===
|
89
|
-
if (
|
89
|
+
const wallet = wallets.find((w) => w.id === urlToken?.walletId);
|
90
|
+
if (urlToken?.authCookie && wallet) {
|
90
91
|
const clientStorage = new ClientScopedStorage({
|
91
92
|
storage,
|
92
93
|
clientId: props.client.clientId,
|
@@ -97,17 +98,17 @@ const _autoConnectCore = async ({
|
|
97
98
|
}
|
98
99
|
: undefined,
|
99
100
|
});
|
100
|
-
await clientStorage.saveAuthCookie(
|
101
|
+
await clientStorage.saveAuthCookie(urlToken.authCookie);
|
101
102
|
}
|
102
|
-
if (
|
103
|
-
lastActiveWalletId =
|
104
|
-
lastConnectedWalletIds = lastConnectedWalletIds?.includes(
|
103
|
+
if (urlToken?.walletId) {
|
104
|
+
lastActiveWalletId = urlToken.walletId;
|
105
|
+
lastConnectedWalletIds = lastConnectedWalletIds?.includes(urlToken.walletId)
|
105
106
|
? lastConnectedWalletIds
|
106
|
-
: [
|
107
|
+
: [urlToken.walletId, ...(lastConnectedWalletIds || [])];
|
107
108
|
}
|
108
109
|
|
109
|
-
if (
|
110
|
-
await setLastAuthProvider?.(
|
110
|
+
if (urlToken?.authProvider) {
|
111
|
+
await setLastAuthProvider?.(urlToken.authProvider, storage);
|
111
112
|
}
|
112
113
|
|
113
114
|
// if no wallets were last connected or we didn't receive an auth token
|
@@ -132,7 +133,7 @@ const _autoConnectCore = async ({
|
|
132
133
|
wallet: activeWallet,
|
133
134
|
client: props.client,
|
134
135
|
lastConnectedChain,
|
135
|
-
authResult:
|
136
|
+
authResult: urlToken?.authResult,
|
136
137
|
}),
|
137
138
|
{
|
138
139
|
ms: timeout,
|
@@ -183,13 +184,33 @@ const _autoConnectCore = async ({
|
|
183
184
|
wallet,
|
184
185
|
client: props.client,
|
185
186
|
lastConnectedChain,
|
186
|
-
authResult:
|
187
|
+
authResult: urlToken?.authResult,
|
187
188
|
});
|
188
189
|
manager.addConnectedWallet(wallet);
|
189
190
|
} catch {
|
190
191
|
// no-op
|
191
192
|
}
|
192
193
|
}
|
194
|
+
|
195
|
+
// Auto-login with SIWE
|
196
|
+
const isIAW =
|
197
|
+
activeWallet &&
|
198
|
+
isInAppSigner({
|
199
|
+
wallet: activeWallet,
|
200
|
+
connectedWallets: activeWallet
|
201
|
+
? [activeWallet, ...otherWallets]
|
202
|
+
: otherWallets,
|
203
|
+
});
|
204
|
+
if (
|
205
|
+
isIAW &&
|
206
|
+
props.siweAuth?.requiresAuth &&
|
207
|
+
!props.siweAuth?.isLoggedIn &&
|
208
|
+
!props.siweAuth?.isLoggingIn
|
209
|
+
) {
|
210
|
+
await props.siweAuth?.doLogin().catch((err) => {
|
211
|
+
console.warn("Error signing in with SIWE:", err.message);
|
212
|
+
});
|
213
|
+
}
|
193
214
|
manager.isAutoConnecting.setValue(false);
|
194
215
|
return autoConnected; // useQuery needs a return value
|
195
216
|
};
|
@@ -118,4 +118,14 @@ export type AutoConnectProps = {
|
|
118
118
|
* Callback to be called when the connection is timeout-ed
|
119
119
|
*/
|
120
120
|
onTimeout?: () => void;
|
121
|
+
|
122
|
+
/**
|
123
|
+
* @hidden
|
124
|
+
*/
|
125
|
+
siweAuth?: {
|
126
|
+
requiresAuth: boolean;
|
127
|
+
doLogin: () => Promise<void>;
|
128
|
+
isLoggedIn: boolean | undefined;
|
129
|
+
isLoggingIn: boolean | undefined;
|
130
|
+
};
|
121
131
|
};
|
@@ -89,7 +89,7 @@ describe.sequential("injected wallet", async () => {
|
|
89
89
|
const promise = getCallsStatus({
|
90
90
|
wallet: wallet,
|
91
91
|
client: TEST_CLIENT,
|
92
|
-
|
92
|
+
id: "test",
|
93
93
|
});
|
94
94
|
|
95
95
|
await expect(promise).rejects.toMatchInlineSnapshot(
|
@@ -107,17 +107,23 @@ describe.sequential("injected wallet", async () => {
|
|
107
107
|
const result = await getCallsStatus({
|
108
108
|
wallet: wallet,
|
109
109
|
client: TEST_CLIENT,
|
110
|
-
|
110
|
+
id: "test",
|
111
111
|
});
|
112
112
|
|
113
113
|
expect(mocks.injectedRequest).toHaveBeenCalledWith({
|
114
114
|
method: "wallet_getCallsStatus",
|
115
115
|
params: ["test"],
|
116
116
|
});
|
117
|
-
expect(result).
|
118
|
-
|
119
|
-
|
120
|
-
|
117
|
+
expect(result).toMatchInlineSnapshot(`
|
118
|
+
{
|
119
|
+
"atomic": false,
|
120
|
+
"chainId": undefined,
|
121
|
+
"receipts": [],
|
122
|
+
"status": "success",
|
123
|
+
"statusCode": 200,
|
124
|
+
"version": "2.0.0",
|
125
|
+
}
|
126
|
+
`);
|
121
127
|
});
|
122
128
|
|
123
129
|
test("without support should fail", async () => {
|
@@ -127,7 +133,7 @@ describe.sequential("injected wallet", async () => {
|
|
127
133
|
const promise = getCallsStatus({
|
128
134
|
wallet: wallet,
|
129
135
|
client: TEST_CLIENT,
|
130
|
-
|
136
|
+
id: "test",
|
131
137
|
});
|
132
138
|
|
133
139
|
await expect(promise).rejects.toMatchInlineSnapshot(
|
@@ -152,19 +158,15 @@ describe.sequential("in-app wallet", async () => {
|
|
152
158
|
});
|
153
159
|
wallet.getChain = vi.fn().mockReturnValue(ANVIL_CHAIN);
|
154
160
|
|
155
|
-
const
|
161
|
+
const callResult = await sendCalls({
|
156
162
|
wallet: wallet,
|
157
163
|
...SEND_CALLS_OPTIONS,
|
158
164
|
});
|
159
165
|
|
160
|
-
const result = await getCallsStatus(
|
161
|
-
wallet: wallet,
|
162
|
-
client: TEST_CLIENT,
|
163
|
-
bundleId,
|
164
|
-
});
|
166
|
+
const result = await getCallsStatus(callResult);
|
165
167
|
|
166
|
-
expect(result.status).toEqual("
|
167
|
-
expect(result.receipts
|
168
|
+
expect(result.status).toEqual("success");
|
169
|
+
expect(result.receipts?.length).toEqual(2);
|
168
170
|
});
|
169
171
|
|
170
172
|
test("with smart account", async () => {
|
@@ -177,19 +179,15 @@ describe.sequential("in-app wallet", async () => {
|
|
177
179
|
sendBatchTransaction,
|
178
180
|
});
|
179
181
|
|
180
|
-
const
|
182
|
+
const callResult = await sendCalls({
|
181
183
|
wallet: wallet,
|
182
184
|
...SEND_CALLS_OPTIONS,
|
183
185
|
});
|
184
186
|
|
185
|
-
const result = await getCallsStatus(
|
186
|
-
wallet: wallet,
|
187
|
-
client: TEST_CLIENT,
|
188
|
-
bundleId,
|
189
|
-
});
|
187
|
+
const result = await getCallsStatus(callResult);
|
190
188
|
|
191
|
-
expect(result.status).toEqual("
|
192
|
-
expect(result.receipts
|
189
|
+
expect(result.status).toEqual("success");
|
190
|
+
expect(result.receipts?.length).toEqual(1);
|
193
191
|
});
|
194
192
|
|
195
193
|
test("with pending transaction", async () => {
|
@@ -202,26 +200,22 @@ describe.sequential("in-app wallet", async () => {
|
|
202
200
|
sendTransaction,
|
203
201
|
});
|
204
202
|
|
205
|
-
const
|
203
|
+
const callResult = await sendCalls({
|
206
204
|
wallet: wallet,
|
207
205
|
...SEND_CALLS_OPTIONS,
|
208
206
|
});
|
209
207
|
|
210
|
-
const result = await getCallsStatus(
|
211
|
-
wallet: wallet,
|
212
|
-
client: TEST_CLIENT,
|
213
|
-
bundleId,
|
214
|
-
});
|
208
|
+
const result = await getCallsStatus(callResult);
|
215
209
|
|
216
|
-
expect(result.status).toEqual("
|
217
|
-
expect(result.receipts
|
210
|
+
expect(result.status).toEqual("pending");
|
211
|
+
expect(result.receipts?.length).toEqual(0);
|
218
212
|
});
|
219
213
|
|
220
214
|
test("unknown bundle id should fail", async () => {
|
221
215
|
const promise = getCallsStatus({
|
222
216
|
wallet: wallet,
|
223
217
|
client: TEST_CLIENT,
|
224
|
-
|
218
|
+
id: "unknown",
|
225
219
|
});
|
226
220
|
|
227
221
|
await expect(promise).rejects.toMatchInlineSnapshot(
|
@@ -235,7 +229,7 @@ describe.sequential("in-app wallet", async () => {
|
|
235
229
|
const promise = getCallsStatus({
|
236
230
|
wallet: wallet,
|
237
231
|
client: TEST_CLIENT,
|
238
|
-
|
232
|
+
id: "test",
|
239
233
|
});
|
240
234
|
|
241
235
|
await expect(promise).rejects.toMatchInlineSnapshot(
|
@@ -1,16 +1,23 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../client/client.js";
|
2
|
+
import { hexToBigInt } from "../../utils/encoding/hex.js";
|
3
|
+
import { hexToNumber } from "../../utils/encoding/hex.js";
|
2
4
|
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
3
5
|
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
4
6
|
import { getInjectedProvider } from "../injected/index.js";
|
7
|
+
import type { Ethereum } from "../interfaces/ethereum.js";
|
5
8
|
import type { Wallet } from "../interfaces/wallet.js";
|
6
9
|
import { isSmartWallet } from "../smart/index.js";
|
7
10
|
import { isWalletConnect } from "../wallet-connect/controller.js";
|
8
|
-
import type {
|
11
|
+
import type {
|
12
|
+
GetCallsStatusRawResponse,
|
13
|
+
GetCallsStatusResponse,
|
14
|
+
WalletSendCallsId,
|
15
|
+
} from "./types.js";
|
9
16
|
|
10
17
|
export type GetCallsStatusOptions = {
|
11
18
|
wallet: Wallet;
|
12
19
|
client: ThirdwebClient;
|
13
|
-
|
20
|
+
id: WalletSendCallsId;
|
14
21
|
};
|
15
22
|
|
16
23
|
/**
|
@@ -32,20 +39,19 @@ export type GetCallsStatusOptions = {
|
|
32
39
|
*
|
33
40
|
* const client = createThirdwebClient({ clientId: ... });
|
34
41
|
*
|
35
|
-
* const
|
42
|
+
* const result = await sendCalls({ wallet, client, calls });
|
36
43
|
*
|
37
44
|
* let result;
|
38
|
-
* while (result.status !== "
|
39
|
-
* result = await getCallsStatus(
|
45
|
+
* while (result.status !== "success") {
|
46
|
+
* result = await getCallsStatus(result);
|
40
47
|
* }
|
41
48
|
* ```
|
42
49
|
* @extension EIP5792
|
43
|
-
* @extension EIP5792
|
44
50
|
*/
|
45
51
|
export async function getCallsStatus({
|
46
52
|
wallet,
|
47
53
|
client,
|
48
|
-
|
54
|
+
id,
|
49
55
|
}: GetCallsStatusOptions): Promise<GetCallsStatusResponse> {
|
50
56
|
const account = wallet.getAccount();
|
51
57
|
if (!account) {
|
@@ -59,27 +65,65 @@ export async function getCallsStatus({
|
|
59
65
|
const { inAppWalletGetCallsStatus } = await import(
|
60
66
|
"../in-app/core/eip5972/in-app-wallet-calls.js"
|
61
67
|
);
|
62
|
-
return inAppWalletGetCallsStatus({ wallet, client,
|
68
|
+
return inAppWalletGetCallsStatus({ wallet, client, id });
|
69
|
+
}
|
70
|
+
|
71
|
+
if (isWalletConnect(wallet)) {
|
72
|
+
throw new Error("getCallsStatus is not yet supported for Wallet Connect");
|
63
73
|
}
|
64
74
|
|
75
|
+
let provider: Ethereum;
|
65
76
|
if (isCoinbaseSDKWallet(wallet)) {
|
66
|
-
const {
|
77
|
+
const { getCoinbaseWebProvider } = await import(
|
67
78
|
"../coinbase/coinbase-web.js"
|
68
79
|
);
|
69
|
-
|
80
|
+
const config = wallet.getConfig();
|
81
|
+
provider = (await getCoinbaseWebProvider(config)) as Ethereum;
|
82
|
+
} else {
|
83
|
+
provider = getInjectedProvider(wallet.id);
|
70
84
|
}
|
71
85
|
|
72
|
-
if (isWalletConnect(wallet)) {
|
73
|
-
throw new Error("getCallsStatus is not yet supported for Wallet Connect");
|
74
|
-
}
|
75
|
-
|
76
|
-
// Default to injected wallet
|
77
|
-
const provider = getInjectedProvider(wallet.id);
|
78
86
|
try {
|
79
|
-
|
87
|
+
const {
|
88
|
+
atomic = false,
|
89
|
+
chainId,
|
90
|
+
receipts,
|
91
|
+
version = "2.0.0",
|
92
|
+
...response
|
93
|
+
} = (await provider.request({
|
80
94
|
method: "wallet_getCallsStatus",
|
81
|
-
params: [
|
82
|
-
});
|
95
|
+
params: [id],
|
96
|
+
})) as GetCallsStatusRawResponse;
|
97
|
+
const [status, statusCode] = (() => {
|
98
|
+
const statusCode = response.status;
|
99
|
+
if (statusCode >= 100 && statusCode < 200)
|
100
|
+
return ["pending", statusCode] as const;
|
101
|
+
if (statusCode >= 200 && statusCode < 300)
|
102
|
+
return ["success", statusCode] as const;
|
103
|
+
if (statusCode >= 300 && statusCode < 700)
|
104
|
+
return ["failure", statusCode] as const;
|
105
|
+
// @ts-expect-error: for backwards compatibility
|
106
|
+
if (statusCode === "CONFIRMED") return ["success", 200] as const;
|
107
|
+
// @ts-expect-error: for backwards compatibility
|
108
|
+
if (statusCode === "PENDING") return ["pending", 100] as const;
|
109
|
+
return [undefined, statusCode];
|
110
|
+
})();
|
111
|
+
return {
|
112
|
+
...response,
|
113
|
+
atomic,
|
114
|
+
// @ts-expect-error: for backwards compatibility
|
115
|
+
chainId: chainId ? hexToNumber(chainId) : undefined,
|
116
|
+
receipts:
|
117
|
+
receipts?.map((receipt) => ({
|
118
|
+
...receipt,
|
119
|
+
blockNumber: hexToBigInt(receipt.blockNumber),
|
120
|
+
gasUsed: hexToBigInt(receipt.gasUsed),
|
121
|
+
status: receiptStatuses[receipt.status as "0x0" | "0x1"],
|
122
|
+
})) ?? [],
|
123
|
+
statusCode,
|
124
|
+
status,
|
125
|
+
version,
|
126
|
+
};
|
83
127
|
} catch (error) {
|
84
128
|
if (/unsupport|not support/i.test((error as Error).message)) {
|
85
129
|
throw new Error(
|
@@ -89,3 +133,8 @@ export async function getCallsStatus({
|
|
89
133
|
throw error;
|
90
134
|
}
|
91
135
|
}
|
136
|
+
|
137
|
+
const receiptStatuses = {
|
138
|
+
"0x0": "reverted",
|
139
|
+
"0x1": "success",
|
140
|
+
} as const;
|