跳转到主要内容
Kind: 2024 响应是对报价采取行动的事件。与报价一样,响应内容是端到端加密的(NIP-44)——只有会话中的双方可以读取。

会话关闭

一个报价会话可以通过两种方式关闭:拒绝(由任一方发起),或双方接受(双方都接受)。"s""z" 标签用于跟踪会话的状态:
  • s —— 响应状态:"accepted""rejected"
  • z —— 会话最终化状态:"pending"(等待另一方)或 "complete"(会话已关闭)。
情景sz
已拒绝rejectedcomplete
第一方接受acceptedpending
第二方接受(最终关闭)acceptedcomplete
第二次接受只能针对另一方已经设置了 ["s", "accepted"] 的已签名事件发布。一旦双方都已接受且会话被标记为 "complete",则该交易视为已关闭。 内容: 以下是加密前的明文 JSON 内容。加密后的密文放入事件的 content 字段中。
{
  "company": "<string - Company name (set by app layer)>",
  "contact": "<string - Contact information>",
  "status": "<string - 'accepted' or 'rejected'>",
  "message": "<string - Quote message or note>",
  "meta": "<object - Arbitrary metadata JSON object (Optional)>",
  "quote": "<object - Embedded quote details (type: Quote)>",
  "reason": "<string - Reserved for future use>",
  "schema_version": "<string - listing schema version"
}
响应标签
[
  // Inherited Tags from replied-to quote
  ["n", "material_no"],
  ["m", "manufacturer name"],
  ["y", "supply or demand"],
  ["c", "poster_name"],
  ["b", "any"],
  ["i", "internal_no"],
  ["c", "any"],
  ["t", "any"],

  // Reply Event tags
  ["t", "thread_id"],
  ["r", "wss://domain.seminode.com/inbox"],        // My reply inbox node URL
  ["p", "recipient_pubkey"],                       // The recipient pubkey
  ["e", "root_listing_event_id", "", "root"],      // The listing event ID
  ["u", "user_pubkey1", "user_pubkey2"],           // Optional, the user pubkey

  // Response Only Tags
  ["s", "accepted", "rejected"],
  ["z", "complete", "pending"]
]
  • 响应应当复制挂单的标签。
  • 响应必须将接收方 "p" 标签设置为报价事件作者的公钥。
  • 响应必须将状态 "s" 标签设置为 acceptedrejected
  • 响应必须将状态 "z" 标签设置为 pending(如果它是第一个接受者),或 complete(如果是拒绝,或是接受另一个已接受的响应)。
  • 响应必须发布到挂单 "r" 标签指定的收件节点 URL,以及发送方自己的收件节点。