-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature]: Discover information about Quote / Taproot Asset Denominated Value as Payer of Invoice ASAP #1166
Comments
Thanks for the report and the questions. But the invoice will only ever show the satoshi amount. The main reasons for that are:
With the above said, what you want to do on the payer side, is to ask the payer's edge node (which might be a completely different edge node than the payee's) for a quote in the payment asset over the given satoshi amount in the invoice. And you are correct that So perhaps what we want to add to
You can ignore that warning, we should actually remove that. |
@guggero Thanks very much for your response and yes, a quote parameter to I am also curious about your thought on using the invoice itself to pass data through custom records, perhaps something for |
The quote is something that's local to the two participants (the wallet end user and the edge node). It's basically a secret agreement on an exchange rate. But I don't think it should be a standard. Because perhaps the recipient doesn't want anyone to know, they're receiving an asset instead of satoshis? Or perhaps it's an asset that only the wallet end user and edge node even know, so the information would be useless for any outside participant. |
@guggero At the highest level, the goal is to provide the payer with the best information possible about the quote associated with an invoice they are about to pay. This applies to any case where the accounting is done in the taproot asset first, lending to user's familiarity with dealing in a stablecoin's currency units or validation on the quoted rate (or best estimate from the source) prior to paying the invoice. |
But that's the thing: The quote associated with the invoice is only relevant to the recipient and its counter party (the edge node). |
Understood, thank you very much! |
This will be fixed by #1253. |
Is your feature request related to a problem? Please describe.
General User Story
As a payer of a taproot asset invoice, I can glean the satoshi-denominated value by decoding the invoice however I'm not sure what the taproot asset-denominated value that I'm paying is.
Description
Neither node is using the
taproot-assets.experimental.rfq.skipacceptquotepricecheck=true
config line (although have tried with as well), but is still using the mock price oracle in the example outlined below:An initial quote is returned by the payee at the time of creating the invoice, and returned with the cli output like this:
After the invoice is created (and prior to it being paid), despite referring properly to the peer ID, the quote is only findable from the RFQ service of the payee node:
Payee Node
We see that the payee retains quote info...
Payer Node
... However, the payer isn't able to learn anything about it yet.
Proof that identity pubkey is
03727c22c137eaff8f13efb3a9b3ed5327c1085d6eb254553fdeb73926aba3c798
:RFQ lookup:
Assuming that only some form-factor of the
payment_request
is communicated between the payee and payer, I'm looking to learn more about the quote earlier on in the workflow with the ultimate goal of going from invoice to taproot asset denomination as the payer (taproot asset invoice --> decoded taproot asset invoice --> taproot-asset denominated value of invoice
).Describe the solution you'd like
Confirmation that the real workflow (using a real price oracle) is testable through a configured mock oracle
Information about the ideal way a payer learns of the final amount charged, denominated in the taproot asset
Information about the earliest time an accepted taproot asset-denominated quote for an invoice can be known be the payer of that invoice
Potentially (based on responses to questions above) encoding quote information in taproot asset invoices as a custom record
Potential RFQ service addition for retaining quotes (based on responses to questions above)
Potentially (based on responses to questions above) updates to
tapchannelrpc.SendPayment
to reject payment based on the final quote/value denominated in the taproot assetDescribe alternatives you've considered
Encoding quote information in taproot asset invoices
Additional updates in
tapchannelrpc.SendPayment
to be able to confirm acceptance of the taproot asset-denominated amountAdditional context
Using 2 LITD's of
v0.13.993-experimental
- one from source and one running out Docker via Polar.The configurations of both node's specify the same fixed rate to use for the mock oracle:
taproot-assets.experimental.rfq.mockoraclesatsperasset=10
When the payee generates the invoice, the payer node (whom the channel is open with), receives a warning log:
The text was updated successfully, but these errors were encountered: