forked from ElementsProject/lightning
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
splice: A splice-script test that tests complex corner cases
A test that puts some advanced and complex scripts into the parser and validates the results that come out.
- Loading branch information
Showing
2 changed files
with
297 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,281 @@ | ||
#include "config.h" | ||
#include "../version.c" | ||
#include <bitcoin/chainparams.h> | ||
#include <common/setup.h> | ||
#include <common/splice_script.h> | ||
#include <common/json_command.h> | ||
#include <assert.h> | ||
#include <stdio.h> | ||
#include <ccan/json_out/json_out.h> | ||
/* Include the C files directly. */ | ||
#include <ccan/json_out/json_out.c> | ||
|
||
struct command_result *command_fail(struct command *cmd, enum jsonrpc_errcode code, const char *fmt, ...) | ||
{ fprintf(stderr, "command_fail called!\n"); abort(); } | ||
|
||
struct json_filter **command_filter_ptr(struct command *cmd) | ||
{ fprintf(stderr, "command_filter_ptr called!\n"); abort(); } | ||
|
||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED) | ||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); } | ||
|
||
int main(int argc, char *argv[]) | ||
{ | ||
size_t len; | ||
const char *str; | ||
struct splice_script_error *error; | ||
struct splice_script_result **result, **final; | ||
jsmntok_t *toks; | ||
|
||
common_setup(argv[0]); | ||
|
||
struct splice_script_chan channels[] = | ||
{ | ||
{ /* A */ | ||
.node_id = { .k = { 0x03, 0x99, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x00 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x00 } }, | ||
}, | ||
{ /* B */ | ||
.node_id = { .k = { 0x03, 0x93, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x01 } }, | ||
}, | ||
{ /* C */ | ||
.node_id = { .k = { 0x03, 0x93, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x02 } }, | ||
}, | ||
{ /* D */ | ||
.node_id = { .k = { 0x03, 0x93, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x03 } }, | ||
}, | ||
{ /* E */ | ||
.node_id = { .k = { 0x03, 0x93, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x04 } }, | ||
}, | ||
{ /* F */ | ||
.node_id = { .k = { 0x03, 0x93, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x05 } }, | ||
}, | ||
{ /* G */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf5, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x06 } }, | ||
}, | ||
{ /* H */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x01 } }, | ||
.chan_id = { .id = { 0xf4, 0x69, 0x9c, 0x3d, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x00 } }, | ||
}, | ||
{ /* I */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x02 } }, | ||
.chan_id = { .id = { 0xff, 0xff, 0xff, 0xff, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x00 } }, | ||
}, | ||
{ /* J */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x03 } }, | ||
.chan_id = { .id = { 0xee, 0xee, 0xee, 0xee, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x00 } }, | ||
}, | ||
{ /* K */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x03 } }, | ||
.chan_id = { .id = { 0xee, 0xee, 0xee, 0xee, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x01 } }, | ||
}, | ||
{ /* L */ | ||
.node_id = { .k = { 0x03, 0x94, 0x06, 0x9f, 0x16, 0x93, 0xfd, 0x89, 0xa4, 0x53, 0xf0, 0xca, 0xf0, 0x3e, 0xe3, 0x6b, 0x6f, 0x6c, 0x8a, 0xba, 0xa7, 0xef, 0x77, 0x8d, 0x3e, 0x2b, 0xcc, 0x7c, 0x2b, 0x44, 0x12, 0x01, 0x04 } }, | ||
.chan_id = { .id = { 0xee, 0xee, 0xee, 0xee, 0x53, 0x02, 0xe4, 0x48, 0x6c, 0x83, 0xef, 0x9d, 0x0f, 0x2d, 0x12, 0xa9, 0x69, 0xab, 0x41, 0xcc, 0xc9, 0x30, 0x1b, 0xd0, 0x42, 0xc5, 0x07, 0x60, 0xa8, 0x7b, 0x27, 0x02 } }, | ||
}, | ||
}; | ||
|
||
const char *script = "" | ||
"0->0399:0->3M;\n" /* A */ | ||
"3M->bcrt1pp5ygqjg0q3mmv8ng8ceu59kl5a3etlf2vvryvnnyumvdyr8a77tqx507vk;\n" | ||
"wallet->1M;\n" | ||
"0->f4699c->3M;\n" /* H */ | ||
"0->0393069f1693fd89a453f0caf03ee36b6f6c8abaa7ef778d3e2bcc7c2b44120101:0->*;\n" /* B */ | ||
"0->0393069f1693fd89a453f0caf03ee36b6f6c8abaa7ef778d3e2bcc7c2b44120101:?->12M;\n" /* C */ | ||
"0->03930:*->*\n" /* D, E, F */ | ||
"|4.91M@2%->*:?;\n" /* G */ | ||
"25%|100K->*:?;\n" /* I */ | ||
"10%->*:*;\n"; /* J, K, L */ | ||
|
||
chainparams = chainparams_for_network("regtest"); | ||
|
||
error = parse_splice_script(tmpctx, script, channels, | ||
sizeof(channels) / sizeof(channels[0]), | ||
&result); | ||
|
||
if (error) { | ||
printf("%s\n", splice_script_compiler_error(tmpctx, script, | ||
error)); | ||
abort(); | ||
} | ||
|
||
struct json_stream *js = new_json_stream(tmpctx, NULL, NULL); | ||
|
||
splice_to_json(tmpctx, result, js); | ||
|
||
str = json_out_contents(js->jout, &len); | ||
|
||
assert(str); | ||
|
||
toks = json_parse_simple(tmpctx, str, len); | ||
|
||
assert(toks); | ||
|
||
assert(json_to_splice(tmpctx, str, toks, &final)); | ||
|
||
assert(tal_count(final) == 15); | ||
int i = 0; | ||
|
||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[0].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(3000000))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(3000000))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(final[i]->channel_id == 0); | ||
assert(strcmp(final[i]->bitcoin_address, "bcrt1pp5ygqjg0q3mmv8ng8ceu59kl5a3etlf2vvryvnnyumvdyr8a77tqx507vk") == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(final[i]->channel_id == 0); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 1); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(1000000))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[7].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(3000000))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[1].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 1000000); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[2].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(12000000))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[3].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 1000000); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[4].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 1000000); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[5].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 1000000); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(4910000))); | ||
assert(final[i]->lease_max_ppm == 20000); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 0); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[6].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(100000))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 250000); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[8].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 33333); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[9].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 33333); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[10].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 33333); | ||
assert(channel_id_eq(final[i]->channel_id, &channels[11].chan_id)); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 0); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
assert(amount_sat_eq(final[i]->lease_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->lease_max_ppm == 0); | ||
assert(amount_sat_eq(final[i]->in_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->in_ppm == 650001); | ||
assert(final[i]->channel_id == 0); | ||
assert(final[i]->bitcoin_address == 0); | ||
assert(final[i]->onchain_wallet == 1); | ||
assert(amount_sat_eq(final[i]->out_sat, AMOUNT_SAT(0))); | ||
assert(final[i]->out_ppm == 0); | ||
i++; | ||
|
||
assert(i == tal_count(final)); | ||
|
||
common_shutdown(); | ||
|
||
return 0; | ||
} |