Skip to content

Releases: thirdweb-dev/unity

v5.11.1

27 Nov 00:58
7b7d3dd
Compare
Choose a tag to compare

What's Changed

  • Additions from Thirdweb's .NET SDK Release 2.10.1
  • Fixes occasional WalletConnect modal was closed. exception when network state does not update fast enough.

v5.11.0

22 Nov 17:12
c16fc9a
Compare
Choose a tag to compare

What's Changed

  • Added AuthProvider.Steam as a login option for In-App or Ecosystem Wallets.
// Using .NET SDK

var steamWallet = await InAppWallet.Create(client: client, authProvider: AuthProvider.Steam);
if (!await steamWallet.IsConnected())
{
    _ = await steamWallet.LoginWithOauth(...);
}
var steamWalletAddy = await steamWallet.GetAddress();

// Using Unity SDK

var steamWalletOptions = new WalletOptions(
    provider: WalletProvider.InAppWallet, 
    chainId: 1, 
    inAppWalletOptions: new InAppWalletOptions(authprovider: AuthProvider.Steam);
);
var steamWallet = await ThirdwebManager.Instance.ConnectWallet(options);
var steamWalletAddy = await steamWallet.GetAddress();
  • Added the ability to pay for gas with ERC20 tokens when using Smart Wallet.
    • Currently supports Base USDC, Celo CUSD, and Lisk LSK tokens.
    • Simply select a TokenPaymaster when creating a SmartWallet and all transactions will be paid for with the corresponding ERC20 from the user's Smart Wallet.
    • Useful on L2s where the native token is ETH and you want to enshrine another coin or onramp your users directly to that coin.
    • These TokenPaymasters entirely operate onchain, leveraging popular DEXes and decentralized price feeds from Uniswap & Chainlink.
    • This product is in beta, and only compatible with EntryPoint v0.7.0, which we auto select for you if not overriden when configurin your wallet.
// Example of paying for a transaction ERC20 stablecoins instead of native ETH

// Using .NET SDK (Lisk LSK)

var chainId = 1135; // lisk

var erc20SmartWallet = await SmartWallet.Create(
  personalWallet: privateKeyWallet, 
  chainId: chainId, 
  tokenPaymaster: TokenPaymaster.LISK_LSK
);

// Using Unity SDK (Base USDC)

var chainId = 8453; // base

var erc20SmartWallet = await ConnectWallet(
    new WalletOptions(
        WalletProvider.InAppWallet,
        chainId,
        inAppWalletOptions: new InAppWalletOptions(authprovider: AuthProvider.Steam),
        smartWalletOptions: new SmartWalletOptions(sponsorGas: true, tokenPaymaster: TokenPaymaster.BASE_USDC)
    )
);

// Then just trigger any transaction!

var erc20SmartWalletAddress = await erc20SmartWallet.GetAddress();
Debug.Log($"ERC20 Smart Wallet address: {erc20SmartWalletAddress}");

var receipt = await erc20SmartWallet.Transfer(chainId: chainId, toAddress: erc20SmartWalletAddress, weiAmount: 0);
Debug.Log($"Receipt: {JsonConvert.SerializeObject(receipt, Formatting.Indented)}");

v5.10.0

15 Nov 21:15
378b75d
Compare
Choose a tag to compare

What's Changed

  • Fixed an issue with typed data signing using In-App/Ecosystem Wallets when one of the fields was larger than Uint32.
  • Improved NFT Metadata Population & Added Filters
    • The ERC1155_GetOwnedNFTs extension now returns the QuantityOwned metadata field correctly for each NFT.
    • The ERC721_GetNFT and ERC721_GetAllNFTs extensions can now take in a new fillOwner parameter that defaults to true and decides whether to make additional requests to populate the Owner field of the metadata, otherwise defaulting to Constants.ADDRESS_ZERO.
    • The ERC1155_GetNFT and ERC1155_GetAllNFTs extensions can now take in a new fillSupply parameter that defaults to true and decides whether to make additional requests to populate the Supply field of the metadata, otherwise defaulting to BigInteger.MinusOne.

v5.9.2

12 Nov 13:05
60141b9
Compare
Choose a tag to compare

What's Changed

  • Fixed edge case where migrating a sharded wallet to enclave would throw Invalid enclave wallet details being migrated.

v5.9.1

08 Nov 19:47
1a16722
Compare
Choose a tag to compare

