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

Function main

devtools/mkfunding.c:74–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74int main(int argc, char *argv[])
75{
76 struct privkey input_privkey;
77 struct privkey local_funding_privkey, remote_funding_privkey;
78 struct pubkey funding_localkey, funding_remotekey, inputkey;
79 struct amount_sat fee, funding_amount;
80 unsigned int feerate_per_kw;
81 int argnum;
82 struct bitcoin_tx *tx;
83 size_t weight;
84 struct utxo input;
85 struct bitcoin_signature sig;
86 struct bitcoin_txid txid;
87 u8 **witnesses;
88
89 setup_locale();
90 chainparams = chainparams_for_network("bitcoin");
91
92 secp256k1_ctx = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY |
93 SECP256K1_CONTEXT_SIGN);
94
95 if (argc != 1 + 7)
96 errx(1, "Usage: mkfunding <input-txid> <input-txout> <input-amount> <feerate-per-kw> <input-privkey> <local-funding-privkey> <remote-funding-privkey>");
97
98 input.is_p2sh = false;
99 input.close_info = NULL;
100
101 argnum = 1;
102 if (!bitcoin_txid_from_hex(argv[argnum],
103 strlen(argv[argnum]), &input.outpoint.txid))
104 errx(1, "Bad input-txid");
105 argnum++;
106 input.outpoint.n = atoi(argv[argnum++]);
107 if (!parse_amount_sat(&input.amount, argv[argnum], strlen(argv[argnum])))
108 errx(1, "Bad input-amount");
109 argnum++;
110 feerate_per_kw = atoi(argv[argnum++]);
111 if (!hex_decode(argv[argnum], strlen(argv[argnum]),
112 &input_privkey, sizeof(input_privkey)))
113 errx(1, "Parsing input-privkey");
114 argnum++;
115 if (!hex_decode(argv[argnum], strlen(argv[argnum]),
116 &local_funding_privkey, sizeof(local_funding_privkey)))
117 errx(1, "Parsing local-funding-privkey");
118 argnum++;
119 if (!hex_decode(argv[argnum], strlen(argv[argnum]),
120 &remote_funding_privkey, sizeof(remote_funding_privkey)))
121 errx(1, "Parsing remote-funding-privkey");
122 argnum++;
123
124 if (!pubkey_from_privkey(&input_privkey, &inputkey)
125 || !pubkey_from_privkey(&local_funding_privkey, &funding_localkey)
126 || !pubkey_from_privkey(&remote_funding_privkey, &funding_remotekey))
127 errx(1, "Bad privkeys");
128
129 /* nVersion, input count, output count, nLocktime */
130 weight = 4 * (4 + 1 + 1 + 4);
131 /* Add segwit fields: marker + flag */

Callers

nothing calls this directly

Calls 15

setup_localeFunction · 0.85
chainparams_for_networkFunction · 0.85
errxFunction · 0.85
bitcoin_txid_from_hexFunction · 0.85
hex_decodeFunction · 0.85
pubkey_from_privkeyFunction · 0.85
funding_txFunction · 0.85
sign_tx_inputFunction · 0.85
p2wpkh_scriptcodeFunction · 0.85
bitcoin_witness_p2wpkhFunction · 0.85

Tested by

no test coverage detected