0

我需要一些帮助来尝试理解 7 型 tx 数据结构。例如,在处理类型 7 tx 时,我从 REST api 得到这个。

{
    "senderPublicKey": "9cpfKN9suPNvfeUNphzxXMjcnn974eme8ZhWUjaktzU5",
    "amount": 2500000000,
    "fee": 300000,
    "type": 7,
    "version": 2,
    "sellMatcherFee": 300000,
    "sender": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu",
    "feeAssetId": null,
    "proofs": ["3r7DJ7HyAePryf8334yMSoMccWwVcGqKZtB5GkQLLpwfxKqiMbRnXjzEtJXR3trPTwMWv9YN19VSBcibrDe4o41U"],
    "price": 16000,
    "id": "9h23sgpwoZHRXbFTJacK8saf8hqvmfYBuRc7De15Xzbg",
    "order2": {
      "version": 2,
      "id": "6QCudpHuJsQKw3fzNEzowyomJb8t6R38CX42j9Hr4thL",
      "sender": "3PAfzcstFHooUexfvZ77S4yGw3ftHWK47v6",
      "senderPublicKey": "EoSgBYUz7Dn2NyKeme9TC1mvTLgG2Z4E9QUsmyFoJbs1",
      "matcherPublicKey": "9cpfKN9suPNvfeUNphzxXMjcnn974eme8ZhWUjaktzU5",
      "assetPair": {
        "amountAsset": "HKJK3zswXJLbsgJ3pQNiYVNu6svy4SM9zucB8YEJFXqt",
        "priceAsset": null
      },
      "orderType": "sell",
      "amount": 2500000000,
      "price": 16000,
      "timestamp": 1582473059417,
      "expiration": 1582476659415,
      "matcherFee": 300000,
      "signature": "2wZ3uNPtnUec5HeobuJgok44foh3o195a8EYSi1YdKyakeuUJcDGXMMDM8QfqtLpFep1UP4MR2kRC2WQ9uzsgxNq",
      "proofs": ["2wZ3uNPtnUec5HeobuJgok44foh3o195a8EYSi1YdKyakeuUJcDGXMMDM8QfqtLpFep1UP4MR2kRC2WQ9uzsgxNq"]
    },
    "order1": {
      "version": 2,
      "id": "GfEhMC8s67GkWiTcJSo15UL1Y5FHY5GZzuy1JSaBeTZB",
      "sender": "3P9FCD1DBeaVTtpuXQAa57LPcqWdZAw7uue",
      "senderPublicKey": "svTLkS45BVUqwQLrCe1M4zMzk3PyDWtmWdxfxiCkcRt",
      "matcherPublicKey": "9cpfKN9suPNvfeUNphzxXMjcnn974eme8ZhWUjaktzU5",
      "assetPair": {
        "amountAsset": "HKJK3zswXJLbsgJ3pQNiYVNu6svy4SM9zucB8YEJFXqt",
        "priceAsset": null
      },
      "orderType": "buy",
      "amount": 2500000000,
      "price": 16000,
      "timestamp": 1582473193433,
      "expiration": 1584978793432,
      "matcherFee": 300000,
      "signature": "5zg1Hn2iv6H4BAkDCRngWXdCFMoiBryFvzyGX15QhSfwSwW5SctRPT82BHW7BCZy9ecfrPuP8nTmQPAgkByM7FLN",
      "proofs": ["5zg1Hn2iv6H4BAkDCRngWXdCFMoiBryFvzyGX15QhSfwSwW5SctRPT82BHW7BCZy9ecfrPuP8nTmQPAgkByM7FLN"]
    },
    "buyMatcherFee": 300000,
    "timestamp": 1582473196322,
    "height": 1943003
  }

假设这3P9FCD1DBeaVTtpuXQAa57LPcqWdZAw7uue是我的地址钱包,我的问题是:

  • 我怎么知道这个 tx 是发送 WAVES 还是接收 WAVES?
  • order2将始终是 SELL 类型的订单?
  • 在 order1 和 order2 中,该amountAsset字段都有一个资产 ID,但在其他一些 txs 中,我priceAsset填充了该字段并且amountAsset为空。

你能点亮一些灯吗?

4

2 回答 2

0

资产对应由两种不同的资产组成。例如,您不能在 WAVES 和 WAVES 之间创建交换。

这样一对中的第一个资产称为“金额资产”,第二个称为“价格资产”。因此,买入订单意味着“我想以 Y 价格的资产硬币购买 X 数量的资产硬币”。因此,卖出订单意味着“我想以 Y 价格的资产硬币出售 X 数量的资产硬币”。

在 Exchange 中,交易“order1”始终为“buy”类型,“order2”为“sell”类型。

您可以查看事务及其 JSON 的示例:

  1. WAVES 作为数量资产:https ://wavesexplorer.com/tx/76JYndC985gvVKF2R5ip9gAuKvfd6zYSqjcyByFiCKim
  2. WAVES 作为价格资产:https ://wavesexplorer.com/tx/C1G3ohpfHntLWp33pSRU6kzSWrqEigGp2tGCCa7SjBKD
于 2020-02-25T15:28:45.767 回答
0

如果您查看 tx,您会看到 order1 的 ordertype 为 buy。这意味着您正在购买一种资产,在我们的例子中是“HKJK3zswXJLbsgJ3pQNiYVNu6svy4SM9zucB8YEJFXqt”,而在我们的例子中是“null”。

我们不是在这里发送或接收波,我们正在将波交换为另一种资产。在您的情况下,您是买方。由于您使用购买类型发布了订单。

资产为空,意味着您正在谈论“WAVES”。Waves 不是资产,跟随它没有资产 ID。一个更深入地解释这一点的例子:

  1. 在 WAVES/BTC 对中,BTC 是价格资产,因此 amountasset = null
  2. 在 TN/WAVES 对中,WAVES 是价格资产,因此 priceasset = null

该文档提供了所有这些见解。它还包含交易中每个部分中每个字段的值的概述。

来源:https ://docs.waves.exchange/en/waves-matcher/matcher-api#entities

检查交易的另一个有用链接:https ://docs.wavesplatform.com/en/blockchain/binary-format/transaction-binary-format/

于 2020-02-25T07:17:38.880 回答