Releases: thirdweb-dev/js
thirdweb@5.55.0
Minor Changes
-
#4571
5058fdb
Thanks @gregfromstl! - Adds X authentication -
#4565
c0778cb
Thanks @gregfromstl! - Adds parseAvatarRecord and parseNftUri utilitiesimport { parseAvatarRecord } from "thirdweb/extensions/ens"; import { parseNftUri } from "thirdweb/extensions/common"; const avatarUrl = await parseAvatarRecord({ client, uri: "...", }); const nftUri = await parseNftUri({ client, uri: "...", });
Patch Changes
-
#4582
5d3b395
Thanks @gregfromstl! - Adds the ability to hide certain wallets in the wallet switcher<ConnectButton client={client} detailsModal={{ // We hide the in-app wallet so they can't switch to it hiddenWallets: ["inApp"], }} accountAbstraction={{ chain: baseSepolia, sponsorGas: true, }} />
-
#4546
3901805
Thanks @edwardysun! - Add preferredProvider to buyWithFiat
thirdweb@5.54.0
Minor Changes
-
#4527
b76a82c
Thanks @joaquim-verges! - Update React Native dependencies and add support for React Native 0.75 -
#4499
fe1ff63
Thanks @joaquim-verges! - Breaking Change indeployPublishedContract
Contract constructor/ initializer params are now passed as a single object instead of an array. The object should have the same shape as the params defined in the contract's ABI.
Example of old way (using
constructorParams
orinitializeParams
):const address = await deployPublishedContract({ account, chain, client, contractId: "Airdrop", contractParams: [TEST_ACCOUNT_A.address, ""], });
New way (using
contractParams
):const address = await deployPublishedContract({ account, chain, client, contractId: "Airdrop", contractParams: { defaultAdmin: TEST_ACCOUNT_A.address, contractURI: "", }, });
-
#4528
c96e2d9
Thanks @joaquim-verges! - Handle salt parameter for deterministic deploys of published contractsYou can now pass a salt parameter to the
deployPublishedContract
function to deploy a contract deterministically.const address = await deployPublishedContract({ client, chain, account, contractId: "Airdrop", contractParams: { defaultAdmin: "0x...", contractURI: "ipfs://...", }, salt: "test", // <--- deterministic deploy });
This also works for unpublished contracts, via the
deployContract
function.const address = await deployContract({ client, chain, account, bytecode: "0x...", abi: contractAbi, constructorParams: { param1: "value1", param2: 123, }, salt: "test", // <--- deterministic deploy });
-
#4541
0596fa2
Thanks @gregfromstl! - Adds getUsers function to query users on the serverimport { getUser } from "thirdweb/wallets"; const user = await getUser({ client, walletAddress: "0x123...", });
Patch Changes
-
#4503
8636c28
Thanks @jnsdls! - fix erc721 delayed reveal detection -
#4544
40f01e5
Thanks @joaquim-verges! - Allow smart wallet transactions to be sent in parallel -
#4543
b4e1491
Thanks @gregfromstl! - Display social profiles for linked accounts -
#4507
6353cb7
Thanks @joaquim-verges! - Fix erc721 delayed reveal simulation error
@thirdweb-dev/react-native-adapter@1.4.0
Minor Changes
- #4527
b76a82c
Thanks @joaquim-verges! - Update React Native dependencies and add support for React Native 0.75
thirdweb@5.53.0
Minor Changes
-
#4094
f1d087e
Thanks @joaquim-verges! - Support for Coinbase Smart Wallet in React NativeYou can now use the Coinbase Smart Wallet in your React Native apps.
const wallet = createWallet("com.coinbase.wallet", { appMetadata: { name: "My app name", }, mobileConfig: { callbackURL: "https://example.com", }, walletConfig: { options: "smartWalletOnly", }, }); await wallet.connect({ client, });
-
#4454
c546b65
Thanks @joaquim-verges! - ExposecreateAndSignUserOp
utility function
Patch Changes
-
#4466
763e439
Thanks @joaquim-verges! - Export thirdweb/social functions and types -
#4477
42feff3
Thanks @kumaryash90! - More storage slots for proxy resolution -
#4462
f3a6179
Thanks @joaquim-verges! - Fix common icons theme in React Native -
#4473
baf1a21
Thanks @gregfromstl! - Updated SocialProfiles type to be SocialProfile[] -
#4478
80e0bfe
Thanks @gregfromstl! - Fix ERC20 balance read when showing pay modal
@thirdweb-dev/react-native-adapter@1.3.0
Minor Changes
-
#4094
f1d087e
Thanks @joaquim-verges! - Support for Coinbase Smart Wallet in React NativeYou can now use the Coinbase Smart Wallet in your React Native apps.
const wallet = createWallet("com.coinbase.wallet", { appMetadata: { name: "My app name", }, mobileConfig: { callbackURL: "https://example.com", }, walletConfig: { options: "smartWalletOnly", }, }); await wallet.connect({ client, });
thirdweb@5.52.0
Minor Changes
-
#4349
a2d2291
Thanks @gregfromstl! - Adds social profile retrieval for Farcaster, Lens, and ENS.import { getSocialProfiles } from "thirdweb/social"; const profiles = await getSocialProfiles({ address: "0x...", client, });
[ { "type": "ens", "name": "joenrv.eth", "avatar": "ipfs://bafybeic2wvtpv5hpdyeuy6o77yd5fp2ndfygppd6drdxvtfd2jouijn72m", "metadata": { "name": "joenrv.eth" } }, { "type": "farcaster", "name": "joaquim", "bio": "Eng Lead @ thirdweb", "avatar": "https://lh3.googleusercontent.com/EUELPFJzdDNcc3qSaEMekh0_W16acnS8MSvWizt-7HPaQhfJsNFC5HA0W4NKcy6CN9zmV7d4Crqg2B8qM9BpiveqVTl2GPBQ16Ax2IQ", "metadata": { "fid": 2735, "bio": "Eng Lead @ thirdweb", "pfp": "https://lh3.googleusercontent.com/EUELPFJzdDNcc3qSaEMekh0_W16acnS8MSvWizt-7HPaQhfJsNFC5HA0W4NKcy6CN9zmV7d4Crqg2B8qM9BpiveqVTl2GPBQ16Ax2IQ", "username": "joaquim", "addresses": [ "0x2247d5d238d0f9d37184d8332ae0289d1ad9991b", "0xf7970369310b541b8a84086c8c1c81d3beb85e0e" ] } }, { "type": "lens", "name": "joaquim", "bio": "Lead engineer @thirdweb", "avatar": "https://ik.imagekit.io/lens/media-snapshot/557708cc7581172234133c10d473058ace362c5f547fa86cee5be2abe1478e5b.png", "metadata": { "name": "joaquim", "bio": "Lead engineer @thirdweb", "picture": "https://ik.imagekit.io/lens/media-snapshot/557708cc7581172234133c10d473058ace362c5f547fa86cee5be2abe1478e5b.png" } } ]
import { useSocialProfiles } from "thirdweb/react"; const { data: profiles } = useSocialProfiles({ client, address: "0x...", });
-
#3413
87d6b6a
Thanks @joaquim-verges! - Support for modular contractsDeploy and Interact with modular contracts programmatically
Deploy a modular contract
import { ClaimableERC721, BatchMetadataERC721, deployModularContract, } from "thirdweb/modules"; const deployed = deployModularContract({ client, chain, account, core: "ERC721", params: { name: "My Modular NFT Contract", }, modules: [ ClaimableERC721.module({ primarySaleRecipient: ..., }), BatchMetadataERC721.module(), ], });
Interact with a modular contract
import { ClaimableERC721 } from "thirdweb/modules"; const contract = getContract({ client, chain, address, }); const transaction = ClaimableERC721.mint({ contract, to: account.address, quantity: 1, }); await sendTransaction({ transaction, account, });
Patch Changes
-
#4444
9cefe5f
Thanks @edwardysun! - Add buyWithCrypto testMode in useSendTransaction -
#4447
f0d0f37
Thanks @jnsdls! - fix baseURI extraction logic -
#4435
e7bf498
Thanks @edwardysun! - Add testMode to buyWithCrypto pay options -
#4345
fa6809d
Thanks @kien-ngo! - Add ERC1155 getOwnedTokenIds + more tests -
#4450
775ab6d
Thanks @MananTank! - Add options for hiding buttons on details modal on useWalletDetailsModal -
#4443
498d543
Thanks @MananTank! - Fix getFunctionId -
#4446
f39e1ba
Thanks @gregfromstl! - Improve React Query caching performance
thirdweb@5.51.0
Minor Changes
-
#4392
c5b9d1c
Thanks @jnsdls! - [Extensions] Erc20 Drop ClaimCondition enhancements -
#4391
f9c351c
Thanks @jnsdls! - [Extensions] Erc721 Drop ClaimCondition enhancements -
54f0294
Thanks @jnsdls! - [Extensions] Erc1155 Drop ClaimCondition enhancements
Patch Changes
-
#4393
f383fc7
Thanks @kumaryash90! - resolve implementation for matic proxy implementation slot -
a098224
Thanks @jnsdls! - remove unusable singlephase claim condition extension
thirdweb@5.50.1
Patch Changes
-
#4388
82a30af
Thanks @edwardysun! - Update setting default source chain and token -
#4375
edb95d0
Thanks @jnsdls! - [Extensions] expose permission detection logic -
#4390
d74e61b
Thanks @MananTank! - Fix Swap Fees layout in fees drawer in pay UI -
#4319
73e5dc7
Thanks @joaquim-verges! - Fix direct payments to the same wallet -
#4382
9e8d3e6
Thanks @MananTank! - Add props for hiding "Send", "Receive" and "Send" buttons in Connect Details Modal UI forConnectButton
component. By default, all buttons are visible in the modal.<ConnectButton detailsModal={{ hideSendFunds: false, hideReceiveFunds: true, hideBuyFunds: false, }} />
-
#4363
066aede
Thanks @kien-ngo! - Allow to specify "from" and "to" props for the ClaimButton
thirdweb@5.50.0
Minor Changes
- #4334
6432e8d
Thanks @gregfromstl! - Adds L2 ENS name resolution
Patch Changes
-
#4270
5475551
Thanks @gregfromstl! - Allow accepting a string for signature mint UIDs -
#4336
8b137f0
Thanks @gregfromstl! - Hide in-app wallet connection in Pay Embed -
#4344
915e7fb
Thanks @kien-ngo! - Fix merkletree proof for Drop contracts -
#4343
a2f2c7e
Thanks @joaquim-verges! - Better error message when smart wallet connection fails due to rpc error -
#4327
bdb814d
Thanks @kien-ngo! - Fix nft approval for CreateDirectListingButton
thirdweb@5.49.0
Minor Changes
-
#4179
42d5c65
Thanks @kien-ngo! - Add NFT prebuilt componentsimport { getContract } from "thirdweb"; import { NFT } from "thirdweb/react"; const contract = getContract({ address: "0x...", chain: ethereum, client: yourThirdwebClient, }); <NFT contract={contract} tokenId={0n}> <Suspense fallback={"Loading media..."}> <NFT.Media /> </Suspense> </NFT>;
Patch Changes
-
#4316
a65bb88
Thanks @gregfromstl! - Include from address in in-app wallet transactions -
#4322
3e425ec
Thanks @gregfromstl! - Fix accessibility warnings -
#4317
1e70bbf
Thanks @gregfromstl! - Automatic retries for React Native in-app wallet logins -
#4306
9d6eb27
Thanks @gregfromstl! - Fix programmatic deployments with smart accounts -
#4328
c97b1a5
Thanks @edwardysun! - Update default source chain selection in PayEmbed