Skip to content

Releases: thirdweb-dev/unity

v5.5.2

10 Oct 22:04
2db98d3
Compare
Choose a tag to compare

What's Changed

  • Removes latest parameter from eth_estimateGas being used in ThirdwebTransaction.EstimateGasLimit on non-zk chains and methods that use it by extension, fixing issues on chains that do not support that parameter such as Binance Testnet.

v5.5.1

10 Oct 11:47
d0d03c4
Compare
Choose a tag to compare

What's Changed

  • When using WalletConnect, attempts to fetch current active chain if applicable by corresponding wallet and avoid the additional requests to ensure correct network upon connection if unnecessary.

v5.5.0

09 Oct 01:02
0d7d412
Compare
Choose a tag to compare

What's Changed

  • Adds MarketplaceV3 extensions.
    • Supports IDirectListings, IEnglishAuctions and IOffers
    • Easier to use than direct ThirdwebContract.Write calls as the extensions are type safe and able to automatically handle approvals and more (opt-in).
    • Full reference here - accessible using contract.Marketplace extensions.
  • New Utilities
    • Adds standalone Utils.FetchGasPrice (legacy tx) and Utils.FetchGasFees (eip-1559) functions to retrieve chain gas info if needed.
    • Adds Utils.HexToBigInt converting hex strings to BigInteger directly.

v5.4.0

03 Oct 01:57
4411061
Compare
Choose a tag to compare

What's Changed

Account Abstraction Improvements

We've sped up SmartWallet transactions and optimized various internal flows, resulting in up to 50% speed increases from transaction creation to estimation to a receipt being returned. This applies for all flows

Furthermore, we've added an internal feature to automatically detect if a chain is built on the zkSync stack and unlock zkSync specific functionality such as zkSync specific transaction input or Native Account Abstraction automatically.

New Features

Added Utils.GetSocialProfiles - fetch ENS, Farcaster and Lens profiles given a wallet address or ENS as well as their metadata and more.

A single line of code to fetch metadata about a wallet address and display it in game as you please!

SocialProfiles socialProfiles = await Utils.GetSocialProfiles(client, addressOrEns: "joenrv.eth");

Example returned object

{
  "EnsProfiles": [
    {
      "name": "joenrv.eth",
      "address": "0x2247d5d238d0f9d37184d8332aE0289d1aD9991b",
      "avatar": "ipfs://bafybeic2wvtpv5hpdyeuy6o77yd5fp2ndfygppd6drdxvtfd2jouijn72m"
    }
  ],
  "FarcasterProfiles": [
    {
      "fid": 2735,
      "bio": "Eng Lead @ thirdweb",
      "pfp": "https://lh3.googleusercontent.com/EUELPFJzdDNcc3qSaEMekh0_W16acnS8MSvWizt-7HPaQhfJsNFC5HA0W4NKcy6CN9zmV7d4Crqg2B8qM9BpiveqVTl2GPBQ16Ax2IQ",
      "username": "joaquim",
      "addresses": [
        "0x2247d5d238d0f9d37184d8332ae0289d1ad9991b",
        "0xf7970369310b541b8a84086c8c1c81d3beb85e0e"
      ]
    }
  ],
  "LensProfiles": [
    {
      "name": "joaquim",
      "bio": "Lead engineer @thirdweb",
      "picture": "https://ik.imagekit.io/lens/media-snapshot/557708cc7581172234133c10d473058ace362c5f547fa86cee5be2abe1478e5b.png"
    }
  ],
  "OtherProfiles": []
}

Unified Identity - Account Linking DX Improvements

  • Exposes Account Linking functionality (LinkAccount & GetLinkedAccounts) at the IThirdwebWallet level.
  • You may now link accounts directly to a SmartWallet signer i.e. personal wallet without needing to fetch the signer with SmartWallet.GetPersonalWallet or deal with casting to the right types.
  • External wallets or external wallets being used as SmartWallet signers do not support this feature.

v5.3.1

02 Oct 01:05
969ff2c
Compare
Choose a tag to compare

What's Changed

  • Adds ZkSync Native Account Abstraction support for Creator Testnet.

