- final long logger;
- final long fee_estimator;
- final long tx_broadcaster;
- final KeysManager keys;
- final KeysInterface keys_interface;
- final ChannelManager chan_manager;
- final EventsProvider chan_manager_events;
- final NetGraphMsgHandler router;
- final PeerManager peer_manager;
- HashMap<String, Long> monitors; // Wow I forgot just how terrible Java is - we can't put a byte array here.
- byte[] node_id;
+ KeysInterface manual_keysif(KeysInterface underlying_if) {
+ return KeysInterface.new_impl(new KeysInterface.KeysInterfaceInterface() {
+ @Override public byte[] get_node_secret() { return underlying_if.get_node_secret(); }
+ @Override public byte[] get_destination_script() { return underlying_if.get_destination_script(); }
+ @Override public byte[] get_shutdown_pubkey() { return underlying_if.get_shutdown_pubkey(); }
+
+ @Override
+ public ChannelKeys get_channel_keys(boolean inbound, long channel_value_satoshis) {
+ ChannelKeys underlying_ck = underlying_if.get_channel_keys(inbound, channel_value_satoshis);
+ ChannelKeys.ChannelKeysInterface cki = new ChannelKeys.ChannelKeysInterface() {
+ @Override
+ public byte[] get_per_commitment_point(long idx) {
+ return underlying_ck.get_per_commitment_point(idx);
+ }
+
+ @Override
+ public byte[] release_commitment_secret(long idx) {
+ return underlying_ck.release_commitment_secret(idx);
+ }
+
+ @Override
+ public TwoTuple<Long, Long> key_derivation_params() {
+ return new TwoTuple<Long, Long>((long)0, (long)1);
+ }
+
+ @Override
+ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx) {
+ return underlying_ck.sign_counterparty_commitment(commitment_tx);
+ }
+
+ @Override
+ public Result_SignatureNoneZ sign_holder_commitment(HolderCommitmentTransaction holder_commitment_tx) {
+ return underlying_ck.sign_holder_commitment(holder_commitment_tx);
+ }
+
+ @Override
+ public Result_CVec_SignatureZNoneZ sign_holder_commitment_htlc_transactions(HolderCommitmentTransaction holder_commitment_tx) {
+ return underlying_ck.sign_holder_commitment_htlc_transactions(holder_commitment_tx);
+ }
+
+ @Override
+ public Result_SignatureNoneZ sign_justice_transaction(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, HTLCOutputInCommitment htlc) {
+ return underlying_ck.sign_justice_transaction(justice_tx, input, amount, per_commitment_key, htlc);
+ }
+
+ @Override
+ public Result_SignatureNoneZ sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, HTLCOutputInCommitment htlc) {
+ return underlying_ck.sign_counterparty_htlc_transaction(htlc_tx, input, amount, per_commitment_point, htlc);
+ }
+
+ @Override
+ public Result_SignatureNoneZ sign_closing_transaction(byte[] closing_tx) {
+ return underlying_ck.sign_closing_transaction(closing_tx);
+ }
+
+ @Override
+ public Result_SignatureNoneZ sign_channel_announcement(UnsignedChannelAnnouncement msg) {
+ return underlying_ck.sign_channel_announcement(msg);
+ }
+
+ @Override
+ public void ready_channel(ChannelTransactionParameters params) {
+ underlying_ck.ready_channel(params);
+ }
+
+ @Override
+ public byte[] write() {
+ return underlying_ck.write();
+ }
+ };
+ ChannelKeys resp = ChannelKeys.new_impl(cki, underlying_ck.get_pubkeys());
+ must_free_objs.add(new WeakReference<>(cki));
+ must_free_objs.add(new WeakReference<>(resp));
+ must_free_objs.add(new WeakReference<>(underlying_ck));
+ return resp;
+ }