Releases: thirdweb-dev/js
[email protected]
Minor Changes
-
#5354
a1fc436
Thanks @joaquim-verges! - Adds EIP1193 adapters that allow conversion between Thirdweb wallets and EIP-1193 providers:EIP1193.fromProvider()
: Creates a Thirdweb wallet from any EIP-1193 compatible provider (like MetaMask, WalletConnect)EIP1193.toProvider()
: Converts a Thirdweb wallet into an EIP-1193 provider that can be used with any web3 library
Key features:
- Full EIP-1193 compliance for seamless integration
- Handles account management (connect, disconnect, chain switching)
- Supports all standard Ethereum JSON-RPC methods
- Comprehensive event system for state changes
- Type-safe interfaces with full TypeScript support
Examples:
// Convert MetaMask's provider to a Thirdweb wallet const wallet = EIP1193.fromProvider({ provider: window.ethereum, walletId: "io.metamask", }); // Use like any other Thirdweb wallet const account = await wallet.connect({ client: createThirdwebClient({ clientId: "..." }), }); // Convert a Thirdweb wallet to an EIP-1193 provider const provider = EIP1193.toProvider({ wallet, chain: ethereum, client: createThirdwebClient({ clientId: "..." }), }); // Use with any EIP-1193 compatible library const accounts = await provider.request({ method: "eth_requestAccounts", }); // Listen for events provider.on("accountsChanged", (accounts) => { console.log("Active accounts:", accounts); });
Patch Changes
-
#5335
1e7e32f
Thanks @joaquim-verges! - Added global transaction decorator, better eip712 transaction support -
#5349
46d0b4b
Thanks @joaquim-verges! - Use maxFeePerGas for Pay gas cost estimations in transaction flow -
#5366
ef56304
Thanks @gregfromstl! - Adds ox for internal utilities -
#5390
6771cfe
Thanks @ElasticBottle! - fix enclave transaction signing for transactions with 0 maxPriorityFeePerGas -
#5343
5de5418
Thanks @gregfromstl! - Adds chain ID to tracked analytics
@thirdweb-dev/[email protected]
[email protected]
Minor Changes
-
#5326
f5f5ae6
Thanks @gregfromstl! - Add SiteLink component for creating wallet-aware links between thirdweb-enabled sites. This component automatically adds wallet connection parameters to the target URL when a wallet is connected, enabling seamless wallet state sharing between sites.Example:
import { SiteLink } from "thirdweb/react"; function App() { return ( <SiteLink href="https://thirdweb.com" client={thirdwebClient} ecosystem={{ id: "ecosystem.thirdweb" }} > Visit thirdweb.com with connected wallet </SiteLink> ); }
Patch Changes
- #5341
1db950e
Thanks @joaquim-verges! - Make encryption key optional for in-app and ecosystem wallets custom auth
[email protected]
Minor Changes
-
#5298
5cc5c93
Thanks @gregfromstl! - Added newSiteEmbed
React component for embedding thirdweb-supported sites with seamless wallet connection support.The component allows you to embed other thirdweb-enabled sites while maintaining wallet connection state, supporting both in-app and ecosystem wallets.
Example usage:
import { SiteEmbed } from "thirdweb/react"; <SiteEmbed src="https://thirdweb.com" client={client} ecosystem={ecosystem} />;
Note: Embedded sites must include
<AutoConnect />
and support frame-ancestors in their Content Security Policy.
Patch Changes
-
#5217
b633293
Thanks @joaquim-verges! - Automatically migrate in-app wallets to the new enclave system -
#5315
87e736d
Thanks @ElasticBottle! - fix ecosystem signing with data error
[email protected]
[email protected]
Patch Changes
- #5277
58fb28d
Thanks @joaquim-verges! - Respect bundlerUrl in waitForUserReceipt
[email protected]
Minor Changes
-
#5126
c621c13
Thanks @kien-ngo! - Allow to customize the display order of Asset tabsWhen you click on "View Assets", by default the "Tokens" tab is shown first.
If you want to show the "NFTs" tab first, change the order of the asset tabs to: ["nft", "token"]
Note: If an empty array is passed, the [View Funds] button will be hidden
<ConnectButton client={client} detailsModal={{ assetTabs: ["nft", "token"], }} />
Patch Changes
-
#5253
baf2198
Thanks @joaquim-verges! - Use stringify instead of JSON.stringify in most places to handle bigint serialization -
#5272
e3c0af2
Thanks @gregfromstl! - Tracks transaction chain IDs -
#5250
f40d247
Thanks @joaquim-verges! - Allow smart accounts to switch chains between zk and non zk chains -
#5270
0660416
Thanks @gregfromstl! - Enable configuring the analytics endpoint
[email protected]
Patch Changes
- #5246
82c8726
Thanks @joaquim-verges! - Fix custom paymaster callback not being respected
[email protected]
Patch Changes
-
#5237
802d3bf
Thanks @joaquim-verges! - Sanitize block explorer URLs -
#5231
686d0c3
Thanks @joaquim-verges! - Respect custom bundler URL for getting gas fees + better DX forpredictSmartAccountAddress()
-
#5187
68ce724
Thanks @ElasticBottle! - expose WalletUser type for in app / ecosystem wallets -
#5214
ad4af68
Thanks @joaquim-verges! - Reduce async calls before requesting webauthn credentials for ios 15 -
#5229
9425e9e
Thanks @ElasticBottle! - Consolidate custom jwt and custom auth endpoint through common endpoint -
#5244
178d407
Thanks @joaquim-verges! - Add support for custom singlePhase dropsIf you are using a custom drop contract, you can now set claim conditions and claim by passing the
singlePhaseDrop
option to thesetClaimConditions
andclaimTo
functions.setClaimConditions({ contract, phases: [ { startTime: new Date(0), maxClaimableSupply: 10n, }, ], tokenId: 0n, singlePhaseDrop: true, // <--- for custom drop contracts });
[email protected]
Patch Changes
-
#5207
adeda1e
Thanks @joaquim-verges! - Handle unsupported Pay chains properly for sending paid transactions -
#5176
84571ef
Thanks @joaquim-verges! - Redesigned Pay payment selection flow -
#5212
07ea65b
Thanks @joaquim-verges! - Better handling of ecosystem smart accounts