Skip to content

Commit

Permalink
Join transactions option for the payments request builder (#13)
Browse files Browse the repository at this point in the history
* Added a join transactions option to the payments request builder
  • Loading branch information
jopmiddelkamp committed Mar 27, 2024
1 parent 4be2851 commit 8b21039
Show file tree
Hide file tree
Showing 16 changed files with 538 additions and 341 deletions.
7 changes: 6 additions & 1 deletion stellar-dotnet-sdk-console/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@ public static async Task Main(string[] args)
{
Network.UsePublicNetwork();
using var server = new Server("https://horizon.stellar.org");

var paymentsWithoutTransactions = await server.Payments.Execute().ConfigureAwait(false);
var paymentsWithTransactions = await server.Payments.IncludeTransaction().Execute().ConfigureAwait(false);

// await CreateAccount(server).ConfigureAwait(false);

await CreateAccount(server).ConfigureAwait(false);
Console.ReadLine();
}

private static async Task CreateAccount(Server server)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public async Task TestAccountsWithTrustline()
var req = server.Accounts.WithTrustline(asset);

Assert.AreEqual(
"https://horizon-testnet.stellar.org/accounts?asset=FOO:GAGLYFZJMN5HEULSTH5CIGPOPAVUYPG5YSWIYDJMAPIECYEBPM2TA3QR",
"https://horizon-testnet.stellar.org/accounts?asset=FOO%3aGAGLYFZJMN5HEULSTH5CIGPOPAVUYPG5YSWIYDJMAPIECYEBPM2TA3QR",
req.BuildUri().ToString());
var accounts = await req.Execute();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void TestForCreditAsset()
var server = new Server("https://horizon-testnet.stellar.org");
var uri = server.ClaimableBalances.ForAsset(asset).BuildUri();
Assert.AreEqual(
"https://horizon-testnet.stellar.org/claimable_balances?asset=ABC:GBM2LMVS2EG3GHJ5DKR7CKZ4TP6DQKCHRMDKCZK6WG2NGQVTLF35YE6O",
"https://horizon-testnet.stellar.org/claimable_balances?asset=ABC%3aGBM2LMVS2EG3GHJ5DKR7CKZ4TP6DQKCHRMDKCZK6WG2NGQVTLF35YE6O",
uri.ToString());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public void TestForReserves()
var uri = server.LiquidityPools
.ForReserves("EURT:GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S", "PHP:GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S")
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/liquidity_pools?reserves=EURT:GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S,PHP:GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S", uri.ToString());
Assert.AreEqual("https://horizon-testnet.stellar.org/liquidity_pools?reserves=EURT%3aGAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S%2cPHP%3aGAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S", uri.ToString());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public void TestUriBuilder()

Assert.AreEqual("https://horizon-testnet.stellar.org/paths/strict-receive?" +
"source_account=GARSFJNXJIHO6ULUBK3DBYKVSIZE7SC72S5DYBCHU7DKL22UXKVD7MXP&" +
"source_assets=native,USD:GAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V&" +
"source_assets=native%2cUSD%3aGAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V&" +
"destination_account=GAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V&" +
"destination_asset_type=credit_alphanum4&" +
"destination_asset_code=USD&" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public void TestUriBuilder()
"source_asset_code=USD&" +
"source_asset_issuer=GAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V&" +
"destination_account=GAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V&" +
"destination_assets=native,USD:GAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V",
"destination_assets=native%2cUSD%3aGAEDTJ4PPEFVW5XV2S7LUXBEHNQMX5Q2GM562RJGOQG7GVCE5H3HIB4V",
req.BuildUri().ToString());
}
}
Expand Down
141 changes: 67 additions & 74 deletions stellar-dotnet-sdk-test/requests/PaymentsRequestBuilderTest.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using stellar_dotnet_sdk;
using stellar_dotnet_sdk.requests;
using stellar_dotnet_sdk.responses.operations;
Expand All @@ -7,87 +8,79 @@
using System.IO;
using System.Threading.Tasks;

namespace stellar_dotnet_sdk_test.requests
namespace stellar_dotnet_sdk_test.requests;

