Activar una billetera Alphanet Faucet de forma remota (sin tezos-client)
2 respuestas
- votos
-
- 2019-03-03
Sí,estoesposible con sotez. Inicialmente hubo unerror con lafunción de activación que se acaba de corregiren 0.2.11 . Puede hacer algo como lo siguientepara activar una cuenta ygenerar las claves:
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);
Algunas cosas quepuede veren elejemploes queelmnemónico seingresa como una cadena y lafrase de contraseña son los valores de correoelectrónico y contraseña concatenados del archivo 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
Puede haceresto usando labibliotecaeztz. Estos son los comandos relevantes que desea ver:
//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); });
Esto consultaelnodo Alphanettezrpc remoto,construye claves yfalsifica operaciones localmentee inyecta la operación de activaciónen elnodo.
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.
Ayer supe queel JSONproporcionadopor labilletera Alphanet debe activarseprimero usando
activate account
p.ej../tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(¡gracias Fredcy!) quetambiénme llevó aencontraresta secciónen la documentación del desarrollador https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez .¿Hay algunaforma de realizaresta acción sintezos-client,sino utilizando unabiblioteca comoeztz o sotez con unproveedor remoto? Veo que soteztiene unmétodo "Activar",pero heintentado varias combinaciones de valoresextraídos delfaucet JSON sin éxito. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
Cuando ZuluRepublicinicialmente contrató a Tezosparaimplementar Tezosen nuestro conjunto deproductos,nos dijeron queestoprobablementepodría lograrse sin alojarnuestropropionodo,pero ahorame pregunto siesonoes cierto.
Editar: Para ampliar,mi intenciónesmanejar lageneración de claves,el almacenamiento,la creación detransacciones y lafirma local (métodosfuera de línea) y usar unproveedor remoto solopara obtener datospúblicos comobloques,transacciones,saldos ytransmitirtransaccionesfirmadas.
Estoy acostumbrado a losfaucets quepiden una direcciónparaenviartokens,dondeingresaría la dirección a unabilletera que controlo,y luegopuedo comenzar aexperimentar conelenvío y la recepción detezziesen mi códigobase. Pero conestefaucet,parece quenecesitaríatenermi propionodoparapoder usartezos-clientpara activarlo.