wavecli exitExitSummary
ExitSummary reports the wallet-wide portfolio of in-progress exits: one row per active exit plus aggregate totals for the amount still being recovered, the estimated fees, and the estimated net recoverable.
Endpoints
rpc ExitSummary(ExitSummaryRequest) returns (ExitSummaryResponse)POST/v1/wallet/exit-summaryExamples
wavecli exit summarywavecli exit summaryconn, err := grpc.NewClient("localhost:10029",
grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
log.Fatal(err)
}
defer conn.Close()
client := wavewalletrpc.NewWalletServiceClient(conn)
ctx := context.Background()
req := &wavewalletrpc.ExitSummaryRequest{}
resp, err := client.ExitSummary(ctx, req)
if err != nil {
log.Fatal(err)
}
fmt.Println(resp)import grpc
import wallet_pb2
import wallet_pb2_grpc
channel = grpc.insecure_channel('localhost:10029')
stub = wallet_pb2_grpc.WalletServiceStub(channel)
request = wallet_pb2.ExitSummaryRequest()
response = stub.ExitSummary(request)
print(response)const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const packageDefinition = protoLoader.loadSync('wallet.proto');
const { wavewalletrpc } = grpc.loadPackageDefinition(packageDefinition);
const client = new wavewalletrpc.WalletService(
'localhost:10029',
grpc.credentials.createInsecure(),
);
const request = {};
// Calls wavewalletrpc.WalletService.ExitSummary.
client.exitSummary(request, (err, response) => {
if (err) throw err;
console.log(response);
});curl -X POST http://localhost:10031/v1/wallet/exit-summary \
-H 'Content-Type: application/json' \
-d '{}'const res = await fetch('http://localhost:10031/v1/wallet/exit-summary', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({}),
});
const exitSummaryResponse = await res.json();RequestExitSummaryRequest
ExitSummaryRequest asks for the wallet-wide portfolio of in-progress exits.
This message has no fields.
ResponseExitSummaryResponse
ExitSummaryResponse is the wallet-wide portfolio of in-progress exits plus aggregate totals. Only non-terminal exits are included: a completed or failed exit has no amount "left" to recover.
| Field | Type | Description |
|---|---|---|
exits | repeated ExitSummaryItem | exits is one row per in-progress exit. |
total_exits | uint32 | total_exits is the number of in-progress exits. |
total_vtxo_amount_sat | int64 | total_vtxo_amount_sat is the summed value of every VTXO still being exited: the total amount currently locked in in-progress exits. |
total_est_fee_sat | int64 | total_est_fee_sat is the summed projected on-chain fee across every in-progress exit. |
total_est_net_recovered_sat | int64 | total_est_net_recovered_sat is the summed estimated value that will land back in the wallet once every in-progress exit completes. |
ExitSummaryItemmessage
ExitSummaryItem is one in-progress exit's coarse contribution to the portfolio. It is intentionally cheap (phase plus amounts and estimated fees from the persisted descriptor), so the summary does not query each live actor; use ExitStatus --detailed for one exit's tree/CSV progress.
| Field | Type | Description |
|---|---|---|
outpoint | string | outpoint is the exiting VTXO outpoint, formatted as "txid:index". |
status | ExitJobStatus | status is the current high-level phase of the exit job. |
vtxo_amount_sat | int64 | vtxo_amount_sat is the value of the VTXO being exited. |
est_total_fee_sat | int64 | est_total_fee_sat is the projected total on-chain fee for this exit (estimated CPFP total plus sweep fee). |
est_net_recovered_sat | int64 | est_net_recovered_sat is the estimated value that lands back in the wallet after the sweep fee. |
ExitJobStatusenum
ExitJobStatus collapses the underlying unroll job phases to a short wallet-facing string set.
| Name | Number | Description |
|---|---|---|
EXIT_JOB_STATUS_UNSPECIFIED | 0 | EXIT_JOB_STATUS_UNSPECIFIED - the proto zero value; no job phase has been reported. |
EXIT_JOB_STATUS_PENDING | 1 | EXIT_JOB_STATUS_PENDING - job created but recovery transactions not yet materialized. |
EXIT_JOB_STATUS_MATERIALIZING | 2 | EXIT_JOB_STATUS_MATERIALIZING - recovery transactions are being broadcast and confirmed on-chain. |
EXIT_JOB_STATUS_CSV_PENDING | 3 | EXIT_JOB_STATUS_CSV_PENDING - recovery transactions confirmed, waiting for the CSV delay to expire. |
EXIT_JOB_STATUS_SWEEPING | 4 | EXIT_JOB_STATUS_SWEEPING - CSV delay expired, sweep transaction is being broadcast/confirmed. |
EXIT_JOB_STATUS_COMPLETED | 5 | EXIT_JOB_STATUS_COMPLETED - terminal: the sweep confirmed and the funds are in the on-chain wallet. |
EXIT_JOB_STATUS_FAILED | 6 | EXIT_JOB_STATUS_FAILED - terminal: an unrecoverable error occurred. |