From c3200b07de61c78c6bbf95b227b2b52de2ecae1b Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 13 Jan 2021 12:19:36 +1030 Subject: [PATCH] wire: add bolt12_wire.csv For some reason, an old version was checked in. We don't currently use it (since bolt12 support depends on EXPERIMENTAL_FEATURES, which uses bolt12_exp_wire.csv, which is generated and not checked in). Signed-off-by: Rusty Russell --- wire/Makefile | 7 +- wire/bolt12_wire.csv | 207 +++++++++++++++++++++++------------------- wire/common_wiregen.c | 2 +- wire/common_wiregen.h | 2 +- wire/onion_printgen.c | 2 +- wire/onion_printgen.h | 2 +- wire/onion_wiregen.c | 2 +- wire/onion_wiregen.h | 2 +- wire/peer_printgen.c | 2 +- wire/peer_printgen.h | 2 +- wire/peer_wiregen.c | 2 +- wire/peer_wiregen.h | 2 +- 12 files changed, 131 insertions(+), 103 deletions(-) diff --git a/wire/Makefile b/wire/Makefile index cb992a303..9d14c587e 100644 --- a/wire/Makefile +++ b/wire/Makefile @@ -118,8 +118,11 @@ wire/peer_exp_wiregen.c_args := $(wire/peer_wiregen.c_args) wire/onion_exp_wiregen.h_args := $(wire/onion_wiregen.h_args) wire/onion_exp_wiregen.c_args := $(wire/onion_wiregen.c_args) -wire/bolt12_exp_wiregen.c_args := -s --expose-tlv-type=blinded_path --expose-tlv-type=invoice_request -wire/bolt12_exp_wiregen.h_args := --include='bitcoin/short_channel_id.h' --include='bitcoin/signature.h' --include='bitcoin/privkey.h' --include='common/bigsize.h' --include='common/amount.h' --include='common/node_id.h' --include='bitcoin/block.h' --include='wire/onion_wire.h' $(wire/bolt12_exp_wiregen.c_args) +wire/bolt12_wiregen.c_args := -s --expose-tlv-type=blinded_path --expose-tlv-type=invoice_request +wire/bolt12_wiregen.h_args := --include='bitcoin/short_channel_id.h' --include='bitcoin/signature.h' --include='bitcoin/privkey.h' --include='common/bigsize.h' --include='common/amount.h' --include='common/node_id.h' --include='bitcoin/block.h' --include='wire/onion_wire.h' $(wire/bolt12_wiregen.c_args) +# Same for _exp versions +wire/bolt12_exp_wiregen.h_args := $(wire/bolt12_wiregen.h_args) +wire/bolt12_exp_wiregen.c_args := $(wire/bolt12_wiregen.c_args) wire/peer_wiregen.h_args := --include='common/channel_id.h' --include='bitcoin/tx.h' --include='bitcoin/preimage.h' --include='bitcoin/short_channel_id.h' --include='common/node_id.h' --include='common/bigsize.h' --include='bitcoin/block.h' --include='bitcoin/privkey.h' -s --expose-tlv-type=n1 --expose-tlv-type=n2 diff --git a/wire/bolt12_wire.csv b/wire/bolt12_wire.csv index a43366c03..17628e9a9 100644 --- a/wire/bolt12_wire.csv +++ b/wire/bolt12_wire.csv @@ -1,95 +1,114 @@ -tlvtype,offer_tlvs,chains,2 -tlvdata,offer_tlvs,chains,chains,chain_hash,... -tlvtype,offer_tlvs,currency,6 -tlvdata,offer_tlvs,currency,iso4217,byte,... -tlvtype,offer_tlvs,amount,8 -tlvdata,offer_tlvs,amount,amount,tu64, -tlvtype,offer_tlvs,description,10 -tlvdata,offer_tlvs,description,description,byte,... -tlvtype,offer_tlvs,features,12 -tlvdata,offer_tlvs,features,features,byte,... -tlvtype,offer_tlvs,expiry_timestamp,14 -tlvdata,offer_tlvs,expiry_timestamp,expiry_timestamp,tu64, -tlvtype,offer_tlvs,paths,16 -tlvdata,offer_tlvs,paths,paths,blinded_path,... -tlvtype,offer_tlvs,vendor,20 -tlvdata,offer_tlvs,vendor,vendor,byte,... -tlvtype,offer_tlvs,quantity_min,22 -tlvdata,offer_tlvs,quantity_min,min,tu64, -tlvtype,offer_tlvs,quantity_max,24 -tlvdata,offer_tlvs,quantity_max,max,tu64, -tlvtype,offer_tlvs,recurrence,26 -tlvdata,offer_tlvs,recurrence,time_unit,byte, -tlvdata,offer_tlvs,recurrence,period,u32, -tlvdata,offer_tlvs,recurrence,limit,tu32, -tlvtype,offer_tlvs,recurrence_base,28 -tlvdata,offer_tlvs,recurrence_base,basetime,u32, -tlvdata,offer_tlvs,recurrence_base,paywindow,tu32, -tlvtype,offer_tlvs,node_id,30 -tlvdata,offer_tlvs,node_id,node_id,pubkey32, -tlvtype,offer_tlvs,signature,240 -tlvdata,offer_tlvs,signature,sig,signature, +tlvtype,offer,chains,2 +tlvdata,offer,chains,chains,chain_hash,... +tlvtype,offer,currency,6 +tlvdata,offer,currency,iso4217,utf8,... +tlvtype,offer,amount,8 +tlvdata,offer,amount,amount,tu64, +tlvtype,offer,description,10 +tlvdata,offer,description,description,utf8,... +tlvtype,offer,features,12 +tlvdata,offer,features,features,byte,... +tlvtype,offer,absolute_expiry,14 +tlvdata,offer,absolute_expiry,seconds_from_epoch,tu64, +tlvtype,offer,paths,16 +tlvdata,offer,paths,paths,blinded_path,... +tlvtype,offer,vendor,20 +tlvdata,offer,vendor,vendor,utf8,... +tlvtype,offer,quantity_min,22 +tlvdata,offer,quantity_min,min,tu64, +tlvtype,offer,quantity_max,24 +tlvdata,offer,quantity_max,max,tu64, +tlvtype,offer,recurrence,26 +tlvdata,offer,recurrence,time_unit,byte, +tlvdata,offer,recurrence,period,tu32, +tlvtype,offer,recurrence_paywindow,64 +tlvdata,offer,recurrence_paywindow,seconds_before,u32, +tlvdata,offer,recurrence_paywindow,proportional_amount,byte, +tlvdata,offer,recurrence_paywindow,seconds_after,tu32, +tlvtype,offer,recurrence_limit,66 +tlvdata,offer,recurrence_limit,max_period,tu32, +tlvtype,offer,recurrence_base,28 +tlvdata,offer,recurrence_base,start_any_period,byte, +tlvdata,offer,recurrence_base,basetime,tu64, +tlvtype,offer,node_id,30 +tlvdata,offer,node_id,node_id,pubkey32, +tlvtype,offer,send_invoice,54 +tlvtype,offer,refund_for,34 +tlvdata,offer,refund_for,refunded_payment_hash,sha256, +tlvtype,offer,signature,240 +tlvdata,offer,signature,sig,bip340sig, subtype,blinded_path subtypedata,blinded_path,blinding,point, -tlvtype,invoice_request_tlvs,chains,2 -tlvdata,invoice_request_tlvs,chains,chains,chain_hash,... -tlvtype,invoice_request_tlvs,offer_id,4 -tlvdata,invoice_request_tlvs,offer_id,offer_id,sha256, -tlvtype,invoice_request_tlvs,amount,8 -tlvdata,invoice_request_tlvs,amount,amount,tu64, -tlvtype,invoice_request_tlvs,description,10 -tlvdata,invoice_request_tlvs,description,description,byte,... -tlvtype,invoice_request_tlvs,features,12 -tlvdata,invoice_request_tlvs,features,features,byte,... -tlvtype,invoice_request_tlvs,paths,16 -tlvdata,invoice_request_tlvs,paths,paths,blinded_path,... -tlvtype,invoice_request_tlvs,quantity,32 -tlvdata,invoice_request_tlvs,quantity,quantity,tu64, -tlvtype,invoice_request_tlvs,refund_for,34 -tlvdata,invoice_request_tlvs,refund_for,refunded_payment_hash,sha256, -tlvtype,invoice_request_tlvs,invoice_request_recurrence,36 -tlvdata,invoice_request_tlvs,invoice_request_recurrence,counter,tu64, -tlvtype,invoice_request_tlvs,payer_key,38 -tlvdata,invoice_request_tlvs,payer_key,key,pubkey32, -tlvtype,invoice_tlvs,chains,2 -tlvdata,invoice_tlvs,chains,chains,chain_hash,... -tlvtype,invoice_tlvs,offer_id,4 -tlvdata,invoice_tlvs,offer_id,offer_id,sha256, -tlvtype,invoice_tlvs,amount,8 -tlvdata,invoice_tlvs,amount,amount,tu64, -tlvtype,invoice_tlvs,description,10 -tlvdata,invoice_tlvs,description,description,byte,... -tlvtype,invoice_tlvs,features,12 -tlvdata,invoice_tlvs,features,features,byte,... -tlvtype,invoice_tlvs,paths,16 -tlvdata,invoice_tlvs,paths,paths,blinded_path,... -tlvtype,invoice_tlvs,blindedpay,18 -tlvdata,invoice_tlvs,blindedpay,payinfo,blinded_payinfo,... -tlvtype,invoice_tlvs,vendor,20 -tlvdata,invoice_tlvs,vendor,vendor,byte,... -tlvtype,invoice_tlvs,node_id,30 -tlvdata,invoice_tlvs,node_id,node_id,pubkey32, -tlvtype,invoice_tlvs,quantity,32 -tlvdata,invoice_tlvs,quantity,quantity,tu64, -tlvtype,invoice_tlvs,refund_for,34 -tlvdata,invoice_tlvs,refund_for,refunded_payment_hash,sha256, -tlvtype,invoice_tlvs,payer_key,38 -tlvdata,invoice_tlvs,payer_key,key,pubkey32, -tlvtype,invoice_tlvs,timestamp,40 -tlvdata,invoice_tlvs,timestamp,timestamp,tu32, -tlvtype,invoice_tlvs,payment_hash,42 -tlvdata,invoice_tlvs,payment_hash,payment_hash,sha256, -tlvtype,invoice_tlvs,expiry,44 -tlvdata,invoice_tlvs,expiry,expiry_seconds,tu32, -tlvtype,invoice_tlvs,cltv,46 -tlvdata,invoice_tlvs,cltv,min_final_cltv_expiry,tu32, -tlvtype,invoice_tlvs,fallbacks,48 -tlvdata,invoice_tlvs,fallbacks,num,u8, -tlvdata,invoice_tlvs,fallbacks,fallbacks,fallback_address,num -tlvtype,invoice_tlvs,refund_signature,52 -tlvdata,invoice_tlvs,refund_signature,payer_signature,signature, -tlvtype,invoice_tlvs,signature,240 -tlvdata,invoice_tlvs,signature,sig,signature, +subtypedata,blinded_path,num_hops,u16, +subtypedata,blinded_path,path,onionmsg_path,num_hops +tlvtype,invoice_request,chains,2 +tlvdata,invoice_request,chains,chains,chain_hash,... +tlvtype,invoice_request,offer_id,4 +tlvdata,invoice_request,offer_id,offer_id,sha256, +tlvtype,invoice_request,amount,8 +tlvdata,invoice_request,amount,msat,tu64, +tlvtype,invoice_request,features,12 +tlvdata,invoice_request,features,features,byte,... +tlvtype,invoice_request,quantity,32 +tlvdata,invoice_request,quantity,quantity,tu64, +tlvtype,invoice_request,recurrence_counter,36 +tlvdata,invoice_request,recurrence_counter,counter,tu32, +tlvtype,invoice_request,recurrence_start,68 +tlvdata,invoice_request,recurrence_start,period_offset,tu32, +tlvtype,invoice_request,payer_key,38 +tlvdata,invoice_request,payer_key,key,pubkey32, +tlvtype,invoice_request,payer_info,50 +tlvdata,invoice_request,payer_info,blob,byte,... +tlvtype,invoice_request,recurrence_signature,242 +tlvdata,invoice_request,recurrence_signature,sig,bip340sig, +tlvtype,invoice,chains,2 +tlvdata,invoice,chains,chains,chain_hash,... +tlvtype,invoice,offer_id,4 +tlvdata,invoice,offer_id,offer_id,sha256, +tlvtype,invoice,amount,8 +tlvdata,invoice,amount,msat,tu64, +tlvtype,invoice,description,10 +tlvdata,invoice,description,description,utf8,... +tlvtype,invoice,features,12 +tlvdata,invoice,features,features,byte,... +tlvtype,invoice,paths,16 +tlvdata,invoice,paths,paths,blinded_path,... +tlvtype,invoice,blindedpay,18 +tlvdata,invoice,blindedpay,payinfo,blinded_payinfo,... +tlvtype,invoice,vendor,20 +tlvdata,invoice,vendor,vendor,utf8,... +tlvtype,invoice,node_id,30 +tlvdata,invoice,node_id,node_id,pubkey32, +tlvtype,invoice,quantity,32 +tlvdata,invoice,quantity,quantity,tu64, +tlvtype,invoice,refund_for,34 +tlvdata,invoice,refund_for,refunded_payment_hash,sha256, +tlvtype,invoice,recurrence_counter,36 +tlvdata,invoice,recurrence_counter,counter,tu32, +tlvtype,invoice,send_invoice,54 +tlvtype,invoice,recurrence_start,68 +tlvdata,invoice,recurrence_start,period_offset,tu32, +tlvtype,invoice,recurrence_basetime,64 +tlvdata,invoice,recurrence_basetime,basetime,tu64, +tlvtype,invoice,payer_key,38 +tlvdata,invoice,payer_key,key,pubkey32, +tlvtype,invoice,payer_info,50 +tlvdata,invoice,payer_info,blob,byte,... +tlvtype,invoice,timestamp,40 +tlvdata,invoice,timestamp,timestamp,tu64, +tlvtype,invoice,payment_hash,42 +tlvdata,invoice,payment_hash,payment_hash,sha256, +tlvtype,invoice,relative_expiry,44 +tlvdata,invoice,relative_expiry,seconds_from_timestamp,tu32, +tlvtype,invoice,cltv,46 +tlvdata,invoice,cltv,min_final_cltv_expiry,tu32, +tlvtype,invoice,fallbacks,48 +tlvdata,invoice,fallbacks,num,u8, +tlvdata,invoice,fallbacks,fallbacks,fallback_address,num +tlvtype,invoice,refund_signature,52 +tlvdata,invoice,refund_signature,payer_signature,bip340sig, +tlvtype,invoice,signature,240 +tlvdata,invoice,signature,sig,bip340sig, subtype,blinded_payinfo subtypedata,blinded_payinfo,fee_base_msat,u32, subtypedata,blinded_payinfo,fee_proportional_millionths,u32, @@ -97,6 +116,12 @@ subtypedata,blinded_payinfo,cltv_expiry_delta,u16, subtypedata,blinded_payinfo,flen,u16, subtypedata,blinded_payinfo,features,byte,flen subtype,fallback_address -subtypedata,fallback_address,type,byte, +subtypedata,fallback_address,version,byte, subtypedata,fallback_address,len,u16, subtypedata,fallback_address,address,byte,len +tlvtype,invoice_error,erroneous_field,1 +tlvdata,invoice_error,erroneous_field,tlv_fieldnum,tu64, +tlvtype,invoice_error,suggested_value,3 +tlvdata,invoice_error,suggested_value,value,byte,... +tlvtype,invoice_error,error,5 +tlvdata,invoice_error,error,msg,utf8,... diff --git a/wire/common_wiregen.c b/wire/common_wiregen.c index ddf017ed9..20e49af61 100644 --- a/wire/common_wiregen.c +++ b/wire/common_wiregen.c @@ -100,4 +100,4 @@ bool fromwire_custommsg_out(const tal_t *ctx, const void *p, u8 **msg) fromwire_u8_array(&cursor, &plen, *msg, msg_len); return cursor != NULL; } -// SHA256STAMP:9dd0524ec6bd37da39061033975a68f614938210cec718e6ce32cf0d6a1e55b9 +// SHA256STAMP:4158cef8360d59eb4078b0e19c0903c978ca224f59cb036dbc3276260b529fea diff --git a/wire/common_wiregen.h b/wire/common_wiregen.h index 4651526ab..b4a1dc396 100644 --- a/wire/common_wiregen.h +++ b/wire/common_wiregen.h @@ -41,4 +41,4 @@ bool fromwire_custommsg_out(const tal_t *ctx, const void *p, u8 **msg); #endif /* LIGHTNING_WIRE_COMMON_WIREGEN_H */ -// SHA256STAMP:9dd0524ec6bd37da39061033975a68f614938210cec718e6ce32cf0d6a1e55b9 +// SHA256STAMP:4158cef8360d59eb4078b0e19c0903c978ca224f59cb036dbc3276260b529fea diff --git a/wire/onion_printgen.c b/wire/onion_printgen.c index 515fcd255..403de5f1e 100644 --- a/wire/onion_printgen.c +++ b/wire/onion_printgen.c @@ -653,4 +653,4 @@ void printonion_wire_tlv_message(const char *tlv_name, const u8 *msg) { printwire_tlvs(tlv_name, &msg, &plen, print_tlvs_tlv_payload, ARRAY_SIZE(print_tlvs_tlv_payload)); } } -// SHA256STAMP:1af6b26217b4ee1dd0b9001ca463ff07463e89524ab11a9b80f99321c5e8bd0c +// SHA256STAMP:00d8601fa1d48cbbe518bd3ca041bccd1d586c82d65db44fc8530d5ce6fa3705 diff --git a/wire/onion_printgen.h b/wire/onion_printgen.h index 0c1a214ee..09e5e8287 100644 --- a/wire/onion_printgen.h +++ b/wire/onion_printgen.h @@ -57,4 +57,4 @@ void printwire_mpp_timeout(const char *fieldname, const u8 *cursor); #endif /* LIGHTNING_WIRE_ONION_PRINTGEN_H */ -// SHA256STAMP:1af6b26217b4ee1dd0b9001ca463ff07463e89524ab11a9b80f99321c5e8bd0c +// SHA256STAMP:00d8601fa1d48cbbe518bd3ca041bccd1d586c82d65db44fc8530d5ce6fa3705 diff --git a/wire/onion_wiregen.c b/wire/onion_wiregen.c index fe5693c6b..9d0934110 100644 --- a/wire/onion_wiregen.c +++ b/wire/onion_wiregen.c @@ -697,4 +697,4 @@ bool fromwire_mpp_timeout(const void *p) return false; return cursor != NULL; } -// SHA256STAMP:1af6b26217b4ee1dd0b9001ca463ff07463e89524ab11a9b80f99321c5e8bd0c +// SHA256STAMP:00d8601fa1d48cbbe518bd3ca041bccd1d586c82d65db44fc8530d5ce6fa3705 diff --git a/wire/onion_wiregen.h b/wire/onion_wiregen.h index 56a126a5b..9de4e44a8 100644 --- a/wire/onion_wiregen.h +++ b/wire/onion_wiregen.h @@ -207,4 +207,4 @@ bool fromwire_mpp_timeout(const void *p); #endif /* LIGHTNING_WIRE_ONION_WIREGEN_H */ -// SHA256STAMP:1af6b26217b4ee1dd0b9001ca463ff07463e89524ab11a9b80f99321c5e8bd0c +// SHA256STAMP:00d8601fa1d48cbbe518bd3ca041bccd1d586c82d65db44fc8530d5ce6fa3705 diff --git a/wire/peer_printgen.c b/wire/peer_printgen.c index 660a1c6af..5c607aa6c 100644 --- a/wire/peer_printgen.c +++ b/wire/peer_printgen.c @@ -2036,4 +2036,4 @@ void printpeer_wire_tlv_message(const char *tlv_name, const u8 *msg) { printwire_tlvs(tlv_name, &msg, &plen, print_tlvs_reply_channel_range_tlvs, ARRAY_SIZE(print_tlvs_reply_channel_range_tlvs)); } } -// SHA256STAMP:b2c31b272b7ada6d454bb530173e0f68d1f9274a17267f9a3ecb40cbf8ea478e +// SHA256STAMP:efe21d89eef0b58216ab945b85cfbf5fcee08cf783ad4ef4c45501f1a10ac7ef diff --git a/wire/peer_printgen.h b/wire/peer_printgen.h index fc7d88f1c..f040fd196 100644 --- a/wire/peer_printgen.h +++ b/wire/peer_printgen.h @@ -70,4 +70,4 @@ void printwire_gossip_timestamp_filter(const char *fieldname, const u8 *cursor); void printwire_channel_update_checksums(const char *fieldname, const u8 **cursor, size_t *plen); void printwire_channel_update_timestamps(const char *fieldname, const u8 **cursor, size_t *plen); #endif /* LIGHTNING_WIRE_PEER_PRINTGEN_H */ -// SHA256STAMP:b2c31b272b7ada6d454bb530173e0f68d1f9274a17267f9a3ecb40cbf8ea478e +// SHA256STAMP:efe21d89eef0b58216ab945b85cfbf5fcee08cf783ad4ef4c45501f1a10ac7ef diff --git a/wire/peer_wiregen.c b/wire/peer_wiregen.c index a38f05aa6..9ae69aabe 100644 --- a/wire/peer_wiregen.c +++ b/wire/peer_wiregen.c @@ -1630,4 +1630,4 @@ bool fromwire_channel_update_option_channel_htlc_max(const void *p, secp256k1_ec *htlc_maximum_msat = fromwire_amount_msat(&cursor, &plen); return cursor != NULL; } -// SHA256STAMP:b2c31b272b7ada6d454bb530173e0f68d1f9274a17267f9a3ecb40cbf8ea478e +// SHA256STAMP:efe21d89eef0b58216ab945b85cfbf5fcee08cf783ad4ef4c45501f1a10ac7ef diff --git a/wire/peer_wiregen.h b/wire/peer_wiregen.h index f881c9f82..93ddb7e72 100644 --- a/wire/peer_wiregen.h +++ b/wire/peer_wiregen.h @@ -595,4 +595,4 @@ bool fromwire_channel_update_option_channel_htlc_max(const void *p, secp256k1_ec #endif /* LIGHTNING_WIRE_PEER_WIREGEN_H */ -// SHA256STAMP:b2c31b272b7ada6d454bb530173e0f68d1f9274a17267f9a3ecb40cbf8ea478e +// SHA256STAMP:efe21d89eef0b58216ab945b85cfbf5fcee08cf783ad4ef4c45501f1a10ac7ef