v5.3.0

27 Sep 20:44
250c791
Compare
Choose a tag to compare

What's Changed

  • ThirdwebManager inspector is a little more interactive now.
thirdwebmanager-tabs.mp4
  • Improved default redirect page visuals when logging in with OAuth from desktop platforms.

    • Added option to override said html with your own.
  • Option to bypass WalletConnect context checks by @BoysheO in #216

    • You now have the option to bypass WalletConnect Unity default synchronization context check as needed by setting AppContext.SetSwitch("IsSkipWalletConnectSyncCtxCheck", true);
  • ThirdwebClient.Create no longer takes in raw headers, now only takes in general sdk information optionally. This should not affect most users.
    • Improved http client cloning when needed in external modules.
    • Added CrossPlatformUnityHttpClient class which encompasses default .NET and WebGL ones.

New Contributors

v5.2.2

23 Sep 21:08
dcc5c18
Compare
Choose a tag to compare

What's Changed

  • Significantly reduce CPU load when making long running requests.

v5.2.1

21 Sep 01:21
fc656b0
Compare
Choose a tag to compare

What's Changed

  • New AuthProvider: Coinbase for InAppWallet and EcosystemWallet.
  • Fixed issue where EcosystemWallet account linking could fail when linking OAuth.

v5.2.0

20 Sep 19:13
154cb1b
Compare
Choose a tag to compare

What's Changed

  • Ecosystem Wallets implementation in .NET is now compatible with our previous JS implementation of Ecosystem Wallets.
    • If you had created accounts or had a user base from web sharded Ecosystem Wallets, they will automatically be migrated to the new performant enclave system upon first login.
    • No breaking API changes here, this change detects if an authenticated user requires migration and performs it.
  • ERC721 and ERC1155 NFT Contract Extensions such as _GetAll and _GetOwned now have default pagination (100 first token ids).
    • This is to avoid fetching an entire collection at once by mistake.
    • If the contract is ERC721A, tokensOfOwnerIn will be used before falling back to other extensions.
    • If the contract is ERC721Enumerable, tokensOfOwnerByIndex will be used before falling back to single fetching.
    • Improved batching of such calls.
  • Implemented ConcurrentQueue for RPC and improved batching/caching logic
    • If you do end up making large calls, such as fetching an entire collection, it should be handled gracefully
    • Avoid a lot more 429s
  • Speed up Smart Wallet user operations
    • No longer estimates the entire user operation gas and simulates prior to sending it.
    • This does not affect errors being caught.
    • This means if you are estimating gas using ThirdwebTransaction, you will only be returned the internal call gas limit rather than the entire op.
    • Less API calls at runtime, 30% faster execution.
    • If you still want to estimate the actual user operation gas costs, you can use SmartWallet.EstimateUserOperationGas
  • Fixed issue with _MintWithSignature extensions where the expected signature bytes would be passed as hex.
  • Added ToQRTexture helper extension for converting any text to a Texture2D and potentially display it in a UI Image.

v5.1.1

13 Sep 21:50
3540196
Compare
Choose a tag to compare

What's Changed

  • Adds AuthProvider.X as a login option. Linking supported.
// InAppWallet
var iawOptions = new WalletOptions(
    provider: WalletProvider.InAppWallet,
    chainId: 421614,
    inAppWalletOptions: new InAppWalletOptions(authprovider: AuthProvider.X)
);
var iaw = await ThirdwebManager.Instance.ConnectWallet(iawOptions) as InAppWallet;

// EcosystemWallet
var ecoOptions = new WalletOptions(
    provider: WalletProvider.EcosystemWallet,
    chainId: 421614,
    ecosystemWalletOptions: new EcosystemWalletOptions(
        ecosystemId: "ecosystem.the-bonfire",
        authprovider: AuthProvider.X
    )
);
var eco = await ThirdwebManager.Instance.ConnectWallet(ecoOptions) as EcosystemWallet;
  • Fixes edge case when sending two SmartWallet transactions at once from an undeployed account and using EntryPoint 0.7.0 where deployment code would be duplicated causing an error.