Поймите волны типа 7 (обмен) транзакций - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужна помощь, чтобы понять структуру данных типа 7 tx. Например, я получаю это из API REST при работе с типом 7.

{
    "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 имеет идентификатор актива, но в некоторых других txs у меня было заполнено поле priceAsset, а amountAsset было пустым.

Можете ли вы пролить немного света?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Пара активов должна состоять из двух разных активов. Например, вы не можете создать обмен между WAVES и WAVES.

Первый актив в такой паре называется «сумма актива», а второй называется «ценовой актив». Таким образом, ордер на покупку означает «Я хочу купить монеты актива на сумму X за монеты актива с ценой Y». И, соответственно, ордер на продажу означает «Я хочу продать монеты актива на сумму X за монеты актива с ценой Y».

На бирже транзакция «order1» всегда имеет тип «buy», а «order2» - типа "продать".

Вы можете увидеть пример транзакций и их JSON:

  1. ВОЛНЫ в качестве суммы актива: https://wavesexplorer.com/tx/76JYndC985gvVKF2R5ip9gAuKvfd6zYSqjcyByFiCKim
  2. Волны в качестве ценового актива: https://wavesexplorer.com/tx/C1G3ohpfHntLWp33pSRU6kzSWrqEigGp2tGCCa7SjBKD
0 голосов
/ 25 февраля 2020

Если вы посмотрите на тх, вы увидите, что у order1 есть тип заявки buy. Это означает, что вы покупаете один актив, в нашем случае «HKJK3zswXJLbsgJ3pQNiYVNu6svy4SM9zucB8YEJFXqt», и продаете другой актив, в нашем случае «ноль».

Мы не посылаем и не получаем волны здесь, мы меняем волны для другого актива. В вашем случае вы являетесь покупателем. Поскольку вы разместили заказ с типом покупки.

Актив NULL означает, что вы говорите о «ВОЛНАХ». Волны не являются активом и, следуя им, не имеют актива. Пример, поясняющий это немного глубже:

  1. В паре WAVES / BT C, BT C - это ценовой актив, и поэтому totalasset = 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/

...