[TestClass]
public class PaymentsRequestBuilderTest
{
[TestClass]
public class PaymentsRequestBuilderTest
[TestMethod]
public void TestPayments()
{
[TestMethod]
public void TestPayments()
{
using (var server = new Server("https://horizon-testnet.stellar.org"))
{
var uri = server.Payments
.Limit(200)
.Order(OrderDirection.DESC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/payments?limit=200&order=desc", uri.ToString());
}
}
using var server = new Server("https://horizon-testnet.stellar.org");
var uri = server.Payments
.IncludeTransaction()
.Limit(200)
.Order(OrderDirection.DESC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/payments?join=transactions&limit=200&order=desc", uri.ToString());
}

[TestMethod]
public void TestForAccount()
{
using (var server = new Server("https://horizon-testnet.stellar.org"))
{
var uri = server.Payments
.ForAccount("GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H")
.Limit(200)
.Order(OrderDirection.DESC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/accounts/GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H/payments?limit=200&order=desc", uri.ToString());
}
}
[TestMethod]
public void TestForAccount()
{
using var server = new Server("https://horizon-testnet.stellar.org");
var uri = server.Payments
.ForAccount("GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H")
.IncludeTransaction()
.Limit(200)
.Order(OrderDirection.DESC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/accounts/GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H/payments?join=transactions&limit=200&order=desc", uri.ToString());
}

[TestMethod]
public void TestForLedger()
{
using (var server = new Server("https://horizon-testnet.stellar.org"))
{
var uri = server.Payments
.ForLedger(200000000000L)
.Limit(50)
.Order(OrderDirection.ASC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/ledgers/200000000000/payments?limit=50&order=asc", uri.ToString());
}
}
[TestMethod]
public void TestForLedger()
{
using var server = new Server("https://horizon-testnet.stellar.org");
var uri = server.Payments
.ForLedger(200000000000L)
.IncludeTransaction()
.Limit(50)
.Order(OrderDirection.ASC)
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/ledgers/200000000000/payments?join=transactions&limit=50&order=asc", uri.ToString());
}

[TestMethod]
public void TestForTransaction()
{
using (var server = new Server("https://horizon-testnet.stellar.org"))
{
var uri = server.Payments
.ForTransaction("991534d902063b7715cd74207bef4e7bd7aa2f108f62d3eba837ce6023b2d4f3")
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/transactions/991534d902063b7715cd74207bef4e7bd7aa2f108f62d3eba837ce6023b2d4f3/payments", uri.ToString());
}
}
[TestMethod]
public void TestForTransaction()
{
using var server = new Server("https://horizon-testnet.stellar.org");
var uri = server.Payments
.ForTransaction("991534d902063b7715cd74207bef4e7bd7aa2f108f62d3eba837ce6023b2d4f3")
.BuildUri();
Assert.AreEqual("https://horizon-testnet.stellar.org/transactions/991534d902063b7715cd74207bef4e7bd7aa2f108f62d3eba837ce6023b2d4f3/payments", uri.ToString());
}

[TestMethod]
public async Task TestPaymentsExecute()
{
var jsonResponse = File.ReadAllText(Path.Combine("testdata/operations", "operationPage.json"));
var fakeHttpClient = FakeHttpClient.CreateFakeHttpClient(jsonResponse);
[TestMethod]
public async Task TestPaymentsExecute()
{
var jsonResponse = File.ReadAllText(Path.Combine("testdata/operations", "operationPage.json"));
var fakeHttpClient = FakeHttpClient.CreateFakeHttpClient(jsonResponse);

using (var server = new Server("https://horizon-testnet.stellar.org", fakeHttpClient))
{
var payments = await server.Payments
.ForAccount("GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7")
.Execute();
using var server = new Server("https://horizon-testnet.stellar.org", fakeHttpClient);
var payments = await server.Payments
.ForAccount("GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7")
.Execute();

OperationPageDeserializerTest.AssertTestData(payments);
}
}
OperationPageDeserializerTest.AssertTestData(payments);
}

[TestMethod]
public async Task TestStream()
{
var json = File.ReadAllText(Path.Combine("testdata/operations/payment", "payment.json"));
[TestMethod]
public async Task TestStream()
{
var json = File.ReadAllText(Path.Combine("testdata/operations/payment", "payment.json"));

var streamableTest = new StreamableTest<PaymentOperationResponse>(json, PaymentOperationResponseTest.AssertPaymentOperationTestData);
await streamableTest.Run();
}
var streamableTest = new StreamableTest<PaymentOperationResponse>(json, PaymentOperationResponseTest.AssertPaymentOperationTestData);
await streamableTest.Run();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class PaymentOperationResponseTest
public void TestDeserializePaymentOperation()
{
var json = File.ReadAllText(Path.Combine("testdata/operations/payment", "payment.json"));
var instance = JsonSingleton.GetInstance<OperationResponse>(json);
var instance = JsonSingleton.GetInstance<PaymentOperationResponse>(json);

AssertPaymentOperationTestData(instance);
}
Expand All @@ -27,18 +27,15 @@ public void TestDeserializePaymentOperation()
public void TestSerializeDeserializePaymentOperation()
{
var json = File.ReadAllText(Path.Combine("testdata/operations/payment", "payment.json"));
var instance = JsonSingleton.GetInstance<OperationResponse>(json);
var instance = JsonSingleton.GetInstance<PaymentOperationResponse>(json);
var serialized = JsonConvert.SerializeObject(instance);
var back = JsonConvert.DeserializeObject<OperationResponse>(serialized);
var back = JsonConvert.DeserializeObject<PaymentOperationResponse>(serialized);

AssertPaymentOperationTestData(back);
}

public static void AssertPaymentOperationTestData(OperationResponse instance)
public static void AssertPaymentOperationTestData(PaymentOperationResponse operation)
{
Assert.IsTrue(instance is PaymentOperationResponse);
var operation = (PaymentOperationResponse)instance;

Assert.AreEqual(operation.SourceAccount, "GCKICEQ2SA3KWH3UMQFJE4BFXCBFHW46BCVJBRCLK76ZY5RO6TY5D7Q2");
Assert.IsNull(operation.SourceAccountMuxed);
Assert.IsNull(operation.SourceAccountMuxedID);
Expand All @@ -52,6 +49,45 @@ public static void AssertPaymentOperationTestData(OperationResponse instance)
Assert.AreEqual(operation.Amount, "100.0");
Assert.AreEqual(operation.Asset, new AssetTypeNative());

Assert.AreEqual(operation.TransactionHash, "5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b");

var transaction = operation.Transaction;

Assert.IsNotNull(transaction);
Assert.AreEqual("5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b", transaction.Hash);
Assert.AreEqual(915744L, transaction.Ledger);
// TODO: check why this is failing
// Assert.AreEqual("2015-11-20T17:01:28Z", transaction.CreatedAt);
Assert.AreEqual("3933090531512320", transaction.PagingToken);
Assert.AreEqual("GCUB7JL4APK7LKJ6MZF7Q2JTLHAGNBIUA7XIXD5SQTG52GQ2DAT6XZMK", transaction.SourceAccount);
Assert.AreEqual(2373051035426646L, transaction.SourceAccountSequence);
Assert.AreEqual(1, transaction.OperationCount);
Assert.AreEqual(
"AAAAAKgfpXwD1fWpPmZL+GkzWcBmhRQH7ouPsoTN3RoaGCfrAAAAZAAIbkcAAB9WAAAAAAAAAANRBBZE6D1qyGjISUGLY5Ldvp31PwAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAP1qe44j+i4uIT+arbD4QDQBt8ryEeJd7a0jskQ3nwDeAAAAAAAAAADA7RnarSzCwj3OT+M2btCMFpVBdqxJS+Sr00qBjtFv7gAAAABLCs/QAAAAAAAAAAEaGCfrAAAAQG/56Cj2J8W/KCZr+oC4sWND1CTGWfaccHNtuibQH8kZIb+qBSDY94g7hiaAXrlIeg9b7oz/XuP3x9MWYw2jtwM=",
transaction.EnvelopeXdr);
Assert.AreEqual("AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", transaction.ResultXdr);
Assert.AreEqual(
"AAAAAAAAAAEAAAACAAAAAAAN+SAAAAAAAAAAAMDtGdqtLMLCPc5P4zZu0IwWlUF2rElL5KvTSoGO0W/uAAAAAEsKz9AADfkgAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAN+SAAAAAAAAAAAP1qe44j+i4uIT+arbD4QDQBt8ryEeJd7a0jskQ3nwDeAAHp6WMr55YACD1BAAAAHgAAAAoAAAAAAAAAAAAAAAABAAAAAAAACgAAAAARC07BokpLTOF+/vVKBwiAlop7hHGJTNeGGlY4MoPykwAAAAEAAAAAK+Lzfd3yDD+Ov0GbYu1g7SaIBrKZeBUxoCunkLuI7aoAAAABAAAAAERmsKL73CyLV/HvjyQCERDXXpWE70Xhyb6MR5qPO3yQAAAAAQAAAABSORGwAdyuanN3sNOHqNSpACyYdkUM3L8VafUu69EvEgAAAAEAAAAAeCzqJNkMM/jLvyuMIfyFHljBlLCtDyj17RMycPuNtRMAAAABAAAAAIEi4R7juq15ymL00DNlAddunyFT4FyUD4muC4t3bobdAAAAAQAAAACaNpLL5YMfjOTdXVEqrAh99LM12sN6He6pHgCRAa1f1QAAAAEAAAAAqB+lfAPV9ak+Zkv4aTNZwGaFFAfui4+yhM3dGhoYJ+sAAAABAAAAAMNJrEvdMg6M+M+n4BDIdzsVSj/ZI9SvAp7mOOsvAD/WAAAAAQAAAADbHA6xiKB1+G79mVqpsHMOleOqKa5mxDpP5KEp/Xdz9wAAAAEAAAAAAAAAAA==",
transaction.ResultMetaXdr);

Assert.IsTrue(transaction.Memo is MemoHash);
var memo = (MemoHash)transaction.Memo;
Assert.AreEqual("51041644e83d6ac868c849418b6392ddbe9df53f000000000000000000000000", memo.GetHexValue());

Assert.AreEqual("/accounts/GCUB7JL4APK7LKJ6MZF7Q2JTLHAGNBIUA7XIXD5SQTG52GQ2DAT6XZMK",
transaction.Links.Account.Href);
Assert.AreEqual(
"/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b/effects{?cursor,limit,order}",
transaction.Links.Effects.Href);
Assert.AreEqual("/ledgers/915744", transaction.Links.Ledger.Href);
Assert.AreEqual(
"/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b/operations{?cursor,limit,order}",
transaction.Links.Operations.Href);
Assert.AreEqual("/transactions?cursor=3933090531512320&order=asc", transaction.Links.Precedes.Href);
Assert.AreEqual("/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b",
transaction.Links.Self.Href);
Assert.AreEqual("/transactions?cursor=3933090531512320&order=desc", transaction.Links.Succeeds.Href);

Assert.IsFalse(operation.TransactionSuccessful);
}

Expand Down
50 changes: 49 additions & 1 deletion stellar-dotnet-sdk-test/testdata/operations/payment/payment.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,53 @@
"to": "GDWNY2POLGK65VVKIH5KQSH7VWLKRTQ5M6ADLJAYC2UEHEBEARCZJWWI",
"transaction_successful": false,
"type": "payment",
"type_i": 1
"type_i": 1,
"transaction_hash": "5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b",
"transaction": {
"_links": {
"account": {
"href": "/accounts/GCUB7JL4APK7LKJ6MZF7Q2JTLHAGNBIUA7XIXD5SQTG52GQ2DAT6XZMK"
},
"effects": {
"href": "/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b/effects{?cursor,limit,order}",
"templated": true
},
"ledger": {
"href": "/ledgers/915744"
},
"operations": {
"href": "/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b/operations{?cursor,limit,order}",
"templated": true
},
"precedes": {
"href": "/transactions?cursor=3933090531512320&order=asc"
},
"self": {
"href": "/transactions/5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b"
},
"succeeds": {
"href": "/transactions?cursor=3933090531512320&order=desc"
}
},
"id": "5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b",
"paging_token": "3933090531512320",
"hash": "5c2e4dad596941ef944d72741c8f8f1a4282f8f2f141e81d827f44bf365d626b",
"ledger": 915744,
"created_at": "2015-11-20T17:01:28Z",
"source_account": "GCUB7JL4APK7LKJ6MZF7Q2JTLHAGNBIUA7XIXD5SQTG52GQ2DAT6XZMK",
"source_account_sequence": 2373051035426646,
"fee_paid": 100,
"fee_charged": 100,
"max_fee": 1050,
"operation_count": 1,
"envelope_xdr": "AAAAAKgfpXwD1fWpPmZL+GkzWcBmhRQH7ouPsoTN3RoaGCfrAAAAZAAIbkcAAB9WAAAAAAAAAANRBBZE6D1qyGjISUGLY5Ldvp31PwAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAP1qe44j+i4uIT+arbD4QDQBt8ryEeJd7a0jskQ3nwDeAAAAAAAAAADA7RnarSzCwj3OT+M2btCMFpVBdqxJS+Sr00qBjtFv7gAAAABLCs/QAAAAAAAAAAEaGCfrAAAAQG/56Cj2J8W/KCZr+oC4sWND1CTGWfaccHNtuibQH8kZIb+qBSDY94g7hiaAXrlIeg9b7oz/XuP3x9MWYw2jtwM=",
"result_xdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=",
"result_meta_xdr": "AAAAAAAAAAEAAAACAAAAAAAN+SAAAAAAAAAAAMDtGdqtLMLCPc5P4zZu0IwWlUF2rElL5KvTSoGO0W/uAAAAAEsKz9AADfkgAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAN+SAAAAAAAAAAAP1qe44j+i4uIT+arbD4QDQBt8ryEeJd7a0jskQ3nwDeAAHp6WMr55YACD1BAAAAHgAAAAoAAAAAAAAAAAAAAAABAAAAAAAACgAAAAARC07BokpLTOF+/vVKBwiAlop7hHGJTNeGGlY4MoPykwAAAAEAAAAAK+Lzfd3yDD+Ov0GbYu1g7SaIBrKZeBUxoCunkLuI7aoAAAABAAAAAERmsKL73CyLV/HvjyQCERDXXpWE70Xhyb6MR5qPO3yQAAAAAQAAAABSORGwAdyuanN3sNOHqNSpACyYdkUM3L8VafUu69EvEgAAAAEAAAAAeCzqJNkMM/jLvyuMIfyFHljBlLCtDyj17RMycPuNtRMAAAABAAAAAIEi4R7juq15ymL00DNlAddunyFT4FyUD4muC4t3bobdAAAAAQAAAACaNpLL5YMfjOTdXVEqrAh99LM12sN6He6pHgCRAa1f1QAAAAEAAAAAqB+lfAPV9ak+Zkv4aTNZwGaFFAfui4+yhM3dGhoYJ+sAAAABAAAAAMNJrEvdMg6M+M+n4BDIdzsVSj/ZI9SvAp7mOOsvAD/WAAAAAQAAAADbHA6xiKB1+G79mVqpsHMOleOqKa5mxDpP5KEp/Xdz9wAAAAEAAAAAAAAAAA==",
"memo_type": "hash",
"successful": true,
"memo": "UQQWROg9ashoyElBi2OS3b6d9T8AAAAAAAAAAAAAAAA=",
"signatures": [
"b/noKPYnxb8oJmv6gLixY0PUJMZZ9pxwc226JtAfyRkhv6oFINj3iDuGJoBeuUh6D1vujP9e4/fH0xZjDaO3Aw=="
]
}
}
2 changes: 1 addition & 1 deletion stellar-dotnet-sdk/Server.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public async Task<RootResponse> RootAsync()

public PathStrictReceiveRequestBuilder PathStrictReceive => new PathStrictReceiveRequestBuilder(_serverUri, _httpClient);

public PaymentsRequestBuilder Payments => new PaymentsRequestBuilder(_serverUri, _httpClient);
public IPaymentsRequestInitialBuilder Payments => PaymentsRequestBuilder.Create(_serverUri, _httpClient);

public TransactionsRequestBuilder Transactions => new TransactionsRequestBuilder(_serverUri, _httpClient);

Expand Down
Loading

0 comments on commit 8b21039

Please sign in to comment.