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

Function include_htlcs

channeld/test/run-full_channel.c:141–206  ·  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

139 * htlc 4 payment_preimage: 0404040404040404040404040404040404040404040404040404040404040404
140 */
141static const struct htlc **include_htlcs(struct channel *channel, enum side side)
142{
143 int i;
144 const struct htlc **htlcs = tal_arr(channel, const struct htlc *, 5);
145 const struct htlc **changed_htlcs;
146 u8 *dummy_routing = tal_arr(htlcs, u8, TOTAL_PACKET_SIZE(ROUTING_INFO_SIZE));
147 bool ret;
148
149 for (i = 0; i < 5; i++) {
150 struct preimage preimage;
151 struct sha256 hash;
152 enum channel_add_err e;
153 enum side sender;
154 struct amount_msat msatoshi = AMOUNT_MSAT(0);
155
156 switch (i) {
157 case 0:
158 sender = !side;
159 msatoshi = AMOUNT_MSAT(1000000);
160 break;
161 case 1:
162 sender = !side;
163 msatoshi = AMOUNT_MSAT(2000000);
164 break;
165 case 2:
166 sender = side;
167 msatoshi = AMOUNT_MSAT(2000000);
168 break;
169 case 3:
170 sender = side;
171 msatoshi = AMOUNT_MSAT(3000000);
172 break;
173 case 4:
174 sender = !side;
175 msatoshi = AMOUNT_MSAT(4000000);
176 break;
177 default:
178 abort();
179 }
180 assert(msatoshi.millisatoshis != 0);
181
182 memset(&preimage, i, sizeof(preimage));
183 sha256(&hash, &preimage, sizeof(preimage));
184 e = channel_add_htlc(channel, sender, i, msatoshi, 500+i, &hash,
185 dummy_routing, NULL, NULL, NULL, NULL, true);
186 assert(e == CHANNEL_ERR_ADD_OK);
187 htlcs[i] = channel_get_htlc(channel, sender, i);
188 }
189 tal_free(dummy_routing);
190
191 /* Now make HTLCs fully committed. */
192 changed_htlcs = tal_arr(htlcs, const struct htlc *, 0);
193 ret = channel_sending_commit(channel, &changed_htlcs);
194 assert(ret);
195 ret = channel_rcvd_revoke_and_ack(channel, &changed_htlcs);
196 assert(ret);
197 ret = channel_rcvd_commit(channel, &changed_htlcs);
198 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