Je viens de lancer mon noeud Squid: https://gdev-squid.axiom-team.fr
J’y ai activé les subscriptions. Toutes les queries (hors queries *Connection
réservés à la pagination) peuvent donc être transformé tel quel en subscription, simplement en changeant le mot clé de début de requête query
par subscription
, exemple:
subscription eventsTransfer {
events(limit: 10, orderBy: block_height_DESC, where: {pallet_eq: "Balances", name_eq: "Transfer"}) {
id
name
pallet
args
block {
height
}
}
}
Pour souscrire aux dernière transactions émises sur le réseau.
Chose fun, lorsque votre squid se synchronise la première fois à votre chaine, vous pouvez suivre en live son état en souscrivant à une table au choix.
Je travail sur la MR !1 pour homogénéiser l’environnement de dev/prod.
Je met ici ma conf nginx pour d’une part rediriger /
vers /graphql
, et laisser passer les connections websocket:
upstream gdev-squid.axiom-team.fr {
server 10.10.10.107:10020;
}
[...]
location / {
proxy_pass http://gdev-squid.axiom-team.fr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
# for websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Exemple de requête paginé, pour voir toutes les transactions émises et reçus de mon compte:
query history {
transfersConnection(where: {from: {id_eq: "5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn"}, OR: {to: {id_eq: "5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn"}}}, orderBy: blockNumber_DESC_NULLS_LAST, after: null, first: 10) {
pageInfo {
endCursor
hasNextPage
}
edges {
node {
amount
id
timestamp
from {
id
identity {
name
}
}
to {
id
identity {
name
}
}
}
}
}
}
Pagination graphql classique, vous renseignez la valeur de endCursor
à after
pour passer de page en page. La subtilité c’est qu’ils semblent avoir mixé leur convention de format de curseur avec la pagination par offset, les curseurs étant des nombres entier incrémentales. Plutôt étrange.
Première issue: