Comment regarder le statut de transaction avec Eztz après eztz.contract.send
-
-
Dupliquerpossible de [Commentpuis-je comprendrepourquoi unetransaction a échoué?] (Https://tezos.stackexchange.com/questions/172/how-can-i-understand-Phy-a-Transaction-has-fadiod)Possible duplicate of [How can I understand why a transaction has failed?](https://tezos.stackexchange.com/questions/172/how-can-i-understand-why-a-transaction-has-failed)
- 2
- 2019-02-06
- Ezy
-
Jen'aipas debloc,car Eztz lui-mêmeprovoque la réception d'unbloc à l'intérieur de l'opération d'appelI do not have a block, because eztz itself causes a block to be received inside the call operation
- 0
- 2019-02-06
- Михаил Магомедов
-
Désolé,que voulez-vous dire que EzTZ "provoque la réception d'unbloc à l'intérieur de l'opération d'appel"?Veuillez vousfournirplus de détails/infos sur ce que vousfaiteset quelest le statut de latransaction afin quenous comprenons clairement le contexte.Merci!sorry what do you mean that eztz "causes a block to be received inside the call operation" ? Please can you provide more details/infos about what you are doing and what is the status of the transaction so we understand clearly the context. Thank you!
- 0
- 2019-02-06
- Ezy
-
Pourrait-il être que l'ID debloc (EZTZ.RPC.GETHead ()) changera sije le reçois après avoir appelé laméthode Eztz.Contract.Send?Could it be that the block id(eztz.rpc.getHead()) will change if I receive it after calling the eztz.contract.send method?
- 0
- 2019-02-06
- Михаил Магомедов
-
Celan'apas de senspourmoi ce que vous dites.Pouvez-vous collerici lemessage que Eztz vous retourne?Ce seraplus simple de cettefaçon.Pouvez-voustrouver latransactionen TZScan?it does not make sense to me what you are saying. Can you paste here the message that eztz returns you ? it will be simpler that way. Can you find the transaction in TzScan ?
- 0
- 2019-02-06
- Ezy
-
J'utiliseeztz.contract.sendet ilne me renvoie que le hachage detransaction,ootc8mmz7dg1recxlpitan3qeub7unfuh9r8kzxefbzizcypbfet comment respectez le statut detransaction avec EzTz.Jene connaispas l'identifiant debloci use eztz.contract.send and he return me only transaction hash, ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf and how watch transaction status with eztz. I dont know block id
- 0
- 2019-02-06
- Михаил Магомедов
-
Allons discuter à laplacelet's go to chat instead
- 0
- 2019-02-06
- Ezy
-
[Continuez cette discussion dans la discussion] (https://chat.stackexchange.com/rooms/89334/discussion-between-ezy-and-et--).Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/89334/discussion-between-ezy-and--).
- 0
- 2019-02-06
- Ezy
-
3 réponses
- votes
-
- 2019-02-13
Il y aen fait unenouvellefonction avec Eztz qui lefaitmaintenant:
EZTZ.RPC.AWAITOPERATION ( OPHASH,//L'opération Hash à regarder Intervalle,//Facultatif - Tempsentre les chèques,par défaut à 30 secondes Timeout//Facultatif - Délai d'expiration -finira après cela,par défaut à 180 secondes ) .Ce (fonction (blockhash) { //va résoudre avec leblockhash sitrouvé console.log ("trouvé dans lebloc" +blockhash) }). attrape (fonction () { //Rejeter à l'heure };
Utiliser les valeurspar défaut semblefonctionner correctementpourmoi (attendenviron 3blocs).
There's actually a new function with eztz that does this now:
eztz.rpc.awaitOperation( opHash, //The operation hash to watch interval, //Optional - Time between checks, defaults to 30 seconds timeout//Optional - Timeout - will end after this, defaults to 180 seconds ).then(function(blockHash){ //Will resolve with the blockHash if found console.log("Found in block " + blockHash) }).catch(function(){ //Reject on time out };
Using the defaults seem to work fine for me (waits approx 3 blocks).
-
- 2019-02-06
Jepense que vouspourriezenvoyer un appel RPCbrut à l'aide d'Eztz:
eztz.node.query("/chains/main/blocks/head/operations").then(function(res){ console.log(res); }).catch(function(e){});
/chains/main/blocks/head/operations
vous donne une liste d'opérationsincluses dans le dernierbloc également appeléhead
. Vouspouveztrouver uneexplication détaillée de cepoint determinal RPC ici .La solution complètepourrait donc être que vous «sondez» cepointfinal dans un cycle seinterval,jusqu'à ce que voustrouviez un reçupour votre opération,dans un délai déterminé.
E.g. Dans laprochaine
1 minute
,appelez lepoint d'extrémité RPC,et si un reçu correspondant àmonoperation id
esttrouvé,nouspouvons conclure que l'opération a étéincluse avec succès.alternative
tezos-client
serait:tezos-client wait for <operation hash> to be included
I think you could send a raw rpc call using eztz:
eztz.node.query("/chains/main/blocks/head/operations").then(function(res){ console.log(res); }).catch(function(e){});
/chains/main/blocks/head/operations
Gives you a list of operations included in the latest block also known ashead
. You can find a detailed explanation of this RPC endpoint here.So the full solution could be, that you 'poll' this endpoint in a setInterval cycle, until you find a receipt for your operation, within a certain time frame.
E.g. in the next
1 minute
, call the RPC endpoint, and if a receipt matching myoperation id
is found, we can conclude that the operation was included successfully.Alternative
tezos-client
command would be:tezos-client wait for <operation hash> to be included
-
Je crois que cette solutionn'estpas robusteen général car vousn'êtespasgaranti que l'opération sera dans le dernierbloc.Celapourrait être dans unbloc ultérieuret parce que lenœud completn'apas l'indice detransaction,vouspouvez vous retrouverincapable d'obtenir lesinformations appropriées de cettefaçon.Je crois que OP devrait construire saproprebase de données TX ou s'appuyer sur unexistant comme Tzscan ou le Conseil.I believe this solution is not robust in general because you are not guaranteed that the operation will be in the latest block. It could be in a subsequent block and because the full node does not have the transaction index you may find yourself unable to actually get the proper info that way. I believe OP should either build his own tx database or rely on an existing one like TzScan or Conseil.
- 0
- 2019-02-06
- Ezy
-
Jene saispas commentexactement `Tezos-Client`»,mais l'utilisation de l'API de Tzscanest une solution.Maisje pense que si vous commencez à scruter,avant d'utiliser EzTZpourinjecter une opération,vous attraperez certainement lebloc où l'opération seraincluse,àmoins que letemps de cuissonne soittrop rapide,ou si vosfrais sontfaibleset que votre opérationne seratout simplementpaspossible.Inclus àtoutmomentbientôt - ce queje nepensepas vraiment arriver.I'm not sure how exactly has `tezos-client` implemented this, but using tzscan's api is one way. But i think if you start polling, before using eztz to inject an operation, you will certainly catch the block where the operation will be included, unless the baking time is too quick, or your fees are low and the operation simply won't be included anytime soon - which i don't think really happens.
- 0
- 2019-02-06
- Matej maht0rz Šima
-
Appelez également Eztz.Contract.send,entraîne unmessagepostal sur [cepoint d'extrémité RPC] (http://tezos.gitlab.io/mainnet/api/rpc.html#post-Injection-Operation).Dansma compréhension,utiliser RPC RAW,votremeilleurpariest de regarder lesprochainsblocs/nouvellestêtes,pour rechercher votreidentifiant defonctionnement.Also calling eztz.contract.send, results into a POST call to [this rpc endpoint](http://tezos.gitlab.io/mainnet/api/rpc.html#post-injection-operation). In my understanding, using raw RPC, your best bet is to look at the upcoming blocks / new heads, to look for your operation id.
- 0
- 2019-02-06
- Matej maht0rz Šima
-
Le client Tezosbloquejusqu'à ce qu'il ait l'opération acceptée ouexpirée.Vousne voulezpas que l'application OP écritblocageet interrogation àintervalle rapiden'estpas unemanière robuste.Idéalement,vous souhaitez recevoir unenotification que le TX a été acceptémais Eztzne supportepas queje crois.Donc,vous devez demander à unindex sur unefréquenceplus lente ou vous devez utiliser unnœud local quin'estpasbon si vous souhaitezfaire une applicationmobile.Tezos client blocks until it has the operation accepted or times out. You do not want the app OP is writing blocking and polling at quick interval is not a robust way. Ideally you would like to receive a notification that the tx was accepted but eztz does not support that i believe. So either you need to ask an index on a slower frequency or you need to use a local node which is not good if you want to do a mobile app
- 1
- 2019-02-06
- Ezy
-
Dépend de ce que l'auteur veut atteindre,s'il cherche à obtenir denouvelles valeurs de stockagepour le contrat après l'exécution d'unpoint d'entrée - EZTZfournit uneméthodepour regarder également le stockage du contrat.Depends on what the author wants to achieve, if he's looking to get new storage values for the contract after an entry point was executed - eztz provides a method to watch the contract's storage as well.
- 1
- 2019-02-06
- Matej maht0rz Šima
-
Mercifacile!"Aussi appelereztz.contract.send,entraîne unmessagepostal à cepoint d'extrémité RPC. Dansma compréhension,utilisez RPC RAW,votremeilleurpariest de regarder lesprochainsblocs/nouvellestêtes,pour rechercher votreidentifiant defonctionnement" Ilestbonne réponse. Je demanderai une unité de contrôleet s'iln'y apas là,je vais regarder lesblocsprécédents!Easy thanks! "Also calling eztz.contract.send, results into a POST call to this rpc endpoint. In my understanding, using raw RPC, your best bet is to look at the upcoming blocks / new heads, to look for your operation id" it is good answer. I will request a checking unit and if there isn’t there, I’ll watch the previous blocks!
- 1
- 2019-02-07
- Михаил Магомедов
-
Sondage Les opérations de latête actuelle sont unbonmoyen,vouspouvez sonderpour dire 2-3minutes à l'aide de GetIntervalet du délai d'attente après avoir utilisé despromesses ASYNC.Vous seriezpréférable de commencer à voter avant ou d'enregistrer le hachage/niveau de latête actuelle.Vous auriez égalementbesoin de vous assurer que le codeestincluspourgérer correctement lesniveaux deblocsignorés.J'ajouterai l'inclusion "attendre l'inclusion OP" dans Eztz souspeuPolling the operations of the current head is a good way, you can poll for say 2-3 minutes using getInterval and timeout after that using async promises. You would be best to start polling before, or recording the current head hash/level. You would also need to ensure code is included to correctly handle skipped block levels. I'll be adding the "wait for op inclusion" into eztz shortly
- 0
- 2019-02-07
- Stephen Andrews
-
- 2019-02-06
Donc,votretransaction a été affichée dans Alphanet. Si vous recherchez une opération
ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf
in tzscan (sousalphanet
) Ilest affiché iciAvec le hachage detransactionet hachagebloc BMWZp5qBho1V62bb9necMuSuEaV5vm1G4Zu7mEQ7y8eaATHAfuB qui contient votretransaction,vouspouvez suivre les étapesicipour Obtenez les détails sur le résultat
Je recommanderais de suivre les étapesindiquées dans cet autre Répondre pour obtenir les détails souhaités.
Si vous voulezfaire des choses àpartir du code,vous devriezpouvoir appeler dans l'API TZScan via
https://api6.tzscan.io/v3/operation/oogKXTkRmJLBmnBQgP2My4QKRHAGLez96krSFshhg51hA8GEMVp
Cependant,il semble que cet appelne fonctionnepaspour l'alphant. J'ai demandé dans ce question si c'est quelque chose à attendre,maispour le Mainnet,il devrait être Ok.
[modifier] En réalité,la réponse à l'autre questionest que vous devez simplement utiliser un autre serveurpour la requête d'Alphanet. Avec votre ophash,vouspouvez obtenir lesinformations debloc avec cette commande
https://api.alphanet.tzscan.io/v3/operation/ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf
So your transaction was posted in alphanet. If you search for operation
ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf
in TzScan (underalphanet
) it is displayed hereWith the transaction hash and block hash BMWZp5qBho1V62bb9necMuSuEaV5vm1G4Zu7mEQ7y8eaATHAfuB which contains your transaction you can follow the steps here to get the details about the outcome
I would recommend following the steps indicated in this other answer to get the details you want.
If you want to do things from code you should be able to call into the TzScan API through
https://api6.tzscan.io/v3/operation/oogKXTkRmJLBmnBQgP2My4QKRHAGLez96krSFshhg51hA8GEMVp
However it seems that this call does not work for the alphanet. I asked in this question if that's something to be expected, but for mainnet it should be ok.
[EDIT] Actually the answer to the other question is that you just need to use a different server for the query in alphanet. With your ophash you can get the block info with this command
https://api.alphanet.tzscan.io/v3/operation/ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf
-
Jen'aipas debloc,car Eztz lui-mêmeprovoque la réception d'unbloc à l'intérieur de l'opération d'appel :(I do not have a block, because eztz itself causes a block to be received inside the call operation :(
- 0
- 2019-02-06
- Михаил Магомедов
-
J'ai ajouté des détails étapepar étapemaintenant.Vous devriez êtrebonmaintenantje pense!I added step-by-step details now. you should be good now i think!
- 0
- 2019-02-06
- Ezy
-
Désolé,mais cette réponsene convientpas à EzTz,carpour ces opérations,vous devez connaître l'ID dubloc,et EzTZne renvoiepas l'ID debloc après l'opérationSorry, but this answer is not suitable for eztz, because for these operations you need to know the id of the block, and eztz doesn’t return block id after send operation
- 1
- 2019-02-06
- Михаил Магомедов
-
Vous avez l'identifiant dubloc de Tzscan commeje vous aimontré.Lenœudne conservepas d'index detransactions,vousne pouvez doncpasfaire une requête (TXHASH=> Block ID) dans lenœud client,vous devez disposer d'unebase de données detransactionet de TZScanfait celapour vous (ou le Conseil également).J'espère que cela clarifieyou have the id of the block in tzscan like i showed you. The node does not maintain an index of transactions so you cannot do a query (txhash=>block id) in the client node, you need to have an transaction database and tzscan does that for you (or conseil as well). hope this clarifies
- 0
- 2019-02-06
- Ezy
-
Je développe une applicationet j'utilise JSet j'aibesoin de latransaction de surveillance dunavigateur d'utilisateursI develop app and i use js, and me need watch transaction from user browser
- 0
- 2019-02-06
- Михаил Магомедов
-
Vouspouvezenvoyer la requête HTTPS à TzScanpour obtenir l'ID deblocyou can send https query to tzscan to get the block id
- 1
- 2019-02-06
- Ezy
-
tzScann'estpas une sourcefiable,ellepeut s'éteindre àtoutmomenttzscan is not a reliable source, it can shut off at any time
- 0
- 2019-02-06
- Михаил Магомедов
-
[Continuons cette discussionen discussion] (https://chat.stackexchange.com/rooms/89337/discussion-between-ezy-and--).Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/89337/discussion-between-ezy-and--).
- 0
- 2019-02-06
- Ezy
-
C'est une autreidée,mais ajoute uneexigence à un servicetiers.This is another idea, but does add a requirement to a 3rd party service.
- 0
- 2019-02-07
- Stephen Andrews
Je développe une applicationet j'utilise JavaScript.J'aibesoin de regarder latransaction dunavigateur d'utilisateurs.J'utilise laméthode Eztz
eztz.contract.send
pour créer unetransaction.Je reçois le hachage detransaction,maisje ne retournepas l'ID debloc.Existe-t-il unmoyenfiable de connaître l'état de latransaction de ce hachage TX afin queje sache simatransaction a été acceptéepar le réseau?Dans cetteinstance spécifique,j'utilise Alphanetet l'ophash renvoyépar Eztzest
.ootc8mmz7dg1recxlpitan3qeub7unfuh9r8kzxefbzizCypbf
.