Repository navigation
Synced to flipcash2-protobuf-api@53316c0e,
picking up #165.
activity.v1, intent.v1 and messaging.v1 moved.
This release lets the receiver of a DM's opening payment send it back. Nothing existing changed
on the wire. The source breaks are three new oneof cases, each appended after the existing ones.
Breaking
activity.v1.DirectlySentCryptoNotificationMetadataandReceivedCryptoNotificationMetadata
each gainreturned_payment(field 5) in their oneof, andintent.v1.ChatMetadata's oneof
gainsreturn_payment(field 7). An exhaustiveswitchover the Swift oneof, or awhenover
Kotlin's*Casewithout anelse, needs a case for each before it compiles. Code that reads
these oneofs throughhas*()checks compiles unchanged and drops the new case silently.
Added
messaging.v1.Messaging.GetCashMessageReturnStatus, with its request and response.
ResultisOK,DENIED,NOT_FOUND(0–2) andStatusisUNKNOWN,AVAILABLE,
RETURNED(0–2).RETURNEDnever changes again, so a client can stop polling once it sees
it.payment_intent_idis set only onOK, and only for the message'ssingle_receiver.messaging.v1.CashContent.payment_return(field 7), of typeCashContent.Returnwith
independentofferandreturn_of.Return.Offeris empty: its presence is the offer.
Today only the cash message that opened a DM carries one. A message withreturn_ofset
returns the payment of the message it names, so a client that sees it can stop offering a
return on that message.intent.v1.ChatMetadata.ReturnPayment(message_id). The return is aSendPublicPayment
from the original message'ssingle_receiverback to its sender, in the same DM, for the
same currency, mint and native amount. Its intent ID must be the server-issued
payment_intent_idfromGetCashMessageReturnStatus, not one the client generates. The
server refuses any other ID, which is what keeps a payment returnable once across retries
and devices. Treat that ID as private until the payment is made: anyone who uses it first
blocks the return.activity.v1.ReturnedPayment(chat_id,message_id), naming the DM and the cash message
whose payment was returned. The server doesn't update it afterwards, so the message may since
have been deleted.
Unchanged
Nothing was renumbered. No service, RPC, field or enum case was removed or changed type.