Skip to content

Commit

Permalink
msggen: Add meta file to keep the field numbers stable
Browse files Browse the repository at this point in the history
We are inferring the field numbers on the fly, which isn't really
compatible with the way GRPC field numbers work, i.e., they must be
stable while the IDL file evolves. So far when a field was added in
the middle of a struct or removed all subsequent fields would get
renumbered, essentially breaking any client that was using the old
scheme.

We now add a meta file `.msggen.json` that keeps track of the numbers
assigned so far, so they can be reused, and new ones can be generated
not to conflict with existing ones. This file is intentionally kept
generic, so other generators can add more information that has to be
managed across runs.

Changelog-None
  • Loading branch information
cdecker authored and rustyrussell committed Mar 16, 2022
1 parent e99b115 commit 487b5e6
Show file tree
Hide file tree
Showing 6 changed files with 415 additions and 88 deletions.
234 changes: 234 additions & 0 deletions .msggen.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
{
"grpc-enum-map": {
"CloseType": {
"mutual": 0,
"unilateral": 1,
"unopened": 2
},
"GetinfoAddressType": {
"dns": 0,
"ipv4": 1,
"ipv6": 2,
"torv2": 3,
"torv3": 4,
"websocket": 5
},
"GetinfoBindingType": {
"ipv4": 1,
"ipv6": 2,
"local socket": 0,
"torv2": 3,
"torv3": 4
},
"ListfundsOutputsStatus": {
"confirmed": 1,
"spent": 2,
"unconfirmed": 0
},
"ListpeersPeersChannelsHtlcsDirection": {
"in": 0,
"out": 1
},
"ListpeersPeersChannelsHtlcsState": {
"RCVD_ADD_ACK_COMMIT": 3,
"RCVD_ADD_REVOCATION": 2,
"RCVD_REMOVE_ACK_REVOCATION": 9,
"RCVD_REMOVE_COMMIT": 6,
"RCVD_REMOVE_HTLC": 5,
"SENT_ADD_ACK_REVOCATION": 4,
"SENT_ADD_COMMIT": 1,
"SENT_ADD_HTLC": 0,
"SENT_REMOVE_ACK_COMMIT": 8,
"SENT_REMOVE_REVOCATION": 7
},
"ListpeersPeersChannelsState": {
"AWAITING_UNILATERAL": 6,
"CHANNELD_AWAITING_LOCKIN": 1,
"CHANNELD_NORMAL": 2,
"CHANNELD_SHUTTING_DOWN": 3,
"CLOSINGD_COMPLETE": 5,
"CLOSINGD_SIGEXCHANGE": 4,
"DUALOPEND_AWAITING_LOCKIN": 10,
"DUALOPEND_OPEN_INIT": 9,
"FUNDING_SPEND_SEEN": 7,
"ONCHAIN": 8,
"OPENINGD": 0
},
"ListpeersPeersLogType": {
"BROKEN": 1,
"DEBUG": 4,
"INFO": 3,
"IO_IN": 5,
"IO_OUT": 6,
"SKIPPED": 0,
"UNUSUAL": 2
}
},
"grpc-field-map": {
"AddGossip.message": 1,
"AutoCleanInvoice.cycle_seconds": 2,
"AutoCleanInvoice.enabled": 3,
"AutoCleanInvoice.expired_by": 1,
"CheckMessage.message": 1,
"CheckMessage.pubkey": 3,
"CheckMessage.verified": 4,
"CheckMessage.zbase": 2,
"Close.destination": 3,
"Close.fee_negotiation_step": 4,
"Close.force_lease_closed": 6,
"Close.id": 1,
"Close.tx": 8,
"Close.txid": 9,
"Close.type": 7,
"Close.unilateraltimeout": 2,
"Close.wrong_funding": 5,
"Getinfo.address[]": 14,
"Getinfo.address[].address": 3,
"Getinfo.address[].port": 2,
"Getinfo.address[].type": 1,
"Getinfo.alias": 2,
"Getinfo.binding[]": 15,
"Getinfo.binding[].address": 2,
"Getinfo.binding[].port": 3,
"Getinfo.binding[].socket": 4,
"Getinfo.binding[].type": 1,
"Getinfo.blockheight": 11,
"Getinfo.color": 3,
"Getinfo.fees_collected_msat": 13,
"Getinfo.id": 1,
"Getinfo.lightning-dir": 9,
"Getinfo.network": 12,
"Getinfo.num_active_channels": 6,
"Getinfo.num_inactive_channels": 7,
"Getinfo.num_peers": 4,
"Getinfo.num_pending_channels": 5,
"Getinfo.our_features": 10,
"Getinfo.our_features.channel": 3,
"Getinfo.our_features.init": 1,
"Getinfo.our_features.invoice": 4,
"Getinfo.our_features.node": 2,
"Getinfo.version": 8,
"Getinfo.warning_bitcoind_sync": 16,
"Getinfo.warning_lightningd_sync": 17,
"ListChannels.channels[]": 4,
"ListChannels.channels[].active": 8,
"ListChannels.channels[].amount_msat": 5,
"ListChannels.channels[].base_fee_millisatoshi": 10,
"ListChannels.channels[].channel_flags": 7,
"ListChannels.channels[].delay": 12,
"ListChannels.channels[].destination": 2,
"ListChannels.channels[].features": 15,
"ListChannels.channels[].fee_per_millionth": 11,
"ListChannels.channels[].htlc_maximum_msat": 14,
"ListChannels.channels[].htlc_minimum_msat": 13,
"ListChannels.channels[].last_update": 9,
"ListChannels.channels[].message_flags": 6,
"ListChannels.channels[].public": 4,
"ListChannels.channels[].short_channel_id": 3,
"ListChannels.channels[].source": 1,
"ListChannels.destination": 3,
"ListChannels.short_channel_id": 1,
"ListChannels.source": 2,
"ListFunds.channels[]": 3,
"ListFunds.channels[].amount_msat": 3,
"ListFunds.channels[].connected": 6,
"ListFunds.channels[].funding_output": 5,
"ListFunds.channels[].funding_txid": 4,
"ListFunds.channels[].our_amount_msat": 2,
"ListFunds.channels[].peer_id": 1,
"ListFunds.channels[].short_channel_id": 8,
"ListFunds.channels[].state": 7,
"ListFunds.outputs[]": 2,
"ListFunds.outputs[].address": 5,
"ListFunds.outputs[].amount_msat": 3,
"ListFunds.outputs[].blockheight": 8,
"ListFunds.outputs[].output": 2,
"ListFunds.outputs[].redeemscript": 6,
"ListFunds.outputs[].scriptpubkey": 4,
"ListFunds.outputs[].status": 7,
"ListFunds.outputs[].txid": 1,
"ListFunds.spent": 1,
"ListPeers.id": 1,
"ListPeers.level": 2,
"ListPeers.peers[]": 3,
"ListPeers.peers[].channels[]": 4,
"ListPeers.peers[].channels[].channel_id": 6,
"ListPeers.peers[].channels[].close_to": 14,
"ListPeers.peers[].channels[].close_to_addr": 47,
"ListPeers.peers[].channels[].closer": 17,
"ListPeers.peers[].channels[].dust_limit_msat": 26,
"ListPeers.peers[].channels[].features[]": 18,
"ListPeers.peers[].channels[].fee_base_msat": 24,
"ListPeers.peers[].channels[].fee_proportional_millionths": 25,
"ListPeers.peers[].channels[].feerate": 3,
"ListPeers.peers[].channels[].feerate.perkb": 2,
"ListPeers.peers[].channels[].feerate.perkw": 1,
"ListPeers.peers[].channels[].funding": 19,
"ListPeers.peers[].channels[].funding.local_msat": 1,
"ListPeers.peers[].channels[].funding.pushed_msat": 3,
"ListPeers.peers[].channels[].funding.remote_msat": 2,
"ListPeers.peers[].channels[].funding_outnum": 8,
"ListPeers.peers[].channels[].funding_txid": 7,
"ListPeers.peers[].channels[].htlcs[]": 46,
"ListPeers.peers[].channels[].htlcs[].amount_msat": 3,
"ListPeers.peers[].channels[].htlcs[].direction": 1,
"ListPeers.peers[].channels[].htlcs[].expiry": 4,
"ListPeers.peers[].channels[].htlcs[].id": 2,
"ListPeers.peers[].channels[].htlcs[].local_trimmed": 6,
"ListPeers.peers[].channels[].htlcs[].payment_hash": 5,
"ListPeers.peers[].channels[].htlcs[].state": 8,
"ListPeers.peers[].channels[].htlcs[].status": 7,
"ListPeers.peers[].channels[].in_fulfilled_msat": 41,
"ListPeers.peers[].channels[].in_offered_msat": 39,
"ListPeers.peers[].channels[].in_payments_fulfilled": 40,
"ListPeers.peers[].channels[].in_payments_offered": 38,
"ListPeers.peers[].channels[].inflight[]": 13,
"ListPeers.peers[].channels[].inflight[].feerate": 3,
"ListPeers.peers[].channels[].inflight[].funding_outnum": 2,
"ListPeers.peers[].channels[].inflight[].funding_txid": 1,
"ListPeers.peers[].channels[].inflight[].our_funding_msat": 5,
"ListPeers.peers[].channels[].inflight[].scratch_txid": 6,
"ListPeers.peers[].channels[].inflight[].total_funding_msat": 4,
"ListPeers.peers[].channels[].initial_feerate": 9,
"ListPeers.peers[].channels[].last_feerate": 10,
"ListPeers.peers[].channels[].max_accepted_htlcs": 35,
"ListPeers.peers[].channels[].max_to_us_msat": 22,
"ListPeers.peers[].channels[].max_total_htlc_in_msat": 27,
"ListPeers.peers[].channels[].min_to_us_msat": 21,
"ListPeers.peers[].channels[].minimum_htlc_in_msat": 32,
"ListPeers.peers[].channels[].next_fee_step": 12,
"ListPeers.peers[].channels[].next_feerate": 11,
"ListPeers.peers[].channels[].opener": 16,
"ListPeers.peers[].channels[].our_reserve_msat": 29,
"ListPeers.peers[].channels[].our_to_self_delay": 34,
"ListPeers.peers[].channels[].out_fulfilled_msat": 45,
"ListPeers.peers[].channels[].out_offered_msat": 43,
"ListPeers.peers[].channels[].out_payments_fulfilled": 44,
"ListPeers.peers[].channels[].out_payments_offered": 42,
"ListPeers.peers[].channels[].owner": 4,
"ListPeers.peers[].channels[].private": 15,
"ListPeers.peers[].channels[].receivable_msat": 31,
"ListPeers.peers[].channels[].scratch_txid": 2,
"ListPeers.peers[].channels[].short_channel_id": 5,
"ListPeers.peers[].channels[].spendable_msat": 30,
"ListPeers.peers[].channels[].state": 1,
"ListPeers.peers[].channels[].state_changes[]": 36,
"ListPeers.peers[].channels[].status[]": 37,
"ListPeers.peers[].channels[].their_reserve_msat": 28,
"ListPeers.peers[].channels[].their_to_self_delay": 33,
"ListPeers.peers[].channels[].to_us_msat": 20,
"ListPeers.peers[].channels[].total_msat": 23,
"ListPeers.peers[].connected": 2,
"ListPeers.peers[].features": 6,
"ListPeers.peers[].id": 1,
"ListPeers.peers[].log[]": 3,
"ListPeers.peers[].log[].data": 7,
"ListPeers.peers[].log[].log": 5,
"ListPeers.peers[].log[].node_id": 6,
"ListPeers.peers[].log[].num_skipped": 2,
"ListPeers.peers[].log[].source": 4,
"ListPeers.peers[].log[].time": 3,
"ListPeers.peers[].log[].type": 1,
"ListPeers.peers[].netaddr[]": 5
}
}
Loading

0 comments on commit 487b5e6

Please sign in to comment.