| 30 | }; |
| 31 | |
| 32 | static int parse_options(char *argv[], struct update_opts *opts, |
| 33 | const char *desc) |
| 34 | { |
| 35 | int argnum = 0; |
| 36 | |
| 37 | opts->timestamp = atol(argv[argnum++]); |
| 38 | if (!opts->timestamp) |
| 39 | errx(1, "Bad %s.timestamp", desc); |
| 40 | opts->cltv_expiry_delta = atol(argv[argnum++]); |
| 41 | if (!opts->cltv_expiry_delta) |
| 42 | errx(1, "Bad %s.cltv_expiry_delta", desc); |
| 43 | if (!parse_amount_msat(&opts->min, argv[argnum], strlen(argv[argnum]))) |
| 44 | errx(1, "Bad %s.min", desc); |
| 45 | argnum++; |
| 46 | if (!parse_amount_msat(&opts->feebase, |
| 47 | argv[argnum], strlen(argv[argnum]))) |
| 48 | errx(1, "Bad %s.feebase", desc); |
| 49 | argnum++; |
| 50 | opts->fee_proportional_millionths = atol(argv[argnum++]); |
| 51 | if (!opts->fee_proportional_millionths) |
| 52 | errx(1, "Bad %s.fee_proportional_millionths", desc); |
| 53 | |
| 54 | if (!parse_amount_msat(&opts->max, |
| 55 | argv[argnum], strlen(argv[argnum]))) |
| 56 | errx(1, "Bad %s.max", desc); |
| 57 | argnum++; |
| 58 | opts->addresses = tal_hexdata(NULL, argv[argnum], strlen(argv[argnum])); |
| 59 | if (!opts->addresses) |
| 60 | errx(1, "Bad %s.addresses", desc); |
| 61 | argnum++; |
| 62 | return argnum; |
| 63 | } |
| 64 | |
| 65 | static char *sig_as_hex(const secp256k1_ecdsa_signature *sig) |
| 66 | { |
no test coverage detected