What's Changed

  • Adds GenerateExternalLoginLink method to forward the logged-in session of In-App or Ecosystem Wallets from .NET to React apps built using thirdweb.
    • Configure your React website to use thirdweb Connect, open the link generated by this method and your users will be autoconnected.
    • If using Ecosystem Wallets, make sure to create the ecosystem wallet with the same ecosystem id and partner id (if any) and include it as one of your wallets in, for example, your ConnectButton's wallets prop.
    • Make sure you're using the same api key on both ends.

v5.9.0

07 Nov 17:02
d22c068
Compare
Choose a tag to compare

What's Changed

  • Having an incorrect or slightly off system time would produce errors when logging in with In-App Wallets in some cases, we have added a fallback in this scenario that will work around this issue.
  • IThirdwebWallet.Transfer now has an optional tokenAddress override to transfer ERC20 tokens using said function; this is an alternative to ThirdwebContract.ERC20_Transfer.
  • ERC1155 transfer-related functions' data bytes parameter has now been made optional.
  • The inability to fetch NFTMetadata when calling an NFT-related method no longer throws, and instead returns NFTMetadata with a description containing the error message.
  • Enables custom implementation for OTP Verification Modal by @Vingator in #218
    • Introduces abstract OTP verification modal so you can customize it more easily.
    • Shared by In-App and Ecosystem Wallets.

New Contributors

v5.8.0

06 Nov 01:21
cea1b5e
Compare
Choose a tag to compare

What's Changed

  • In-App Wallets now use the same infrastructure as Ecosystem Wallets.
    • Up to 90% performance increase, specially on lower end devices or web platforms.
    • Much less cryptography done client side, using secure enclaves over shamir's secret sharing.
    • If you were using In-App Wallets previously, they will be automatically migrated to the new infrastructure upon first login.
      • If you were using custom auth with In-App Wallets before this release, you may pass your legacy encryption key during the creation of your wallet - it will be used to migrate your wallets to the new infrastructure upon first login.
      • Encryption keys are no longer required for In-App Wallets when logging in with JWT (OIDC Compatible Custom Auth) or AuthEndpoint (Generic Custom Auth).
  • Added GetUserDetails method to In-App/Ecosystem Wallets that returns more information about your logged in user.
    • GetEmail and GetPhoneNumber have been deprecated in favor of GetUserDetails
  • Added GetEcosystemDetails method to return general information about your Ecosystem Wallet, can be used for dynamic branding, etc.
  • Fixes TokenERC721_MintTo functions failing with invalid signature; the token id parameter has also been removed.

v5.7.0

28 Oct 17:55
0790569
Compare
Choose a tag to compare

What's Changed

  • Upgraded base project/examples to Unity 6 and Playground from In-App to Ecosystem Wallet.
    • Much faster on platforms like WebGL and lower end devices.
    • Ecosystem Wallets are shareable with third parties.
  • Added a link.xml to cover Thirdweb's .NET Core assemblies. Minimal stripping is no longer a hard requirement unless using WalletConnect as one of your wallet provider options.
  • Updated base project Android settings to target Min API 34 to match latest store policies.
  • Upgraded EDM4U (External Dependency Manager) - contains various improvements.

v5.6.1

24 Oct 19:20
2dc45d7
Compare
Choose a tag to compare

What's Changed

  • Added support for passing generic List or Array types to ThirdwebContract.Read and deserializing tuples into them.
    • Supports List of objects return type.
    • Supports object[] return type.
    • Supports Lists and Arrays of primitive types (if your function returns a tuple of multiple values of the same type such as uints).
    • Supports complex structs (indexed and non indexed MySolTuple is serialized then deserialized into your passed type).
    • Supports complex struct arrays (indexed and non indexed MySolTupleArray is serialized as a dictionary then deserialized into your type).

v5.6.0

24 Oct 11:20
79e23b7
Compare
Choose a tag to compare

What's Changed

  • Added AuthProvider.Twitch as a new auth provider option for logging in with In-App or Ecosystem Wallets.
  • Upgrading an EcosystemWallet to a SmartWallet without passing optional parameters will now attempt to use defaults from your dashboard Account Abstraction settings if any.
    • Create a SmartWallet with an EcosystemWallet as a signer and no additional conflicting overrides to make use of this feature.
    • Explicitly passed SDK overrides will always take priority over dashboard options.
    • If dashboard options are unavailable/unset, we revert to previous default values for gas sponsorship and account factories.

02d6d8e631ec48f44a87c32c983f03c3