MCPcopy Create free account
hub / github.com/ElementsProject/lightning / include_htlcs

Function include_htlcs

channeld/test/run-full_channel.c:127–192  ·  view source on GitHub ↗

BOLT #3: * * htlc 0 direction: remote->local * htlc 0 amount_msat: 1000000 * htlc 0 expiry: 500 * htlc 0 payment_preimage: 0000000000000000000000000000000000000000000000000000000000000000 * htlc 1 direction: remote->local * htlc 1 amount_msat: 2000000 * htlc 1 expiry: 501 * htlc 1 payment_preimage: 0101010101010101010101010101010101010101010101010101010101010101 *

Source from the content-addressed store, hash-verified

125 * htlc 4 payment_preimage: 0404040404040404040404040404040404040404040404040404040404040404
126 */
127static const struct htlc **include_htlcs(struct channel *channel, enum side side)
128{
129 int i;
130 const struct htlc **htlcs = tal_arr(channel, const struct htlc *, 5);
131 const struct htlc **changed_htlcs;
132 u8 *dummy_routing = tal_arr(htlcs, u8, TOTAL_PACKET_SIZE(ROUTING_INFO_SIZE));
133 bool ret;
134
135 for (i = 0; i < 5; i++) {
136 struct preimage preimage;
137 struct sha256 hash;
138 enum channel_add_err e;
139 enum side sender;
140 struct amount_msat msatoshi = AMOUNT_MSAT(0);
141
142 switch (i) {
143 case 0:
144 sender = !side;
145 msatoshi = AMOUNT_MSAT(1000000);
146 break;
147 case 1:
148 sender = !side;
149 msatoshi = AMOUNT_MSAT(2000000);
150 break;
151 case 2:
152 sender = side;
153 msatoshi = AMOUNT_MSAT(2000000);
154 break;
155 case 3:
156 sender = side;
157 msatoshi = AMOUNT_MSAT(3000000);
158 break;
159 case 4:
160 sender = !side;
161 msatoshi = AMOUNT_MSAT(4000000);
162 break;
163 default:
164 abort();
165 }
166 assert(msatoshi.millisatoshis != 0);
167
168 memset(&preimage, i, sizeof(preimage));
169 sha256(&hash, &preimage, sizeof(preimage));
170 e = channel_add_htlc(channel, sender, i, msatoshi, 500+i, &hash,
171 dummy_routing, NULL, NULL, NULL, true);
172 assert(e == CHANNEL_ERR_ADD_OK);
173 htlcs[i] = channel_get_htlc(channel, sender, i);
174 }
175 tal_free(dummy_routing);
176
177 /* Now make HTLCs fully committed. */
178 changed_htlcs = tal_arr(htlcs, const struct htlc *, 0);
179 ret = channel_sending_commit(channel, &changed_htlcs);
180 assert(ret);
181 ret = channel_rcvd_revoke_and_ack(channel, &changed_htlcs);
182 assert(ret);
183 ret = channel_rcvd_commit(channel, &changed_htlcs);
184 assert(ret);

Callers 1

mainFunction · 0.85

Calls 9

abortFunction · 0.85
channel_add_htlcFunction · 0.85
channel_get_htlcFunction · 0.85
tal_freeFunction · 0.85
channel_sending_commitFunction · 0.85
channel_rcvd_commitFunction · 0.85
sha256Class · 0.70

Tested by

no test coverage detected