Reputation: 638
I need some help trying to understand the type 7 tx data structure. For example I get this from the REST api when dealing with a type 7 tx.
{
"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
}
Hypotetically, considering this 3P9FCD1DBeaVTtpuXQAa57LPcqWdZAw7uue
as my address wallet, my questions are:
order2
will always be a SELL type order?amountAsset
field has an asset id, but in some other txs I had the priceAsset
field populated and amountAsset
was empty.Can you shed some lights?
Upvotes: 0
Views: 134
Reputation: 58
An asset pair should consist of two different assets. For example, you cannot create an exchange between WAVES and WAVES.
The first asset in such a pair is called "amount asset", and the second is called "price asset". Thus, a Buy order means "I want to buy X amount asset coins for Y price asset coins." And, accordingly, a Sell order means "I want to sell X amount asset coins for Y price asset coins."
In Exchange, transaction "order1" is always of type "buy", and "order2" is of type "sell".
You can see example of transactions and their JSON:
Upvotes: 1
Reputation: 101
If you look in the tx, you see that order1 has ordertype buy. This means you are buying one asset, in our case "HKJK3zswXJLbsgJ3pQNiYVNu6svy4SM9zucB8YEJFXqt" and selling in another asset, in our case "null".
We are not sending out or receiving waves here, we are swapping waves for another asset. In your case you are the buyer. Since you posted the order with type buy.
The asset null, means that you are talking about 'WAVES'. Waves is no asset and by following it doesn't have an assetId. An example to explain this a bit deeper:
The documentation provides all these insights. It also contains an overview from the value from each field in each part from the transaction.
Source: https://docs.waves.exchange/en/waves-matcher/matcher-api#entities
Another usefull link to check out in regards to transactions: https://docs.wavesplatform.com/en/blockchain/binary-format/transaction-binary-format/
Upvotes: 1