Skip to content

Commit 8c09210

Browse files
committed
[C#] Update C# tests to LDK 0.1.0 API
1 parent 99c7689 commit 8c09210

1 file changed

Lines changed: 24 additions & 20 deletions

File tree

c_sharp/test/src/tests.cs

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,11 @@ static Event get_event(ChannelManager manager) {
8282

8383
class TestRouter : RouterInterface, MessageRouterInterface {
8484
DefaultRouter inner;
85+
DefaultMessageRouter inner_msg;
8586
EntropySource entropy;
86-
public TestRouter(DefaultRouter inner, EntropySource entropy) {
87+
public TestRouter(DefaultRouter inner, DefaultMessageRouter inner_msg, EntropySource entropy) {
8788
this.inner = inner;
89+
this.inner_msg = inner_msg;
8890
this.entropy = entropy;
8991
}
9092
public Result_RouteLightningErrorZ find_route(byte[] payer, RouteParameters param, ChannelDetails[] chans, InFlightHtlcs htlcs) {
@@ -102,7 +104,7 @@ public Result_CVec_BlindedPaymentPathZNoneZ create_blinded_payment_paths(byte[]
102104
}
103105

104106
public Result_OnionMessagePathNoneZ find_path(byte[] sender, byte[][] peers, Destination dest) {
105-
return inner.as_MessageRouter().find_path(sender, peers, dest);
107+
return inner_msg.as_MessageRouter().find_path(sender, peers, dest);
106108
}
107109
public Result_CVec_BlindedMessagePathZNoneZ create_blinded_paths(byte[] recipient, MessageContext ctx, byte[][] peers) {
108110
Result_BlindedMessagePathNoneZ path = BlindedMessagePath.one_hop(recipient, ctx, entropy);
@@ -143,15 +145,17 @@ public Node(byte seed) {
143145
scorer = MultiThreadedLockableScore.of(ProbabilisticScorer.of(ProbabilisticScoringDecayParameters.with_default(), graph, logger).as_Score());
144146

145147
DefaultRouter router_impl = DefaultRouter.of(graph, logger, keys.as_EntropySource(), scorer.as_LockableScore(), ProbabilisticScoringFeeParameters.with_default());
146-
TestRouter router_wrapper = new TestRouter(router_impl, keys.as_EntropySource());
147-
router = Router.new_impl(router_wrapper, router_wrapper);
148+
DefaultMessageRouter msg_router_impl = DefaultMessageRouter.of(graph, keys.as_EntropySource());
149+
TestRouter router_wrapper = new TestRouter(router_impl, msg_router_impl, keys.as_EntropySource());
150+
router = Router.new_impl(router_wrapper);
151+
MessageRouter msg_router = MessageRouter.new_impl(router_wrapper);
148152

149153
UserConfig config = UserConfig.with_default();
150154
config.set_manually_accept_inbound_channels(true);
151155

152-
manager = ChannelManager.of(estimator, chain_monitor.as_Watch(), ldk_broadcaster, router, logger, keys.as_EntropySource(), keys.as_NodeSigner(), keys.as_SignerProvider(), config, chain_params, 42);
156+
manager = ChannelManager.of(estimator, chain_monitor.as_Watch(), ldk_broadcaster, router, msg_router, logger, keys.as_EntropySource(), keys.as_NodeSigner(), keys.as_SignerProvider(), config, chain_params, 42);
153157

154-
messenger = OnionMessenger.of(keys.as_EntropySource(), keys.as_NodeSigner(), logger, manager.as_NodeIdLookUp(), MessageRouter.new_impl(router_wrapper), manager.as_OffersMessageHandler(), IgnoringMessageHandler.of().as_AsyncPaymentsMessageHandler(), IgnoringMessageHandler.of().as_CustomOnionMessageHandler());
158+
messenger = OnionMessenger.of(keys.as_EntropySource(), keys.as_NodeSigner(), logger, manager.as_NodeIdLookUp(), MessageRouter.new_impl(router_wrapper), manager.as_OffersMessageHandler(), IgnoringMessageHandler.of().as_AsyncPaymentsMessageHandler(), manager.as_DNSResolverMessageHandler(), IgnoringMessageHandler.of().as_CustomOnionMessageHandler());
155159
}
156160
}
157161

@@ -341,7 +345,7 @@ static void Bolt12ParseTest() {
341345
Result_OfferBolt12ParseErrorZ offer_res = Offer.from_str(offerStr);
342346
Assert(offer_res.is_ok(), 100);
343347
Offer offer = ((Result_OfferBolt12ParseErrorZ.Result_OfferBolt12ParseErrorZ_OK)offer_res).res;
344-
Assert(BitConverter.ToString(offer.signing_pubkey()).Replace("-", "").ToLower() == expectedPubkey, 101);
348+
Assert(BitConverter.ToString(offer.issuer_signing_pubkey()).Replace("-", "").ToLower() == expectedPubkey, 101);
345349
Assert(offer.description().get_a() == expectedDescription, 102);
346350
Assert(offer.issuer() == null, 103);
347351
Assert(!offer.is_expired(), 104);
@@ -355,29 +359,29 @@ static void Bolt12ParseTest() {
355359
static Offer BuildOffer(Nonce nonce, KeysManager keys) {
356360
Result_PublicKeyNoneZ id_res = keys.as_NodeSigner().get_node_id(Recipient.LDKRecipient_Node);
357361
byte[] node_id = ((Result_PublicKeyNoneZ.Result_PublicKeyNoneZ_OK)id_res).res;
358-
ExpandedKey inb_key = ExpandedKey.of(keys.as_NodeSigner().get_inbound_payment_key_material());
362+
ExpandedKey inb_key = keys.as_NodeSigner().get_inbound_payment_key();
359363
OfferWithDerivedMetadataBuilder builder = OfferWithDerivedMetadataBuilder.deriving_signing_pubkey(node_id, inb_key, nonce);
360364
Result_OfferBolt12SemanticErrorZ res = builder.build();
361365
return ((Result_OfferBolt12SemanticErrorZ.Result_OfferBolt12SemanticErrorZ_OK) res).res;
362366
}
363367

364-
static InvoiceRequestWithDerivedPayerIdBuilder InvReqBuilderFromOffer(Offer offer, KeysManager keys) {
365-
ExpandedKey inb_key = ExpandedKey.of(keys.as_NodeSigner().get_inbound_payment_key_material());
368+
static InvoiceRequestWithDerivedPayerSigningPubkeyBuilder InvReqBuilderFromOffer(Offer offer, KeysManager keys) {
369+
ExpandedKey inb_key = keys.as_NodeSigner().get_inbound_payment_key();
366370
Nonce nonce = Nonce.from_entropy_source(keys.as_EntropySource());
367-
Result_InvoiceRequestWithDerivedPayerIdBuilderBolt12SemanticErrorZ builder_res =
368-
offer.request_invoice_deriving_payer_id(inb_key, nonce, new byte[32]);
369-
InvoiceRequestWithDerivedPayerIdBuilder builder =
370-
((Result_InvoiceRequestWithDerivedPayerIdBuilderBolt12SemanticErrorZ.Result_InvoiceRequestWithDerivedPayerIdBuilderBolt12SemanticErrorZ_OK)builder_res).res;
371+
Result_InvoiceRequestWithDerivedPayerSigningPubkeyBuilderBolt12SemanticErrorZ builder_res =
372+
offer.request_invoice(inb_key, nonce, new byte[32]);
373+
InvoiceRequestWithDerivedPayerSigningPubkeyBuilder builder =
374+
((Result_InvoiceRequestWithDerivedPayerSigningPubkeyBuilderBolt12SemanticErrorZ.Result_InvoiceRequestWithDerivedPayerSigningPubkeyBuilderBolt12SemanticErrorZ_OK)builder_res).res;
371375
return builder;
372376
}
373377

374-
static InvoiceRequest BuildInvReq(InvoiceRequestWithDerivedPayerIdBuilder builder) {
378+
static InvoiceRequest BuildInvReq(InvoiceRequestWithDerivedPayerSigningPubkeyBuilder builder) {
375379
Result_InvoiceRequestBolt12SemanticErrorZ res = builder.build_and_sign();
376380
return ((Result_InvoiceRequestBolt12SemanticErrorZ.Result_InvoiceRequestBolt12SemanticErrorZ_OK)res).res;
377381
}
378382

379383
static InvoiceWithDerivedSigningPubkeyBuilder InvBuilderFromInvReq(Nonce receiver_nonce, InvoiceRequest invreq, KeysManager keys) {
380-
ExpandedKey inb_key = ExpandedKey.of(keys.as_NodeSigner().get_inbound_payment_key_material());
384+
ExpandedKey inb_key = keys.as_NodeSigner().get_inbound_payment_key();
381385
Result_VerifiedInvoiceRequestNoneZ verified_res = invreq.verify_using_recipient_data(receiver_nonce, inb_key);
382386
VerifiedInvoiceRequest verified_invreq =
383387
((Result_VerifiedInvoiceRequestNoneZ.Result_VerifiedInvoiceRequestNoneZ_OK)verified_res).res;
@@ -388,15 +392,15 @@ static InvoiceWithDerivedSigningPubkeyBuilder InvBuilderFromInvReq(Nonce receive
388392
return builder;
389393
}
390394

391-
static InvoiceRequestWithDerivedPayerIdBuilder InvReqBuilder(Nonce receiver_nonce, KeysManager payer, KeysManager recipient) {
392-
// Under the hood, InvoiceRequestWithDerivedPayerIdBuilder holds a reference to some
395+
static InvoiceRequestWithDerivedPayerSigningPubkeyBuilder InvReqBuilder(Nonce receiver_nonce, KeysManager payer, KeysManager recipient) {
396+
// Under the hood, InvoiceRequestWithDerivedPayerSigningPubkeyBuilder holds a reference to some
393397
// fields in the Offer. Thus, we build an Offer here, then return only the builder,
394398
// hoping the GC will cause us to free the Offer and use-after-free.
395399
Offer offer = BuildOffer(receiver_nonce, payer);
396400
return InvReqBuilderFromOffer(offer, recipient);
397401
}
398402

399-
static InvoiceWithDerivedSigningPubkeyBuilder InvBuilderFromInvReqBuilder(Nonce receiver_nonce, InvoiceRequestWithDerivedPayerIdBuilder builder, KeysManager payer, KeysManager recipient) {
403+
static InvoiceWithDerivedSigningPubkeyBuilder InvBuilderFromInvReqBuilder(Nonce receiver_nonce, InvoiceRequestWithDerivedPayerSigningPubkeyBuilder builder, KeysManager payer, KeysManager recipient) {
400404
// Same as above, but for the Invoice itself
401405
InvoiceRequest invreq = BuildInvReq(builder);
402406
return InvBuilderFromInvReq(receiver_nonce, invreq, recipient);
@@ -413,7 +417,7 @@ static void Bolt12RespondTest() {
413417
// Run the GC between each step to see if the reference the builders hold to the
414418
// original Offer/InvoiceRequest is freed out from under us before building.
415419
Nonce receiver_nonce = Nonce.from_entropy_source(receiver.as_EntropySource());
416-
InvoiceRequestWithDerivedPayerIdBuilder invreq_builder = InvReqBuilder(receiver_nonce, sender, receiver);
420+
InvoiceRequestWithDerivedPayerSigningPubkeyBuilder invreq_builder = InvReqBuilder(receiver_nonce, sender, receiver);
417421
System.GC.Collect();
418422
GC.WaitForPendingFinalizers();
419423
InvoiceWithDerivedSigningPubkeyBuilder inv_builder = InvBuilderFromInvReqBuilder(receiver_nonce, invreq_builder, sender, receiver);

0 commit comments

Comments
 (0)