Attivazione remota di un portafoglio di rubinetti Alphanet (senza tezos-client)
2 risposta
- voti
-
- 2019-03-03
Sì,questo èpossibile con sotez. Inizialmente c'era unbug con lafunzione di attivazione che è stato appena correttoin 0.2.11 . Puoifare qualcosa di simileper attivare un accounte generare le chiavi:
import { rpc, crypto } from 'sotez'; // tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json const accountJSON = { "mnemonic": [ "raw", "peace", "visual", "boil", "prefer", "rebel", "anchor", "right", "elegant", "side", "gossip", "enroll", "force", "salmon", "between" ], "secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6", "amount": "12358548903", "pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m", "password": "wc0W7jn3Vf", "email": "[email protected]" }; const activateAccount = async (accountJSON) => { let keys; try { const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret); await rpc.awaitOperation(activatedOperation.hash); keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`); console.log(keys); } catch (e) { console.log(e); } }; activateAccount(accountJSON);
Alcune cose chepuoi vedere dall'esempio sono cheilmnemonico vieneinserito come una stringae lapassphrase è l'email concatenatae i valori dellapassword dalfile JSON.
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez'; // tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json const accountJSON = { "mnemonic": [ "raw", "peace", "visual", "boil", "prefer", "rebel", "anchor", "right", "elegant", "side", "gossip", "enroll", "force", "salmon", "between" ], "secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6", "amount": "12358548903", "pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m", "password": "wc0W7jn3Vf", "email": "[email protected]" }; const activateAccount = async (accountJSON) => { let keys; try { const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret); await rpc.awaitOperation(activatedOperation.hash); keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`); console.log(keys); } catch (e) { console.log(e); } }; activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
-
- 2019-03-03
Puoifarlo usando la libreriaeztz. Eccoi comandi rilevanti che desideriesaminare:
//Point to alphanet node eztz.node.setProvider("https://alphanet.tezrpc.me"); //From https://faucet.tzalpha.net/ var faucet = { "mnemonic": [ "viable", "decline", "spend", "excess", "hour", "panel", "decade", "sniff", "blame", "crane", "enact", "clever", "rival", "bundle", "silk" ], "secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f", "amount": "19080702922", "pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS", "password": "Omxz6rDlHz", "email": "[email protected]" }; //Generate keys var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password); if (keys.pkh != faucet.pkh) throw "Invalid"; //Activate eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){ console.log(d); });
Questointerrogailnodotezrpc Alphanet remoto,costruisce chiavie crea operazioni localmentee inserisce l'operazione di attivazionenelnodo.
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node eztz.node.setProvider("https://alphanet.tezrpc.me"); //From https://faucet.tzalpha.net/ var faucet = { "mnemonic": [ "viable", "decline", "spend", "excess", "hour", "panel", "decade", "sniff", "blame", "crane", "enact", "clever", "rival", "bundle", "silk" ], "secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f", "amount": "19080702922", "pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS", "password": "Omxz6rDlHz", "email": "[email protected]" }; //Generate keys var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password); if (keys.pkh != faucet.pkh) throw "Invalid"; //Activate eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){ console.log(d); });
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
Ieri ho appreso cheil JSONfornito dalportafoglio Alphanet deveessereprima attivato utilizzando
activate account
,ades../tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(grazie Fredcy!) chemi haportato anche atrovare questa sezionenella documentazioneper sviluppatori https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez .C'è unmodopereseguire questa azione senzatezos-client,mapiuttosto utilizzando una libreria comeeztz o sotez con unprovider remoto? Vedo che sotez ha unmetodo "Activate",ma hoprovato diverse combinazioni di valoriestratti dalfaucet JSON senza alcun risultato. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
Quando ZuluRepublic hainizialmente coinvolto Tezos sull'implementazione di Tezosnellanostra suite diprodotti,ci è stato detto cheprobabilmente questopotevaessere ottenuto senza ospitareilnostronodo,ma orami chiedo senon è vero?
Modifica: Per approfondire,lamiaintenzione ègestire lagenerazione di chiavi,l'archiviazione,la creazione ditransazionie lafirma locale (metodi offline)e l'utilizzo di unprovider remoto soloper recuperare datipubblici comeblocchi,transazioni,saldie pertrasmetteretransazionifirmate.
Sono abituato aifaucet che chiedono unindirizzo a cuiinviarei token,doveinserisco l'indirizzoin unportafoglio che controllo,e quindipossoiniziare a sperimentare con l'invioe la ricezione ditezziesnelmio codebase. Ma con questofaucet,sembra che dovrei avereilmionodoin modo dapoter utilizzaretezos-clientper attivarlo.