diff --git a/cmd/loop/testdata/sessions/instantout/01_loop-reservations-list.json b/cmd/loop/testdata/sessions/instantout/01_loop-reservations-list.json new file mode 100644 index 00000000..ce21a9e9 --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/01_loop-reservations-list.json @@ -0,0 +1,107 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "reservations", + "list", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 177945855, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 1, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 177, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + } + ] + } + } + }, + { + "time_ms": 177, + "kind": "stdout", + "data": { + "lines": [ + "{\n", + " \"reservations\": [\n", + " {\n", + " \"amount\": \"800000\",\n", + " \"expiry\": 1619,\n", + " \"reservation_id\": \"b3f443e8b8ff797766b450ad77fe80beb250acfd7887562b6e5c9964c5884d87\",\n", + " \"state\": \"Confirmed\",\n", + " \"tx_id\": \"8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17\",\n", + " \"vout\": 0\n", + " },\n", + " {\n", + " \"amount\": \"800000\",\n", + " \"expiry\": 1623,\n", + " \"reservation_id\": \"5a5f824ec63e576cd4be42b96ecf5622db64bca2eb28cf00d64a59e5567f307b\",\n", + " \"state\": \"Confirmed\",\n", + " \"tx_id\": \"beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836\",\n", + " \"vout\": 0\n", + " },\n", + " {\n", + " \"amount\": \"800000\",\n", + " \"expiry\": 1626,\n", + " \"reservation_id\": \"32eeb97db85ac84b51ce8ba028b067a1e44df1ffad10cd7e3bd42e36f5087db2\",\n", + " \"state\": \"Confirmed\",\n", + " \"tx_id\": \"5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952\",\n", + " \"vout\": 0\n", + " }\n", + " ]\n", + "}\n" + ] + } + }, + { + "time_ms": 177, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/02_loop-instantout.json b/cmd/loop/testdata/sessions/instantout/02_loop-instantout.json new file mode 100644 index 00000000..6dae20b1 --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/02_loop-instantout.json @@ -0,0 +1,189 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 1574538838, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 0, + "kind": "stdin", + "data": { + "text": "ALL\ny\n" + } + }, + { + "time_ms": 2, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 152, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + } + ] + } + } + }, + { + "time_ms": 152, + "kind": "stdout", + "data": { + "lines": [ + "Available reservations: \n", + "\n", + "Reservation 1: shortid b3f443, amt 800000, expiry height 1619 \n", + "Reservation 2: shortid 5a5f82, amt 800000, expiry height 1623 \n", + "Reservation 3: shortid 32eeb9, amt 800000, expiry height 1626 \n", + "\n", + "Max amount to instant out: 2400000\n", + "\n", + "Select reservations for instantout (e.g. '1,2,3')\n" + ] + } + }, + { + "time_ms": 152, + "kind": "stdout", + "data": { + "lines": [ + "Type 'ALL' to use all available reservations.\n" + ] + } + }, + { + "time_ms": 152, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "request", + "message_type": "looprpc.InstantOutQuoteRequest", + "payload": { + "amt": "2400000", + "num_reservations": 0, + "reservation_ids": [ + "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=" + ] + } + } + }, + { + "time_ms": 177, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "response", + "message_type": "looprpc.InstantOutQuoteResponse", + "payload": { + "service_fee_sat": "4800", + "sweep_fee_sat": "5650" + } + } + }, + { + "time_ms": 177, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "request", + "message_type": "looprpc.InstantOutRequest", + "payload": { + "reservation_ids": [ + "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=" + ], + "outgoing_chan_set": [], + "dest_addr": "" + } + } + }, + { + "time_ms": 177, + "kind": "stdout", + "data": { + "lines": [ + "\n", + "Estimated on-chain fee: 5650 sat\n", + "Service fee: 4800 sat\n", + "\n", + "CONTINUE SWAP? (y/n): Starting instant swap out\n" + ] + } + }, + { + "time_ms": 1574, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "response", + "message_type": "looprpc.InstantOutResponse", + "payload": { + "instant_out_hash": "uxbiybKoHjn4B4b+yHRFGI9e12jMMtTLEvNnF7wYriU=", + "sweep_tx_id": "a1650cb339118e58f317bbbbd8cff720e0cc02a9fe159c9286724d6f5722fef2", + "state": "PushPreimage" + } + } + }, + { + "time_ms": 1574, + "kind": "stdout", + "data": { + "lines": [ + "Instant out swap initiated with ID: bb16e2c9b2a81e39f80786fec87445188f5ed768cc32d4cb12f36717bc18ae25, State: PushPreimage \n", + "Sweepless sweep tx id: a1650cb339118e58f317bbbbd8cff720e0cc02a9fe159c9286724d6f5722fef2 \n" + ] + } + }, + { + "time_ms": 1574, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/03_loop-listinstantouts.json b/cmd/loop/testdata/sessions/instantout/03_loop-listinstantouts.json new file mode 100644 index 00000000..84b2d368 --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/03_loop-listinstantouts.json @@ -0,0 +1,80 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "listinstantouts", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 142800927, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 1, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListInstantOuts", + "event": "request", + "message_type": "looprpc.ListInstantOutsRequest", + "payload": {} + } + }, + { + "time_ms": 142, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListInstantOuts", + "event": "response", + "message_type": "looprpc.ListInstantOutsResponse", + "payload": { + "swaps": [ + { + "swap_hash": "uxbiybKoHjn4B4b+yHRFGI9e12jMMtTLEvNnF7wYriU=", + "state": "WaitForSweeplessSweepConfirmed", + "amount": "2400000", + "reservation_ids": [ + "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=" + ], + "sweep_tx_id": "a1650cb339118e58f317bbbbd8cff720e0cc02a9fe159c9286724d6f5722fef2" + } + ] + } + } + }, + { + "time_ms": 142, + "kind": "stdout", + "data": { + "lines": [ + "{\n", + " \"swaps\": [\n", + " {\n", + " \"amount\": \"2400000\",\n", + " \"reservation_ids\": [\n", + " \"b3f443e8b8ff797766b450ad77fe80beb250acfd7887562b6e5c9964c5884d87\",\n", + " \"5a5f824ec63e576cd4be42b96ecf5622db64bca2eb28cf00d64a59e5567f307b\",\n", + " \"32eeb97db85ac84b51ce8ba028b067a1e44df1ffad10cd7e3bd42e36f5087db2\"\n", + " ],\n", + " \"state\": \"WaitForSweeplessSweepConfirmed\",\n", + " \"swap_hash\": \"bb16e2c9b2a81e39f80786fec87445188f5ed768cc32d4cb12f36717bc18ae25\",\n", + " \"sweep_tx_id\": \"a1650cb339118e58f317bbbbd8cff720e0cc02a9fe159c9286724d6f5722fef2\"\n", + " }\n", + " ]\n", + "}\n" + ] + } + }, + { + "time_ms": 142, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/04_loop-instantout-no-confirmed.json b/cmd/loop/testdata/sessions/instantout/04_loop-instantout-no-confirmed.json new file mode 100644 index 00000000..52f49b96 --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/04_loop-instantout-no-confirmed.json @@ -0,0 +1,94 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 271911644, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 2, + "kind": "stdin", + "data": { + "text": "ALL\nn\n" + } + }, + { + "time_ms": 9, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 270, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Spent", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Spent", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Spent", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + }, + { + "reservation_id": "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "state": "WaitForConfirmation", + "amount": "800000", + "tx_id": "", + "vout": 0, + "expiry": 1632 + } + ] + } + } + }, + { + "time_ms": 271, + "kind": "stdout", + "data": { + "lines": [ + "No confirmed reservations found \n" + ] + } + }, + { + "time_ms": 271, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/05_loop-instantout-cancel.json b/cmd/loop/testdata/sessions/instantout/05_loop-instantout-cancel.json new file mode 100644 index 00000000..b01dc87a --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/05_loop-instantout-cancel.json @@ -0,0 +1,155 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "run_error": "swap canceled", + "duration": 229272887, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 1, + "kind": "stdin", + "data": { + "text": "ALL\nn\n" + } + }, + { + "time_ms": 2, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 188, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Spent", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Spent", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Spent", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + }, + { + "reservation_id": "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "322d031e9ab55e0bcdac421c57d2d5d7705b80d01d3217a672aa1bf73edfc963", + "vout": 0, + "expiry": 1632 + } + ] + } + } + }, + { + "time_ms": 188, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "request", + "message_type": "looprpc.InstantOutQuoteRequest", + "payload": { + "amt": "800000", + "num_reservations": 0, + "reservation_ids": [ + "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=" + ] + } + } + }, + { + "time_ms": 188, + "kind": "stdout", + "data": { + "lines": [ + "Available reservations: \n", + "\n", + "Reservation 1: shortid fc0b25, amt 800000, expiry height 1632 \n", + "\n", + "Max amount to instant out: 800000\n", + "\n", + "Select reservations for instantout (e.g. '1,2,3')\n", + "Type 'ALL' to use all available reservations.\n" + ] + } + }, + { + "time_ms": 228, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "response", + "message_type": "looprpc.InstantOutQuoteResponse", + "payload": { + "service_fee_sat": "1600", + "sweep_fee_sat": "2773" + } + } + }, + { + "time_ms": 228, + "kind": "stdout", + "data": { + "lines": [ + "\n", + "Estimated on-chain fee: 2773 sat\n", + "Service fee: 1600 sat\n", + "\n", + "CONTINUE SWAP? (y/n): " + ] + } + }, + { + "time_ms": 229, + "kind": "stderr", + "data": { + "lines": [ + "[loop] swap canceled\n" + ] + } + }, + { + "time_ms": 229, + "kind": "exit", + "data": { + "run_error": "swap canceled" + } + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/06_loop-instantout-invalid-selection.json b/cmd/loop/testdata/sessions/instantout/06_loop-instantout-invalid-selection.json new file mode 100644 index 00000000..788abeea --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/06_loop-instantout-invalid-selection.json @@ -0,0 +1,113 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "run_error": "invalid index 99", + "duration": 203873152, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 0, + "kind": "stdin", + "data": { + "text": "99\n" + } + }, + { + "time_ms": 3, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 202, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Spent", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Spent", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Spent", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + }, + { + "reservation_id": "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "322d031e9ab55e0bcdac421c57d2d5d7705b80d01d3217a672aa1bf73edfc963", + "vout": 0, + "expiry": 1632 + } + ] + } + } + }, + { + "time_ms": 202, + "kind": "stdout", + "data": { + "lines": [ + "Available reservations: \n", + "\n", + "Reservation 1: shortid fc0b25, amt 800000, expiry height 1632 \n", + "\n", + "Max amount to instant out: 800000\n", + "\n", + "Select reservations for instantout (e.g. '1,2,3')\n", + "Type 'ALL' to use all available reservations.\n" + ] + } + }, + { + "time_ms": 203, + "kind": "stderr", + "data": { + "lines": [ + "[loop] invalid index 99\n" + ] + } + }, + { + "time_ms": 203, + "kind": "exit", + "data": { + "run_error": "invalid index 99" + } + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/07_loop-instantout-channel.json b/cmd/loop/testdata/sessions/instantout/07_loop-instantout-channel.json new file mode 100644 index 00000000..205ae43e --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/07_loop-instantout-channel.json @@ -0,0 +1,206 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest", + "--channel", + "125344325763072" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 1716733605, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 1, + "kind": "stdin", + "data": { + "text": "ALL\ny\n" + } + }, + { + "time_ms": 3, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 317, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Spent", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Spent", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Spent", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + }, + { + "reservation_id": "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "322d031e9ab55e0bcdac421c57d2d5d7705b80d01d3217a672aa1bf73edfc963", + "vout": 0, + "expiry": 1632 + }, + { + "reservation_id": "0JK1m4RmC5iKV9dR/SlixC0IEGmobPMTlVgmk13thx8=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "081eed1a78e87498ca29af380aaecc64e949c47aeb400375e662fdf630554ace", + "vout": 0, + "expiry": 1653 + } + ] + } + } + }, + { + "time_ms": 317, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "request", + "message_type": "looprpc.InstantOutQuoteRequest", + "payload": { + "amt": "1600000", + "num_reservations": 0, + "reservation_ids": [ + "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "0JK1m4RmC5iKV9dR/SlixC0IEGmobPMTlVgmk13thx8=" + ] + } + } + }, + { + "time_ms": 317, + "kind": "stdout", + "data": { + "lines": [ + "Available reservations: \n", + "\n", + "Reservation 1: shortid fc0b25, amt 800000, expiry height 1632 \n", + "Reservation 2: shortid d092b5, amt 800000, expiry height 1653 \n", + "\n", + "Max amount to instant out: 1600000\n", + "\n", + "Select reservations for instantout (e.g. '1,2,3')\n", + "Type 'ALL' to use all available reservations.\n" + ] + } + }, + { + "time_ms": 359, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "response", + "message_type": "looprpc.InstantOutQuoteResponse", + "payload": { + "service_fee_sat": "3200", + "sweep_fee_sat": "4210" + } + } + }, + { + "time_ms": 359, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "request", + "message_type": "looprpc.InstantOutRequest", + "payload": { + "reservation_ids": [ + "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "0JK1m4RmC5iKV9dR/SlixC0IEGmobPMTlVgmk13thx8=" + ], + "outgoing_chan_set": [ + "125344325763072" + ], + "dest_addr": "" + } + } + }, + { + "time_ms": 360, + "kind": "stdout", + "data": { + "lines": [ + "\n", + "Estimated on-chain fee: 4210 sat\n", + "Service fee: 3200 sat\n", + "\n", + "CONTINUE SWAP? (y/n): Starting instant swap out\n" + ] + } + }, + { + "time_ms": 1711, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "response", + "message_type": "looprpc.InstantOutResponse", + "payload": { + "instant_out_hash": "RfjHjKyop9NqqQzGXnyF1mnv9mPeWJXyz+5seKnKZ4k=", + "sweep_tx_id": "6f6f29961d2b4ab9f893850a0250f1f55fb93b144966833a5546986b171255a4", + "state": "PushPreimage" + } + } + }, + { + "time_ms": 1711, + "kind": "stdout", + "data": { + "lines": [ + "Instant out swap initiated with ID: 45f8c78caca8a7d36aa90cc65e7c85d669eff663de5895f2cfee6c78a9ca6789, State: PushPreimage \n" + ] + } + }, + { + "time_ms": 1711, + "kind": "stdout", + "data": { + "lines": [ + "Sweepless sweep tx id: 6f6f29961d2b4ab9f893850a0250f1f55fb93b144966833a5546986b171255a4 \n" + ] + } + }, + { + "time_ms": 1716, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/instantout/08_loop-instantout-select-index.json b/cmd/loop/testdata/sessions/instantout/08_loop-instantout-select-index.json new file mode 100644 index 00000000..9a6d103b --- /dev/null +++ b/cmd/loop/testdata/sessions/instantout/08_loop-instantout-select-index.json @@ -0,0 +1,199 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "instantout", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 1377442432, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 2, + "kind": "stdin", + "data": { + "text": "1\ny\n" + } + }, + { + "time_ms": 3, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "request", + "message_type": "looprpc.ListReservationsRequest", + "payload": {} + } + }, + { + "time_ms": 178, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/ListReservations", + "event": "response", + "message_type": "looprpc.ListReservationsResponse", + "payload": { + "reservations": [ + { + "reservation_id": "s/RD6Lj/eXdmtFCtd/6AvrJQrP14h1YrblyZZMWITYc=", + "state": "Spent", + "amount": "800000", + "tx_id": "8b3b5e235ad24be42bc3802c6694566964c394df247b4ae1f2f4fd785e5acd17", + "vout": 0, + "expiry": 1619 + }, + { + "reservation_id": "Wl+CTsY+V2zUvkK5bs9WIttkvKLrKM8A1kpZ5VZ/MHs=", + "state": "Spent", + "amount": "800000", + "tx_id": "beb447976c6c1a93fdadee41280b912e62b305c7c30815dc172d58732b6c3836", + "vout": 0, + "expiry": 1623 + }, + { + "reservation_id": "Mu65fbhayEtRzougKLBnoeRN8f+tEM1+O9QuNvUIfbI=", + "state": "Spent", + "amount": "800000", + "tx_id": "5f898ca1b3852c62889f1113e07c73d0a3d721fd98d0a5433c6b7122cc706952", + "vout": 0, + "expiry": 1626 + }, + { + "reservation_id": "/AslVrUe/D6Eum+CZsg1x+EalEVACi6ICfc8rVURH3U=", + "state": "Spent", + "amount": "800000", + "tx_id": "322d031e9ab55e0bcdac421c57d2d5d7705b80d01d3217a672aa1bf73edfc963", + "vout": 0, + "expiry": 1632 + }, + { + "reservation_id": "0JK1m4RmC5iKV9dR/SlixC0IEGmobPMTlVgmk13thx8=", + "state": "Spent", + "amount": "800000", + "tx_id": "081eed1a78e87498ca29af380aaecc64e949c47aeb400375e662fdf630554ace", + "vout": 0, + "expiry": 1653 + }, + { + "reservation_id": "cSfKVONNmsK9+p4Uc5nc3ZtE+37uOODHeq1vprhh/x4=", + "state": "Confirmed", + "amount": "800000", + "tx_id": "46808a670542c1f3bf20ade2af77c254e3535378aab6ccd32c58de9976b0cf26", + "vout": 0, + "expiry": 1671 + } + ] + } + } + }, + { + "time_ms": 179, + "kind": "stdout", + "data": { + "lines": [ + "Available reservations: \n", + "\n", + "Reservation 1: shortid 7127ca, amt 800000, expiry height 1671 \n", + "\n", + "Max amount to instant out: 800000\n", + "\n", + "Select reservations for instantout (e.g. '1,2,3')\n", + "Type 'ALL' to use all available reservations.\n" + ] + } + }, + { + "time_ms": 179, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "request", + "message_type": "looprpc.InstantOutQuoteRequest", + "payload": { + "amt": "800000", + "num_reservations": 0, + "reservation_ids": [ + "cSfKVONNmsK9+p4Uc5nc3ZtE+37uOODHeq1vprhh/x4=" + ] + } + } + }, + { + "time_ms": 186, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOutQuote", + "event": "response", + "message_type": "looprpc.InstantOutQuoteResponse", + "payload": { + "service_fee_sat": "1600", + "sweep_fee_sat": "2772" + } + } + }, + { + "time_ms": 186, + "kind": "stdout", + "data": { + "lines": [ + "\n", + "Estimated on-chain fee: 2772 sat\n", + "Service fee: 1600 sat\n", + "\n", + "CONTINUE SWAP? (y/n): Starting instant swap out\n" + ] + } + }, + { + "time_ms": 186, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "request", + "message_type": "looprpc.InstantOutRequest", + "payload": { + "reservation_ids": [ + "cSfKVONNmsK9+p4Uc5nc3ZtE+37uOODHeq1vprhh/x4=" + ], + "outgoing_chan_set": [], + "dest_addr": "" + } + } + }, + { + "time_ms": 1376, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/InstantOut", + "event": "response", + "message_type": "looprpc.InstantOutResponse", + "payload": { + "instant_out_hash": "0LvpOmXv+cqCnXgQ/lNOlbCvlI0AZkkkS1pFJk2n3us=", + "sweep_tx_id": "650e166a7d346f2b268c26c7fe075d8e2dc25655a747f546f5a039f01973d979", + "state": "WaitForSweeplessSweepConfirmed" + } + } + }, + { + "time_ms": 1377, + "kind": "stdout", + "data": { + "lines": [ + "Instant out swap initiated with ID: d0bbe93a65eff9ca829d7810fe534e95b0af948d006649244b5a45264da7deeb, State: WaitForSweeplessSweepConfirmed \n", + "Sweepless sweep tx id: 650e166a7d346f2b268c26c7fe075d8e2dc25655a747f546f5a039f01973d979 \n" + ] + } + }, + { + "time_ms": 1377, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/l402/01_loop-listauth.json b/cmd/loop/testdata/sessions/l402/01_loop-listauth.json new file mode 100644 index 00000000..81e0d87c --- /dev/null +++ b/cmd/loop/testdata/sessions/l402/01_loop-listauth.json @@ -0,0 +1,79 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "listauth", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 157631491, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 2, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/GetL402Tokens", + "event": "request", + "message_type": "looprpc.TokensRequest", + "payload": {} + } + }, + { + "time_ms": 157, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/GetL402Tokens", + "event": "response", + "message_type": "looprpc.TokensResponse", + "payload": { + "tokens": [ + { + "base_macaroon": "AgEEbHNhdAJCAAAkJPkWepsd1GgURnFywD7MZi7yoPZC/BjJHNrIs6en83L1T2GVJqpTIlrcw09RnFx5xHfjsNDjLRIekGAPVN/oAAIPc2VydmljZXM9bG9vcDowAAISbG9vcF9jYXBhYmlsaXRpZXM9AAAGIGIkKNbF9/LxQzqEKurnzP7lkGJbA2CsVbkwrKXyUTx/", + "payment_hash": "JCT5FnqbHdRoFEZxcsA+zGYu8qD2QvwYyRzayLOnp/M=", + "payment_preimage": "pSZZqEORw/4tPCPPS3sTDeh/2mq3EAzwqqWor/xwTmM=", + "amount_paid_msat": "1000000", + "routing_fee_paid_msat": "0", + "time_created": "1770076917", + "expired": false, + "storage_name": "/home/user/.loop/regtest/l402.token", + "id": "72f54f619526aa53225adcc34f519c5c79c477e3b0d0e32d121e90600f54dfe8" + } + ] + } + } + }, + { + "time_ms": 157, + "kind": "stdout", + "data": { + "lines": [ + "[\n", + " {\n", + " \"amount_paid_msat\": 1000000,\n", + " \"base_macaroon\": \"0201046c736174024200002424f9167a9b1dd46814467172c03ecc662ef2a0f642fc18c91cdac8b3a7a7f372f54f619526aa53225adcc34f519c5c79c477e3b0d0e32d121e90600f54dfe800020f73657276696365733d6c6f6f703a300002126c6f6f705f6361706162696c69746965733d00000620622428d6c5f7f2f1433a842aeae7ccfee590625b0360ac55b930aca5f2513c7f\",\n", + " \"expired\": false,\n", + " \"file_name\": \"/home/user/.loop/regtest/l402.token\",\n", + " \"id\": \"72f54f619526aa53225adcc34f519c5c79c477e3b0d0e32d121e90600f54dfe8\",\n", + " \"payment_hash\": \"2424f9167a9b1dd46814467172c03ecc662ef2a0f642fc18c91cdac8b3a7a7f3\",\n", + " \"payment_preimage\": \"a52659a84391c3fe2d3c23cf4b7b130de87fda6ab7100cf0aaa5a8affc704e63\",\n", + " \"routing_fee_paid_msat\": 0,\n", + " \"time_created\": \"2026-02-02T19:01:57-05:00\",\n", + " \"valid_until\": \"\"\n", + " }\n", + "]\n" + ] + } + }, + { + "time_ms": 157, + "kind": "exit", + "data": {} + } + ] +} diff --git a/cmd/loop/testdata/sessions/l402/02_loop-fetchl402.json b/cmd/loop/testdata/sessions/l402/02_loop-fetchl402.json new file mode 100644 index 00000000..81800368 --- /dev/null +++ b/cmd/loop/testdata/sessions/l402/02_loop-fetchl402.json @@ -0,0 +1,52 @@ +{ + "metadata": { + "args": [ + "/home/user/bin/loop", + "fetchl402", + "--network", + "regtest" + ], + "env": { + "HOME": "/home/user" + }, + "version": "0.31.7-beta commit=v0.31.7-beta-28-g6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845 commit_hash=6d8ddfc59ddc2dcfd1a9b4e4b3c53a9cf15dd845", + "duration": 177710196, + "clock_start_unix": 1769407086 + }, + "events": [ + { + "time_ms": 1, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/FetchL402Token", + "event": "request", + "message_type": "looprpc.FetchL402TokenRequest", + "payload": {} + } + }, + { + "time_ms": 177, + "kind": "grpc", + "data": { + "method": "/looprpc.SwapClient/FetchL402Token", + "event": "response", + "message_type": "looprpc.FetchL402TokenResponse", + "payload": {} + } + }, + { + "time_ms": 177, + "kind": "stdout", + "data": { + "lines": [ + "{}\n" + ] + } + }, + { + "time_ms": 177, + "kind": "exit", + "data": {} + } + ] +}