Ativando uma carteira de torneira de alfanet remotamente (sem Tezos-Client)
2 respostas
- votos
-
- 2019-03-03
Sim,isso épossível com Sotez. Aliinicialmente havia umbug com afunção de ativação quefoi apenas corrigidoem 0.2.11 . Vocêpodefazer algo como o seguintepara ativar uma conta,bem comogerar asteclas:
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);
Algumas coisas que vocêpode vernoexemplo é que omnemônico éinserido como uma stringe a senha são os valores dee-maile senha concatenados do arquivo 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
Vocêpodefazerisso usando abiblioteca EZTZ. Aquiestão os comandos relevantes que você deseja analisar:
//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); });
Isso consulta onó Alpanet TezRPC remoto,construa asteclase forja as operações localmentee injetam a operação de ativaçãononó.
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.
ontem aprendi que o JSONfornecido da carteira AlphaNet deveprimeiro ser ativado usando uma conta de ativação
activate account
e.g../tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(obrigadofredcy!) quetambémme levou aencontraresta seçãona documentação do desenvolvedor https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez .Existe umamaneira deexecutaresta ação sem Tezos-Client,mas sim usando umabiblioteca como EZTZ ou Sotez com umprovedor remoto? Eu vejo que Soteztem ummétodo "ativar",maseutentei várias combinações de valoresextraídos datorneira JSON sem sucesso. https://github.com/andrewkishino/sotez/wiki/Documentation#activate
Quando ZulurePublicinicialmenteengajou Tezos sobre aimplementação de Tezosem nosso conjunto deprodutos,fomosinformados de queissopoderia ser alcançado sem hospedarnossopróprionó,mas agoraestou querendo saber seissonão é verdade?
editar: Paraelaborar,minhaintenção é lidar comgeração de chave,armazenamento,construção detransaçõese assinatura local (métodos offline)e usando umprovedor remoto apenasparabuscar dadospúblicos comoblocos,transações,saldose transações assinadasem difusão.
Estou acostumado atorneiras quepedem umendereçoparaenviartokenspara,ondeeuentrarianoendereçopara uma carteira que controlar,e entãoeuposso começar aexperimentare receber Tebzziesnaminhafaixa de dados. Mas comestatorneira,parece queeuprecisariatermeupróprionópara queeupossa usar Tezos-Clientepara ativá-lo.