From 482d3c5552f9f1e5aaa0dca96bd1e06c7ec7c4f3 Mon Sep 17 00:00:00 2001 From: Jared Tobin Date: Wed, 20 Aug 2025 05:31:43 -0230 Subject: [PATCH 1/3] rfqmsg: add reject-with-custom-message utility ErrUnknownRejectWithCustomMsg constructs a RejectErr with error code 0 and the specified error message. --- rfqmsg/reject.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rfqmsg/reject.go b/rfqmsg/reject.go index 44eef2a6a..103d0ec47 100644 --- a/rfqmsg/reject.go +++ b/rfqmsg/reject.go @@ -92,6 +92,15 @@ var ( } ) +// ErrUnknownRejectWithCustomMsg produces the "unknown" error code, but +// pairs it with a custom error message +func ErrUnknownRejectWithCustomMsg(msg string) RejectErr { + return RejectErr{ + Code: 0, + Msg: msg, + } +} + const ( // latestRejectVersion is the latest supported reject wire message data // field version. From 2b2ead60152a7befe6496dd4afa33674128390c4 Mon Sep 17 00:00:00 2001 From: Jared Tobin Date: Wed, 20 Aug 2025 05:33:25 -0230 Subject: [PATCH 2/3] rfq: relay errors received from price oracle Simply forwards any error received from an oracle, following a price query, along with any reject message sent to the peer. --- rfq/negotiator.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rfq/negotiator.go b/rfq/negotiator.go index dc64ed947..e52bf485d 100644 --- a/rfq/negotiator.go +++ b/rfq/negotiator.go @@ -346,7 +346,7 @@ func (n *Negotiator) HandleIncomingBuyRequest( // Send a reject message to the peer. msg := rfqmsg.NewReject( request.Peer, request.ID, - rfqmsg.ErrUnknownReject, + rfqmsg.ErrUnknownRejectWithCustomMsg(err.Error()), ) sendOutgoingMsg(msg) @@ -441,7 +441,7 @@ func (n *Negotiator) HandleIncomingSellRequest( // Send a reject message to the peer. msg := rfqmsg.NewReject( request.Peer, request.ID, - rfqmsg.ErrUnknownReject, + rfqmsg.ErrUnknownRejectWithCustomMsg(err.Error()), ) sendOutgoingMsg(msg) From 8cee496a2b1cccb8e8b02060804fdbd7539ed0d3 Mon Sep 17 00:00:00 2001 From: Jared Tobin Date: Wed, 20 Aug 2025 06:10:55 -0230 Subject: [PATCH 3/3] docs: add error-relaying release note --- docs/release-notes/release-notes-0.7.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/release-notes/release-notes-0.7.0.md b/docs/release-notes/release-notes-0.7.0.md index 5ab6dac24..c1a9d09c1 100644 --- a/docs/release-notes/release-notes-0.7.0.md +++ b/docs/release-notes/release-notes-0.7.0.md @@ -147,6 +147,10 @@ [PR](https://github.com/lightninglabs/taproot-assets/pull/1640) addresses the issue. +- Errors received from a price oracle [are now relayed to a requesting + peer](https://github.com/lightninglabs/taproot-assets/pull/1751) in + the reject message sent to them, instead of being ignored. + ## RPC Updates ## tapcli Updates @@ -217,5 +221,6 @@ - ffranr - George Tsagkarelis +- Jared Tobin - Olaoluwa Osuntokun - Oliver Gugger