Como assistir o status de transação com EZTZ depois de Eztz.Contract.Send
-
-
Possível duplicado de [Comopossoentenderpor que umatransaçãofalhou?] (Https://tezos.stackexchange.com/Questions/172/How-can-i-understand-why-a-transaction-has-failed)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
-
Eunãotenho umbloco,porque aprópria EZTZfaz com que umbloco seja recebido dentro da operação de chamadaI do not have a block, because eztz itself causes a block to be received inside the call operation
- 0
- 2019-02-06
- Михаил Магомедов
-
desculpe o que você quer dizer que EZTZ "faz com que umbloco seja recebido dentro da operação de chamada"?Porfavor,vocêpodefornecermais detalhes/infos sobre o que vocêestáfazendoe qual é o status datransação,entãoentendemos claramente o contexto.Obrigado!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
-
Poderia ser que o ID dobloco (EZTZ.RPC.GETHEAD ())mudará seeu o receber depois de chamar ométodo EZTZ.CROTRATT.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
- Михаил Магомедов
-
Nãofaz sentidoparamim o que vocêestá dizendo.Vocêpode colar aqui amensagem de que Eztz retorna você?Serámais simples dessamaneira.Vocêpodeencontrar atransaçãoem 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
-
Eu usoeztz.contract.sende eleme devolva apenas Hash detransação,OOtc8mmz7dg1recxlpitan3qEUB7Unfuh9r8kzxFbzzizCypbfe como observar o status detransação com EZTZ.Eunão seiid deblocoi 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
- Михаил Магомедов
-
Vamospara conversarem vez dissolet's go to chat instead
- 0
- 2019-02-06
- Ezy
-
Vamos [continuaresta discussãonobate-papo] (https://chat.stackexchange.com/rooms/89334/discussion-between-ezy-and--).Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/89334/discussion-between-ezy-and--).
- 0
- 2019-02-06
- Ezy
-
3 respostas
- votos
-
- 2019-02-13
Na verdade,há umanovafunção com EZTZ quefazisso agora:
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 };
Usando ospadrõesparecemfuncionarbem paramim (aguarda aproximadamente 3blocos).
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
Eu acho que vocêpoderiaenviar uma chamada RPC RAW usando EZTZ:
eztz.node.query ("/correntes/main/blocks/head/operations"). Então (função (res) { console.log (res); }). Catch (função (e) {});
/cadeias/blocos/blocos/head/operations
fornece uma lista de operaçõesincluídasnoblocomais recentetambém conhecido como cabeçaPortanto,a solução completapode ser,que você "enquete"essepontofinalem um ciclo setInterval,atéencontrar um recibopara sua operação,dentro de um determinadoperíodo detempo.
e. Nopróximo
1minuto
,liguepara oendpoint RPCe,se um recebimento corresponder aomeu ID de operaçãoalternativa
tezos-cliente
comando seria:Tezos-Clientesperapor & lt; Hash & GT; A serincluído
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
-
Acredito queesta soluçãonão é robustaem geralporque vocênão égarantido que a operaçãoestaráno últimobloco.Pode serem umbloco subseqüentee porque onó completonãotem o índice detransação,vocêpode seencontrarincapaz de realmente obter asinformações adequadas dessamaneira.Eu acredito que op deve construir seuprópriobanco de dados TX ou confiarem umexistente como Tzscan ou 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
-
Nãotenho certeza de comoexatamente o "Tezos-Cliente"implementouisso,mas usar a API de Tzscan é de umamaneira.Maseu acho que se você começar apesquisa,antes de usar o EZTZparainjetar uma operação,você certamentepegará obloco onde a operação seráincluída,amenos que otempo de cozimento seja rápido demais,ou suastaxas sãobaixase a operação simplesmentenão seráIncluídoem breve - o queeunão acho realmente acontece.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
-
Também chamando EZTZ.Cract.Send,resultaem uma chamadapara [Esteendpoint RPC] (http://tezos.gitlab.io/mainnet/api/rpc.html#post-injection-operation).Nomeuentendimento,usando RPC RAW,suamelhor aposta é analisar ospróximosblocos/novas cabeças,paraprocurar seu ID de operação.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
-
Blocos de clientes de Tezos até quetenha a operação aceita ou osmomentos.Vocênão quer que o aplicativo opestejaescrevendo obloqueioe apesquisanointervalo rápidonão é umamaneira robusta.Idealmente,vocêgostaria de receber umanotificação de que o TXfoi aceito,mas Eztznão suporta queeu acredito.Então ou vocêprecisapedir um índiceem umafreqüênciamais lenta ou vocêprecisa usar umnó local quenão ébom se você quiserfazer um aplicativomóvelTezos 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
-
Depende do que o autor quer alcançar,seeleestáprocurandonovos valores de armazenamentopara o contrato depois que umponto deentradafoiexecutado - o EZTZfornece ummétodopara assistir ao armazenamento do contratotambém.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
-
Fácil obrigado!"Também chamando EZTZ.Cract.Send,resultaem uma chamada depostagemparaesteponto deextremidade RPC. Naminha compreensão,usando RPC RAW,suamelhor aposta éexaminar ospróximosblocos/novas cabeças,paraprocurar sua ID de operação"boa resposta. Vou solicitar uma unidade de verificaçãoe,senão houver,verei osblocos anteriores!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
- Михаил Магомедов
-
Apesquisa as operações da cabeça atual é umaboamaneira,vocêpodepesquisarpor 2-3minutos usando GetIntervale tempo limite após o uso depromessas assíncricas.Você seriamelhor começar apesquisar antes,ougravar o hash/nível atual.Vocêtambémprecisariagarantir que o códigoestejaincluídopara lidar corretamenteníveis deblocoignorados.Eu vou adicionar a "esperapelainclusão oppela OP"em EZTZem brevePolling 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
para que suatransaçãofoipostadaem Alphanet. Se vocêprocurarpor operação
ooTC8mMZ7dG1ReCXLPiTAN3qEUB7uNFuh9R8KZXEFbZZiZcypBf
em tzscan (sobalphanet
)ele éexibido aquiCom o hashtransaçãoe de hashbloco BMWZp5qBho1V62bb9necMuSuEaV5vm1G4Zu7mEQ7y8eaATHAfuB que contém atransação que vocêpode seguir ospassos aquipara Obtenha os detalhes sobre o resultado
Eu recomendaria seguir asetapasindicadasneste outro resposta para obter os detalhes desejados.
Se você quiserfazer coisas do código,você deve ser capaz de ligarpara a API TZSCAN através de
https://api6.tzscan.io/v3/operation/oogKXTkRmJLBmnBQgP2My4QKRHAGLez96krSFshhg51hA8GEMVp
Noentanto,parece queesta chamadanãofuncionapara o alfanet. Eupergunteineste pergunta Seisso é algopara seresperado,maspara Mainnet deve ser OK.
[editar] Na verdade,a respostapara a outrapergunta é que você sóprecisa usar um servidor diferentepara a consultaem Alphanet. Com o seu Ofash,vocêpode obter asinformações dobloco comeste comando
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
-
Eunãotenho umbloco,porque opróprio EZTZfaz com que umbloco seja recebido dentro da operação de chamada :(I do not have a block, because eztz itself causes a block to be received inside the call operation :(
- 0
- 2019-02-06
- Михаил Магомедов
-
Eu adicionei detalhespasso apasso agora.Você deveriaestarbem agoraeu acho!I added step-by-step details now. you should be good now i think!
- 0
- 2019-02-06
- Ezy
-
Desculpe,masesta respostanão é adequadapara o EZTZ,porqueparaessas operações vocêprecisa saber o ID dobloco,e o EZTZnão retorna o ID dobloco após a operação deenvioSorry, 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
- Михаил Магомедов
-
Vocêtem oid doblocoem Tzscan comoeute mostrei.Onónãomantém um índice detransaçõespara que vocênãopossafazer uma consulta (TXHASH=> ID dobloco)nonó do cliente,vocêprecisater umbanco de dados detransaçãoe Tzscanfazissopara você (ou Conseil).Espero queissoesclareceyou 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
-
Eu desenvolvo aplicativoe uso JS,e eupreciso de assistirtransação donavegador do usuárioI develop app and i use js, and me need watch transaction from user browser
- 0
- 2019-02-06
- Михаил Магомедов
-
Vocêpodeenviar a consulta HTTPSpara Tzscanpara obter o ID doblocoyou can send https query to tzscan to get the block id
- 1
- 2019-02-06
- Ezy
-
Tzscannão é umafonte confiável,pode ser desligada a qualquermomentotzscan is not a reliable source, it can shut off at any time
- 0
- 2019-02-06
- Михаил Магомедов
-
Vamos [continuaresta discussãono chat] (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
-
Esta é outraideia,mas adiciona um requisito a um serviço deterceiros.This is another idea, but does add a requirement to a 3rd party service.
- 0
- 2019-02-07
- Stephen Andrews
Euestou desenvolvendo um aplicativoe usojavascript.Eupreciso assistir atransação donavegador do usuário.Eu uso ométodo EZTZ
eztz.contract.send
para criartransação.Recebo de volta o hash detransação,masnão devolver o ID dobloco.Existe umamaneira confiável de saber o status detransação deste hash TXpara queeu saiba seminhatransaçãofoi aceitapela rede?Nestainstânciaespecífica,estou usando AlphaNete o Ofash retornadopelo EZTZ é
OOTC8MMZ7DG1RECXLPITAN3TEUB7ULPUH9R8KZXBZZZIZCYPBF
.