@@ -132,8 +132,34 @@ void marshal_pubkey(struct pubkey const *pp, PubKey *o_pp)
132132 o_pp->set_data (pp->pubkey .data , sizeof (pp->pubkey .data ));
133133}
134134
135- void marshal_single_input_tx (struct bitcoin_tx const *tx, Transaction *o_tp)
135+ void marshal_single_input_tx (struct bitcoin_tx const *tx,
136+ u8 const *output_witscript,
137+ struct witscript const **output_witscripts,
138+ Transaction *o_tp)
136139{
140+ if (output_witscript) {
141+ /* Called with a single witscript. */
142+ assert (tx->wtx ->num_outputs == 1 );
143+ o_tp->add_output_witscripts ((const char *) output_witscript,
144+ tal_count (output_witscript));
145+ } else if (output_witscripts) {
146+ /* Called with an array of witscripts. */
147+ size_t nwitscripts = tal_count (output_witscripts);
148+ assert (nwitscripts == tx->wtx ->num_outputs );
149+ for (size_t ii = 0 ; ii < tx->wtx ->num_outputs ; ii++)
150+ if (output_witscripts[ii])
151+ o_tp->add_output_witscripts (
152+ (const char *)
153+ output_witscripts[ii]->ptr ,
154+ tal_count (output_witscripts[ii]->ptr ));
155+ else
156+ o_tp->add_output_witscripts (" " );
157+ } else {
158+ /* Called with no witscrtipts. */
159+ for (size_t ii = 0 ; ii < tx->wtx ->num_outputs ; ii++)
160+ o_tp->add_output_witscripts (" " );
161+ }
162+
137163 o_tp->set_raw_tx_bytes (serialized_tx (tx, true ));
138164
139165 assert (tx->wtx ->num_inputs == 1 );
@@ -492,17 +518,10 @@ proxy_stat proxy_handle_sign_remote_commitment_tx(
492518 marshal_pubkey (remote_per_commit,
493519 req.mutable_remote_per_commit_point ());
494520 req.set_option_static_remotekey (option_static_remotekey);
495- for (size_t ii = 0 ; ii < tal_count (output_witscripts); ii++)
496- if (output_witscripts[ii])
497- req.add_output_witscripts (
498- (const char *) output_witscripts[ii]->ptr ,
499- tal_count (output_witscripts[ii]->ptr ));
500- else
501- req.add_output_witscripts (" " );
502- marshal_single_input_tx (tx, req.mutable_tx ());
521+ marshal_single_input_tx (tx, NULL , output_witscripts, req.mutable_tx ());
503522
504523 ClientContext context;
505- SignRemoteCommitmentTxReply rsp;
524+ SignatureReply rsp;
506525 Status status = stub->SignRemoteCommitmentTx (&context, req, &rsp);
507526 if (status.ok ()) {
508527 unmarshal_bitcoin_signature (rsp.signature (), o_sig);
@@ -593,7 +612,7 @@ proxy_stat proxy_handle_sign_invoice(
593612 req.set_human_readable_part ((const char *)hrpu8, tal_count (hrpu8));
594613
595614 ClientContext context;
596- SignInvoiceReply rsp;
615+ RecoverableNodeSignatureReply rsp;
597616 Status status = stub->SignInvoice (&context, req, &rsp);
598617 if (status.ok ()) {
599618 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -635,7 +654,7 @@ proxy_stat proxy_handle_sign_message(
635654 req.set_message (msg, tal_count (msg));
636655
637656 ClientContext context;
638- SignMessageReply rsp;
657+ RecoverableNodeSignatureReply rsp;
639658 Status status = stub->SignMessage (&context, req, &rsp);
640659 if (status.ok ()) {
641660 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -682,7 +701,7 @@ proxy_stat proxy_handle_channel_update_sig(
682701 req.set_channel_update (channel_update + offset, annsz - offset);
683702
684703 ClientContext context;
685- SignChannelUpdateReply rsp;
704+ NodeSignatureReply rsp;
686705 Status status = stub->SignChannelUpdate (&context, req, &rsp);
687706 if (status.ok ()) {
688707 unmarshal_ecdsa_signature (rsp.signature (), o_sig);
@@ -801,10 +820,10 @@ proxy_stat proxy_handle_sign_mutual_close_tx(
801820 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
802821 marshal_pubkey (remote_funding_pubkey,
803822 req.mutable_remote_funding_pubkey ());
804- marshal_single_input_tx (tx, req.mutable_tx ());
823+ marshal_single_input_tx (tx, NULL , NULL , req.mutable_tx ());
805824
806825 ClientContext context;
807- SignMutualCloseTxReply rsp;
826+ SignatureReply rsp;
808827 Status status = stub->SignMutualCloseTx (&context, req, &rsp);
809828 if (status.ok ()) {
810829 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -855,10 +874,10 @@ proxy_stat proxy_handle_sign_commitment_tx(
855874 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
856875 marshal_pubkey (remote_funding_pubkey,
857876 req.mutable_remote_funding_pubkey ());
858- marshal_single_input_tx (tx, req.mutable_tx ());
877+ marshal_single_input_tx (tx, NULL , NULL , req.mutable_tx ());
859878
860879 ClientContext context;
861- SignCommitmentTxReply rsp;
880+ SignatureReply rsp;
862881 Status status = stub->SignCommitmentTx (&context, req, &rsp);
863882 if (status.ok ()) {
864883 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -963,11 +982,10 @@ proxy_stat proxy_handle_sign_local_htlc_tx(
963982 marshal_node_id (&self_id, req.mutable_node_id ());
964983 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
965984 req.set_n (commit_num);
966- req.set_witscript (wscript, tal_count (wscript));
967- marshal_single_input_tx (tx, req.mutable_tx ());
985+ marshal_single_input_tx (tx, wscript, NULL , req.mutable_tx ());
968986
969987 ClientContext context;
970- SignLocalHTLCTxReply rsp;
988+ SignatureReply rsp;
971989 Status status = stub->SignLocalHTLCTx (&context, req, &rsp);
972990 if (status.ok ()) {
973991#if 1
@@ -1019,11 +1037,10 @@ proxy_stat proxy_handle_sign_remote_htlc_tx(
10191037 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
10201038 marshal_pubkey (remote_per_commit_point,
10211039 req.mutable_remote_per_commit_point ());
1022- req.set_witscript (wscript, tal_count (wscript));
1023- marshal_single_input_tx (tx, req.mutable_tx ());
1040+ marshal_single_input_tx (tx, wscript, NULL , req.mutable_tx ());
10241041
10251042 ClientContext context;
1026- SignRemoteHTLCTxReply rsp;
1043+ SignatureReply rsp;
10271044 Status status = stub->SignRemoteHTLCTx (&context, req, &rsp);
10281045 if (status.ok ()) {
10291046 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -1075,11 +1092,10 @@ proxy_stat proxy_handle_sign_delayed_payment_to_us(
10751092 marshal_node_id (&self_id, req.mutable_node_id ());
10761093 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
10771094 req.set_n (commit_num);
1078- req.set_witscript (wscript, tal_count (wscript));
1079- marshal_single_input_tx (tx, req.mutable_tx ());
1095+ marshal_single_input_tx (tx, wscript, NULL , req.mutable_tx ());
10801096
10811097 ClientContext context;
1082- SignDelayedPaymentToUsReply rsp;
1098+ SignatureReply rsp;
10831099 Status status = stub->SignDelayedPaymentToUs (&context, req, &rsp);
10841100 if (status.ok ()) {
10851101 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -1129,11 +1145,10 @@ proxy_stat proxy_handle_sign_remote_htlc_to_us(
11291145 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
11301146 marshal_pubkey (remote_per_commit_point,
11311147 req.mutable_remote_per_commit_point ());
1132- req.set_witscript (wscript, tal_count (wscript));
1133- marshal_single_input_tx (tx, req.mutable_tx ());
1148+ marshal_single_input_tx (tx, wscript, NULL , req.mutable_tx ());
11341149
11351150 ClientContext context;
1136- SignRemoteHTLCToUsReply rsp;
1151+ SignatureReply rsp;
11371152 Status status = stub->SignRemoteHTLCToUs (&context, req, &rsp);
11381153 if (status.ok ()) {
11391154 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -1186,11 +1201,10 @@ proxy_stat proxy_handle_sign_penalty_to_us(
11861201 marshal_node_id (&self_id, req.mutable_node_id ());
11871202 marshal_channel_nonce (peer_id, dbid, req.mutable_channel_nonce ());
11881203 marshal_secret (revocation_secret, req.mutable_revocation_secret ());
1189- req.set_witscript (wscript, tal_count (wscript));
1190- marshal_single_input_tx (tx, req.mutable_tx ());
1204+ marshal_single_input_tx (tx, wscript, NULL , req.mutable_tx ());
11911205
11921206 ClientContext context;
1193- SignPenaltyToUsReply rsp;
1207+ SignatureReply rsp;
11941208 Status status = stub->SignPenaltyToUs (&context, req, &rsp);
11951209 if (status.ok ()) {
11961210 // FIXME - UNCOMMENT WHEN SERVER IMPLEMENTS:
@@ -1282,7 +1296,7 @@ proxy_stat proxy_handle_sign_node_announcement(
12821296 req.set_node_announcement (node_announcement + offset, annsz - offset);
12831297
12841298 ClientContext context;
1285- SignNodeAnnouncementReply rsp;
1299+ NodeSignatureReply rsp;
12861300 Status status = stub->SignNodeAnnouncement (&context, req, &rsp);
12871301 if (status.ok ()) {
12881302 unmarshal_ecdsa_signature (rsp.signature (), o_sig);
0 commit comments