Inject Signed Operation non riesce con errore Unrevealed_Key
1 risposta
- voti
-
- 2019-03-03
Prima diinviaretransazioni da un account,ènecessarioeseguire un'operazione di "rivelazione"per l'account. Sembra che questo accountpossaessere stato attivato,manon ancora rivelato. Perfarfunzionare questo,avremmobisogno diincludere l'operazione di rivelazionenell'elenco delle operazioni:
sotez.rpc.getHead() .then(head => { const operation = { branch: head.hash, contents: [ { kind: 'reveal', fee: '1269', counter: '31204', public_key: keys.pk, source: from, gas_limit: '10000', storage_limit: '0', }, { kind: 'transaction', source: from, fee: '50000', counter: '31205', gas_limit: '10200', storage_limit: '0', amount: amount, destination: to, } ], } ... })
Dopo che l'account è stato rivelato,la rivelazionenon ènecessariaperessereinclusanelle operazioni successive.
Invia risposta operazione:
const send = (from, to, amount, keys) => { const operation = { kind: 'transaction', source: from, fee: '50000', gas_limit: '10200', storage_limit: '0', amount: `${amount}`, destination: to, }; rpc.sendOperation({ from, operation, keys }) .then(result => console.log(result)); };
Before sending transactions from an account, a 'reveal' operation must be made for the account. It looks like this account may have been activated, but not yet revealed. To make this work we would need to include the reveal operation in the list of operations:
sotez.rpc.getHead() .then(head => { const operation = { branch: head.hash, contents: [ { kind: 'reveal', fee: '1269', counter: '31204', public_key: keys.pk, source: from, gas_limit: '10000', storage_limit: '0', }, { kind: 'transaction', source: from, fee: '50000', counter: '31205', gas_limit: '10200', storage_limit: '0', amount: amount, destination: to, } ], } ... })
After the account has been revealed, the reveal is not needed to be included in the operations thereafter.
SendOperation Answer:
const send = (from, to, amount, keys) => { const operation = { kind: 'transaction', source: from, fee: '50000', gas_limit: '10200', storage_limit: '0', amount: `${amount}`, destination: to, }; rpc.sendOperation({ from, operation, keys }) .then(result => console.log(result)); };
-
Grazie!Homodificato lamia domanda con l'aggiunta dell'operazione di rivelazione.Quando loeseguo ora,siblocca senza risultati oerrori.Thanks! I edited my question with the reveal operation added. When I run it now, it just hangs with no result or error.
- 0
- 2019-03-03
- Michael Rodriguez
-
Ahnonimporta,è stato a causa del contatore diincremento.Honotato latuamodificae l'ho correttanelmiometodo.Stranamente,però,ora ricevo questoerrore: {"kind": "permanent","id": "proto.003-PsddFKi3.operation.invalid_signature"}Ah nevermind, it was because of the counter increment. I noticed your edit and fixed it in my method. Oddly, though, now I'm getting this error: {"kind":"permanent","id":"proto.003-PsddFKi3.operation.invalid_signature"}
- 0
- 2019-03-03
- Michael Rodriguez
-
Haiprovato lo stessotrasferimento usando rpc.sendOperation?sendOperation dovrebbegestire se latransazionenecessita di una rivelazionee tuttii contatoriper le operazioni.Have you tried the same transfer using rpc.sendOperation? sendOperation should handle whether the transaction needs a reveal and all the counters for the operations.
- 0
- 2019-03-04
- AKISH
-
Hoprovatoprima quelmetodoe si èbloccato senza risposta oerrore.Poi hopensato difarloin questomodo,pensando che sarebbe statopiù sicuro,dato chenonmi piaceva che sendOperationprendesse l'oggetto keys comeparametro,e speravo di costruire questa app senza ospitareilmionodo.Ma ora che l'hofattoe scrittoin questomodo,mi sono reso conto che sto ancorainviandopke sk comunque all'interno dell'operazione ... quindinon vabene!Maper rispondere allatua domanda,l'hoprovatoe si èbloccato.I tried that method first, and it just hung with no response or error. Then I thought I would do it this way, thinking it would be more secure, as I didn't like that the sendOperation takes the keys object as a parameter, and I was hoping to build this app without hosting my own node. But now that I've gone through and written it this way, I realized that I am still sending the pk and sk anyhow within the operation... so that's not good! But to answer your question, I did try that, and it just hung.
- 0
- 2019-03-04
- Michael Rodriguez
-
Dovrò vedere cosa stabloccando le risposte,mapenso di averprovato uno deituoiesempi diprimae honotato che la chiave della quantitànon venivagestita correttamentein sotez (avrebbe dovutoessere costrettain una stringa).Seproviiltuo sendOperatione rendi l'importo una stringa,oltre ad aggiungere una commissione,gas_limite storage_limitpotrebberofunzionare.I'll have to see what is making the responses hang, bit I think I tried one of your examples from earlier and noticed that the amount key wasn't being handled correctly in sotez (was supposed to be coerced into a string). If you try your sendOperation and make the amount a string, as well as adding a fee, gas_limit, and storage_limit that may work.
- 1
- 2019-03-04
- AKISH
-
Grazieperiltuo aiuto,lo apprezzo davvero!Ho aggiornato lamia domandaper utilizzare sendOperation.Questa voltanon èin sospeso,restituisce "TypeError: Cannot readproperty 'kind' of undefined"Thanks for your help, I really appreciate it! I've updated my question to use sendOperation. This time it's not hanging, it's returning "TypeError: Cannot read property 'kind' of undefined"
- 0
- 2019-03-04
- Michael Rodriguez
-
Mi sono appena ricordato che sendOperationprende un oggettoparams contenenteilfrom,l'operazionee le chiavi.Ho aggiornato lamia domandae hafunzionato!I just remembered that sendOperation takes a params object containing the from, the operation, and the keys. I've updated my question, and it worked!
- 1
- 2019-03-04
- Michael Rodriguez
Hoimparatomolto oggie non sareipotuto arrivare così lontano così velocemente senza questo StackExchange. Ho quasi risolto l'invio,mapertutta la vitanon riesco a capireperché questofallisce alpunto diiniezione con unerrore "unrevealed_key".
Sono consapevole che dovrei decodificare latransazione contraffattae verificarenuovamentei valoriper assicurarmi cheilnodo remotonon abbiaprovato amodificare lamiatransazione,ma ho rimosso quelbit da questopostper semplicità.
Restituisce:
[{"kind":"branch","id":"proto.003-PsddFKi3.contract.unrevealed_key","contract":"tz1htPf3VPXrHBTX1E7y3tBteib6hA9Teosj"}]
Modifica: Quindi devoprima rivelare questo account. Homodificatoilmiometodo diinvioper verificare se l'account è stato rivelatoin precedenzae,in caso contrario,aggiungereil rivelatore all'elenco delle operazioni. Ora ottengo
{"kind":"permanent","id":"proto.003-PsddFKi3.operation.invalid_signature"}
.Modifica2: Hafunzionato,utilizzando sendOperation