Add codecov.yml allowing coverage to drop slightly before "failing"
[rust-lightning] / lightning-c-bindings / demo.cpp
index 37bb8d3188d53cbc22dfb323dd2e12567fb2fa2c..230d0c0c92f762ad7a30a840108f72ab052461b3 100644 (file)
@@ -292,6 +292,8 @@ int main() {
        memset(&null_pk, 0, sizeof(null_pk));
 
        LDKThirtyTwoBytes random_bytes;
+       LDKThirtyTwoBytes chain_tip;
+       memset(&chain_tip, 0, sizeof(chain_tip)); // channel_open_header's prev_blockhash is all-0s
 
        LDKNetwork network = LDKNetwork_Testnet;
 
@@ -348,11 +350,11 @@ int main() {
                // Instantiate classes for node 1:
                uint8_t node_seed[32];
                memset(&node_seed, 0, 32);
-               LDK::KeysManager keys1 = KeysManager_new(&node_seed, network, 0, 0);
+               LDK::KeysManager keys1 = KeysManager_new(&node_seed, 0, 0);
                LDK::KeysInterface keys_source1 = KeysManager_as_KeysInterface(&keys1);
                node_secret1 = keys_source1->get_node_secret(keys_source1->this_arg);
 
-               LDK::ChannelManager cm1 = ChannelManager_new(network, fee_est, mon1, broadcast, logger1, KeysManager_as_KeysInterface(&keys1), UserConfig_default(), 0);
+               LDK::ChannelManager cm1 = ChannelManager_new(fee_est, mon1, broadcast, logger1, KeysManager_as_KeysInterface(&keys1), UserConfig_default(), ChainParameters_new(network, chain_tip, 0));
 
                LDK::CVec_ChannelDetailsZ channels = ChannelManager_list_channels(&cm1);
                assert(channels->datalen == 0);
@@ -363,14 +365,14 @@ int main() {
                LDK::PeerManager net1 = PeerManager_new(std::move(msg_handler1), node_secret1, &random_bytes.data, logger1);
 
                // Demo getting a channel key and check that its returning real pubkeys:
-               LDK::ChannelKeys chan_keys1 = keys_source1->get_channel_keys(keys_source1->this_arg, false, 42);
-               chan_keys1->set_pubkeys(&chan_keys1); // Make sure pubkeys is defined
-               LDKPublicKey payment_point = ChannelPublicKeys_get_payment_point(&chan_keys1->pubkeys);
+               LDK::Sign chan_signer1 = keys_source1->get_channel_signer(keys_source1->this_arg, false, 42);
+               chan_signer1->set_pubkeys(&chan_signer1); // Make sure pubkeys is defined
+               LDKPublicKey payment_point = ChannelPublicKeys_get_payment_point(&chan_signer1->pubkeys);
                assert(memcmp(&payment_point, &null_pk, sizeof(null_pk)));
 
                // Instantiate classes for node 2:
                memset(&node_seed, 1, 32);
-               LDK::KeysManager keys2 = KeysManager_new(&node_seed, network, 0, 0);
+               LDK::KeysManager keys2 = KeysManager_new(&node_seed, 0, 0);
                LDK::KeysInterface keys_source2 = KeysManager_as_KeysInterface(&keys2);
                node_secret2 = keys_source2->get_node_secret(keys_source2->this_arg);
 
@@ -379,14 +381,15 @@ int main() {
                LDK::UserConfig config2 = UserConfig_default();
                UserConfig_set_own_channel_config(&config2, std::move(handshake_config2));
 
-               LDK::ChannelManager cm2 = ChannelManager_new(network, fee_est, mon2, broadcast, logger2, KeysManager_as_KeysInterface(&keys2), std::move(config2), 0);
+               LDK::ChannelManager cm2 = ChannelManager_new(fee_est, mon2, broadcast, logger2, KeysManager_as_KeysInterface(&keys2), std::move(config2), ChainParameters_new(network, chain_tip, 0));
 
                LDK::CVec_ChannelDetailsZ channels2 = ChannelManager_list_channels(&cm2);
                assert(channels2->datalen == 0);
 
                LDK::RoutingMessageHandler net_msgs2 = NetGraphMsgHandler_as_RoutingMessageHandler(&net_graph2);
-               LDK::ChannelAnnouncement chan_ann = ChannelAnnouncement_read(LDKu8slice { .data = valid_node_announcement, .datalen = sizeof(valid_node_announcement) });
-               LDK::CResult_boolLightningErrorZ ann_res = net_msgs2->handle_channel_announcement(net_msgs2->this_arg, &chan_ann);
+               LDK::CResult_ChannelAnnouncementDecodeErrorZ chan_ann = ChannelAnnouncement_read(LDKu8slice { .data = valid_node_announcement, .datalen = sizeof(valid_node_announcement) });
+               assert(chan_ann->result_ok);
+               LDK::CResult_boolLightningErrorZ ann_res = net_msgs2->handle_channel_announcement(net_msgs2->this_arg, chan_ann->contents.result);
                assert(ann_res->result_ok);
 
                LDK::MessageHandler msg_handler2 = MessageHandler_new(ChannelManager_as_ChannelMessageHandler(&cm2), std::move(net_msgs2));
@@ -566,7 +569,7 @@ int main() {
        mons_list1->data[0].is_owned = false; // XXX: God this sucks
        uint8_t node_seed[32];
        memset(&node_seed, 0, 32);
-       LDK::KeysManager keys1 = KeysManager_new(&node_seed, network, 1, 0);
+       LDK::KeysManager keys1 = KeysManager_new(&node_seed, 1, 0);
        LDK::KeysInterface keys_source1 = KeysManager_as_KeysInterface(&keys1);
 
        LDK::ChannelManagerReadArgs cm1_args = ChannelManagerReadArgs_new(KeysManager_as_KeysInterface(&keys1), fee_est, mon1, broadcast, logger1, UserConfig_default(), std::move(mons_list1));
@@ -580,7 +583,7 @@ int main() {
        mons_list2->data[0] = *& std::get<1>(mons2.mons[0]); // Note that we need a reference, thus need a raw clone here, which *& does.
        mons_list2->data[0].is_owned = false; // XXX: God this sucks
        memset(&node_seed, 1, 32);
-       LDK::KeysManager keys2 = KeysManager_new(&node_seed, network, 1, 0);
+       LDK::KeysManager keys2 = KeysManager_new(&node_seed, 1, 0);
 
        LDK::ChannelManagerReadArgs cm2_args = ChannelManagerReadArgs_new(KeysManager_as_KeysInterface(&keys2), fee_est, mon2, broadcast, logger2, UserConfig_default(), std::move(mons_list2));
        LDK::CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ cm2_read =
@@ -633,5 +636,5 @@ int main() {
        memset(&sk, 42, 32);
        LDKThirtyTwoBytes kdiv_params;
        memset(&kdiv_params, 43, 32);
-       LDK::InMemoryChannelKeys keys = InMemoryChannelKeys_new(sk, sk, sk, sk, sk, random_bytes, 42, kdiv_params);
+       LDK::InMemorySigner signer = InMemorySigner_new(sk, sk, sk, sk, sk, random_bytes, 42, kdiv_params);
 }