diff --git a/Assets/SequenceSDK/Pay/Tests/Transak/TransakOnRampTests.cs b/Assets/SequenceSDK/Pay/Tests/Transak/TransakOnRampTests.cs index 27bc2872..5b2dc875 100644 --- a/Assets/SequenceSDK/Pay/Tests/Transak/TransakOnRampTests.cs +++ b/Assets/SequenceSDK/Pay/Tests/Transak/TransakOnRampTests.cs @@ -23,10 +23,10 @@ public async Task TestGetSupportedCountries() } [Test] - public void TestGetTransakLink() + public async Task TestGetTransakLink() { TransakOnRamp onRamp = new TransakOnRamp("0xc683a014955b75F5ECF991d4502427c8fa1Aa249"); - string transakOnRampLink = onRamp.GetTransakLink(); + string transakOnRampLink = await onRamp.GetTransakLink(); Assert.IsNotNull(transakOnRampLink); } } diff --git a/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakFiatPay.cs b/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakFiatPay.cs index 6af4aa07..b844379d 100644 --- a/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakFiatPay.cs +++ b/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakFiatPay.cs @@ -32,7 +32,7 @@ public async Task OnRamp() public async Task GetOnRampLink() { - return _onRamp.GetTransakLink(); + return await _onRamp.GetTransakLink(); } public Task GetNftCheckoutLink(CollectibleOrder order, ulong amount, NFTType nftType = NFTType.ERC721, diff --git a/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakOnRamp.cs b/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakOnRamp.cs index f3c2a5a2..9ad02627 100644 --- a/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakOnRamp.cs +++ b/Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakOnRamp.cs @@ -1,17 +1,25 @@ using System; +using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; +using Sequence.Config; using Sequence.Utils; using UnityEngine; using UnityEngine.Networking; +using HttpClient = Sequence.Utils.HttpClient; namespace Sequence.Pay.Transak { public class TransakOnRamp { + private readonly Dictionary _headers = new() + { + { "X-Access-Key", SequenceConfig.GetConfig().BuilderAPIKey } + }; + private Address _walletAddress; public TransakOnRamp(Address walletAddress) @@ -78,16 +86,45 @@ public static async Task GetSupportedCountries() } } - public string GetTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true) + public async Task GetTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true) { AddFundsSettings addFundsSettings = new AddFundsSettings(_walletAddress, fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks); OnOffRampQueryParameters queryParameters = new OnOffRampQueryParameters(_walletAddress, addFundsSettings, disableWalletAddressForm); - return $"https://global.transak.com?{queryParameters.AsQueryParameters()}"; + + return await GetTransakWidgetUrl(queryParameters); } - public void OpenTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true) + public async Task OpenTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true) + { + var url = await GetTransakLink(fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks, + disableWalletAddressForm); + + Application.OpenURL(url); + } + + private async Task GetTransakWidgetUrl(OnOffRampQueryParameters @params) { - Application.OpenURL(GetTransakLink(fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks, disableWalletAddressForm)); + const string path = "rpc/API/TransakGetWidgetURL"; + +#if SEQUENCE_DEV_STACK || SEQUENCE_DEV + const string baseUrl = "https://dev-api.sequence.app"; +#else + const string baseUrl = "https://api.sequence.app"; +#endif + + var args = new Dictionary + { + { "params", @params } + }; + + var client = new HttpClient(baseUrl); + + var response = await client.SendPostRequest< + Dictionary, + Dictionary + >(path, args, _headers); + + return response.TryGetValue("url", out var url) ? url : string.Empty; } } } \ No newline at end of file diff --git a/Packages/Sequence-Unity/package.json b/Packages/Sequence-Unity/package.json index dcc05567..fa3a642a 100644 --- a/Packages/Sequence-Unity/package.json +++ b/Packages/Sequence-Unity/package.json @@ -1,6 +1,6 @@ { "name": "xyz.0xsequence.waas-unity", - "version": "5.0.11", + "version": "5.0.12", "displayName": "Sequence SDK", "description": "A Unity SDK for Sequence APIs", "unity": "2021.3",