mirror of
https://github.com/oceanprotocol/docs.git
synced 2024-11-01 15:55:34 +01:00
245 lines
6.0 KiB
Markdown
245 lines
6.0 KiB
Markdown
---
|
|
description: 'Discover the World of NFTs: Retrieving a List of Fixed-rate exchanges'
|
|
---
|
|
|
|
# Get fixed-rate exchanges
|
|
|
|
Having gained knowledge about fetching lists of data NFTs and datatokens and extracting specific information about each, let's now explore the process of retrieving the information of fixed-rate exchanges. A fixed-rate exchange refers to a mechanism where data assets can be traded at a predetermined rate or price. These exchanges offer stability and predictability in data transactions, enabling users to securely and reliably exchange data assets based on fixed rates. If you need a refresher on fixed-rate exchanges, visit the [asset pricing](../contracts/pricing-schemas.md#fixed-pricing) page.
|
|
|
|
|
|
|
|
_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](broken-reference)_._
|
|
|
|
{% tabs %}
|
|
{% tab title="Javascript" %}
|
|
The javascript below can be used to run the query and fetch a list of fixed-rate exchanges. If you wish to change the network, replace the variable's value `network` as needed. 
|
|
|
|
```runkit nodeVersion="18.x.x"
|
|
var axios = require('axios');
|
|
|
|
const query = `{
|
|
fixedRateExchanges(skip:0, first:2, subgraphError:deny){
|
|
id
|
|
contract
|
|
exchangeId
|
|
owner{id}
|
|
datatoken{
|
|
id
|
|
name
|
|
symbol
|
|
}
|
|
price
|
|
datatokenBalance
|
|
active
|
|
totalSwapValue
|
|
swaps(skip:0, first:1){
|
|
tx
|
|
by {
|
|
id
|
|
}
|
|
baseTokenAmount
|
|
dataTokenAmount
|
|
createdTimestamp
|
|
}
|
|
updates(skip:0, first:1){
|
|
oldPrice
|
|
newPrice
|
|
newActive
|
|
createdTimestamp
|
|
tx
|
|
}
|
|
}
|
|
}`
|
|
|
|
const network = "mainnet"
|
|
var config = {
|
|
method: 'post',
|
|
url: `https://v4.subgraph.${network}.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph`,
|
|
headers: { "Content-Type": "application/json" },
|
|
data: JSON.stringify({ "query": query })
|
|
};
|
|
|
|
axios(config)
|
|
.then(function (response) {
|
|
let result = JSON.stringify(response.data)
|
|
console.log(result)
|
|
})
|
|
.catch(function (error) {
|
|
console.log(error);
|
|
});
|
|
|
|
```
|
|
{% endtab %}
|
|
|
|
{% tab title="Python" %}
|
|
The Python script below can be used to run the query and retrieve a list of fixed-rate exchanges. If you wish to change the network, then replace the value of the variable `base_url` as needed.
|
|
|
|
**Create script**
|
|
|
|
{% code title="list_fixed_rate_exchanges.py" %}
|
|
```python
|
|
import requests
|
|
import json
|
|
|
|
|
|
query = """
|
|
{
|
|
fixedRateExchanges(skip:0, first:2, subgraphError:deny){
|
|
id
|
|
contract
|
|
exchangeId
|
|
owner{id}
|
|
datatoken{
|
|
id
|
|
name
|
|
symbol
|
|
}
|
|
price
|
|
datatokenBalance
|
|
active
|
|
totalSwapValue
|
|
swaps(skip:0, first:1){
|
|
tx
|
|
by {
|
|
id
|
|
}
|
|
baseTokenAmount
|
|
dataTokenAmount
|
|
createdTimestamp
|
|
}
|
|
updates(skip:0, first:1){
|
|
oldPrice
|
|
newPrice
|
|
newActive
|
|
createdTimestamp
|
|
tx
|
|
}
|
|
}
|
|
}"""
|
|
|
|
|
|
base_url = "https://v4.subgraph.mainnet.oceanprotocol.com"
|
|
route = "/subgraphs/name/oceanprotocol/ocean-subgraph"
|
|
|
|
url = base_url + route
|
|
|
|
headers = {"Content-Type": "application/json"}
|
|
payload = json.dumps({"query": query})
|
|
response = requests.request("POST", url, headers=headers, data=payload)
|
|
result = json.loads(response.text)
|
|
|
|
print(json.dumps(result, indent=4, sort_keys=True))
|
|
```
|
|
{% endcode %}
|
|
|
|
**Execute script**
|
|
|
|
```
|
|
python list_fixed_rate_exchanges.py
|
|
```
|
|
{% endtab %}
|
|
|
|
{% tab title="Query" %}
|
|
Copy the query to fetch a list of fixed-rate exchanges in the Ocean Subgraph [GraphiQL interface](https://v4.subgraph.mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql). 
|
|
|
|
```
|
|
{
|
|
fixedRateExchanges(skip:0, first:2, subgraphError:deny){
|
|
id
|
|
contract
|
|
exchangeId
|
|
owner{id}
|
|
datatoken{
|
|
id
|
|
name
|
|
symbol
|
|
}
|
|
price
|
|
datatokenBalance
|
|
active
|
|
totalSwapValue
|
|
swaps(skip:0, first:1){
|
|
tx
|
|
by {
|
|
id
|
|
}
|
|
baseTokenAmount
|
|
dataTokenAmount
|
|
createdTimestamp
|
|
}
|
|
updates(skip:0, first:1){
|
|
oldPrice
|
|
newPrice
|
|
newActive
|
|
createdTimestamp
|
|
tx
|
|
}
|
|
}
|
|
}
|
|
```
|
|
{% endtab %}
|
|
{% endtabs %}
|
|
|
|
<details>
|
|
|
|
<summary>Sample response</summary>
|
|
|
|
```json
|
|
{
|
|
"data": {
|
|
"fixedRateExchanges": [
|
|
{
|
|
"active": true,
|
|
"contract": "0xfa48673a7c36a2a768f89ac1ee8c355d5c367b02",
|
|
"datatoken": {
|
|
"id": "0x9b39a17cc72c8be4813d890172eff746470994ac",
|
|
"name": "Delightful Pelican Token",
|
|
"symbol": "DELPEL-79"
|
|
},
|
|
"datatokenBalance": "0",
|
|
"exchangeId": "0x06284c39b48afe5f01a04d56f1aae45dbb29793b190ee11e93a4a77215383d44",
|
|
"id": "0xfa48673a7c36a2a768f89ac1ee8c355d5c367b02-0x06284c39b48afe5f01a04d56f1aae45dbb29793b190ee11e93a4a77215383d44",
|
|
"owner": {
|
|
"id": "0x03ef3f422d429bcbd4ee5f77da2917a699f237ed"
|
|
},
|
|
"price": "33",
|
|
"swaps": [
|
|
{
|
|
"baseTokenAmount": "33.033",
|
|
"by": {
|
|
"id": "0x9b39a17cc72c8be4813d890172eff746470994ac"
|
|
},
|
|
"createdTimestamp": 1656563684,
|
|
"dataTokenAmount": "1",
|
|
"tx": "0x0b55482f69169c103563062e109f9d71afa01d18f201c425b24b1c74d3c282a3"
|
|
}
|
|
],
|
|
"totalSwapValue": "0",
|
|
"updates": []
|
|
},
|
|
{
|
|
"active": true,
|
|
"contract": "0xfa48673a7c36a2a768f89ac1ee8c355d5c367b02",
|
|
"datatoken": {
|
|
"id": "0x2cf074e36a802241f2f8ddb35f4a4557b8f1179b",
|
|
"name": "Arcadian Eel Token",
|
|
"symbol": "ARCEEL-17"
|
|
},
|
|
"datatokenBalance": "0",
|
|
"exchangeId": "0x2719862ebc4ed253f09088c878e00ef8ee2a792e1c5c765fac35dc18d7ef4deb",
|
|
"id": "0xfa48673a7c36a2a768f89ac1ee8c355d5c367b02-0x2719862ebc4ed253f09088c878e00ef8ee2a792e1c5c765fac35dc18d7ef4deb",
|
|
"owner": {
|
|
"id": "0x87b5606fba13529e1812319d25c6c2cd5c3f3cbc"
|
|
},
|
|
"price": "35",
|
|
"swaps": [],
|
|
"totalSwapValue": "0",
|
|
"updates": []
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
</details>
|