11using System ;
2+ using System . Collections . Generic ;
23using System . IO ;
34using System . Net . Http ;
45using System . Text ;
56using System . Threading . Tasks ;
67using Newtonsoft . Json ;
8+ using Sequence . Config ;
79using Sequence . Utils ;
810using UnityEngine ;
911using UnityEngine . Networking ;
12+ using HttpClient = Sequence . Utils . HttpClient ;
1013
1114namespace 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}
0 commit comments