Skip to content

Commit 4da5b73

Browse files
authored
added api call to get transak widget url (#350)
1 parent dcb3530 commit 4da5b73

4 files changed

Lines changed: 45 additions & 8 deletions

File tree

Assets/SequenceSDK/Pay/Tests/Transak/TransakOnRampTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ public async Task TestGetSupportedCountries()
2323
}
2424

2525
[Test]
26-
public void TestGetTransakLink()
26+
public async Task TestGetTransakLink()
2727
{
2828
TransakOnRamp onRamp = new TransakOnRamp("0xc683a014955b75F5ECF991d4502427c8fa1Aa249");
29-
string transakOnRampLink = onRamp.GetTransakLink();
29+
string transakOnRampLink = await onRamp.GetTransakLink();
3030
Assert.IsNotNull(transakOnRampLink);
3131
}
3232
}

Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakFiatPay.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public async Task OnRamp()
3232

3333
public async Task<string> GetOnRampLink()
3434
{
35-
return _onRamp.GetTransakLink();
35+
return await _onRamp.GetTransakLink();
3636
}
3737

3838
public Task<string> GetNftCheckoutLink(CollectibleOrder order, ulong amount, NFTType nftType = NFTType.ERC721,

Packages/Sequence-Unity/Sequence/SequenceSDK/Pay/Transak/TransakOnRamp.cs

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.IO;
34
using System.Net.Http;
45
using System.Text;
56
using System.Threading.Tasks;
67
using Newtonsoft.Json;
8+
using Sequence.Config;
79
using Sequence.Utils;
810
using UnityEngine;
911
using UnityEngine.Networking;
12+
using HttpClient = Sequence.Utils.HttpClient;
1013

1114
namespace Sequence.Pay.Transak
1215
{
1316
public class TransakOnRamp
1417
{
18+
private readonly Dictionary<string, string> _headers = new()
19+
{
20+
{ "X-Access-Key", SequenceConfig.GetConfig().BuilderAPIKey }
21+
};
22+
1523
private Address _walletAddress;
1624

1725
public TransakOnRamp(Address walletAddress)
@@ -78,16 +86,45 @@ public static async Task<SupportedCountry[]> GetSupportedCountries()
7886
}
7987
}
8088

81-
public string GetTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true)
89+
public async Task<string> GetTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true)
8290
{
8391
AddFundsSettings addFundsSettings = new AddFundsSettings(_walletAddress, fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks);
8492
OnOffRampQueryParameters queryParameters = new OnOffRampQueryParameters(_walletAddress, addFundsSettings, disableWalletAddressForm);
85-
return $"https://global.transak.com?{queryParameters.AsQueryParameters()}";
93+
94+
return await GetTransakWidgetUrl(queryParameters);
8695
}
8796

88-
public void OpenTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true)
97+
public async Task OpenTransakLink(string fiatCurrency = "USD", string defaultFiatAmount = "50", string defaultCryptoCurrency = AddFundsSettings.DefaultCryptoCurrency, string networks = AddFundsSettings.DefaultNetworks, bool disableWalletAddressForm = true)
98+
{
99+
var url = await GetTransakLink(fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks,
100+
disableWalletAddressForm);
101+
102+
Application.OpenURL(url);
103+
}
104+
105+
private async Task<string> GetTransakWidgetUrl(OnOffRampQueryParameters @params)
89106
{
90-
Application.OpenURL(GetTransakLink(fiatCurrency, defaultFiatAmount, defaultCryptoCurrency, networks, disableWalletAddressForm));
107+
const string path = "rpc/API/TransakGetWidgetURL";
108+
109+
#if SEQUENCE_DEV_STACK || SEQUENCE_DEV
110+
const string baseUrl = "https://dev-api.sequence.app";
111+
#else
112+
const string baseUrl = "https://api.sequence.app";
113+
#endif
114+
115+
var args = new Dictionary<string, object>
116+
{
117+
{ "params", @params }
118+
};
119+
120+
var client = new HttpClient(baseUrl);
121+
122+
var response = await client.SendPostRequest<
123+
Dictionary<string, object>,
124+
Dictionary<string, string>
125+
>(path, args, _headers);
126+
127+
return response.TryGetValue("url", out var url) ? url : string.Empty;
91128
}
92129
}
93130
}

Packages/Sequence-Unity/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "xyz.0xsequence.waas-unity",
3-
"version": "5.0.11",
3+
"version": "5.0.12",
44
"displayName": "Sequence SDK",
55
"description": "A Unity SDK for Sequence APIs",
66
"unity": "2021.3",

0 commit comments

Comments
 (0)