Alphanet Faucet Walletをリモートでアクティブ化する(tezos-clientなし)
2 回答
- 投票
-
- 2019-03-03
はい、これはsotezで可能です.最初は、 0.2.11 <で修正されたアクティブ化関数のバグがありました./a>.次のような操作を実行して、アカウントをアクティブ化し、キーを生成できます.
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);
例からわかることは、ニーモニックが文字列として入力され、パスフレーズが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
これはeztzライブラリを使用して行うことができます.確認したい関連コマンドは次のとおりです.
//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); });
これは、リモートtezrpc Alphanetノードにクエリを実行し、キーを作成して操作をローカルで偽造し、アクティブ化操作をノードに挿入します.
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.
昨日、Alphanetウォレットから提供されたJSONは、最初に https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez .
activate account
を使用してアクティブ化する必要があることを学びました../tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(Fredcyに感謝します).これにより、開発者向けドキュメントtezos-clientを使用せずに、リモートプロバイダーでeztzやsotezなどのライブラリを使用してこのアクションを実行する方法はありますか? sotezには「Activate」メソッドがあるようですが、蛇口JSONから抽出された値のいくつかの組み合わせを試しましたが役に立ちませんでした. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
ZuluRepublicが最初にTezosを製品スイートへの実装についてTezosに関与させたとき、これは独自のノードをホストしなくても達成できる可能性があると言われましたが、今ではそうではないのでしょうか?
編集: 詳述すると、私の意図は、鍵の生成、保存、トランザクションの構築、ローカルへの署名(オフラインメソッド)を処理し、リモートプロバイダーを使用して、ブロック、トランザクション、残高などの公開データをフェッチし、署名されたトランザクションをブロードキャストすることです.
トークンを送信するアドレスを要求する蛇口に慣れています.ここで、自分が制御するウォレットにアドレスを入力します.その後、コードベースでテジーを送受信する実験を開始できます.しかし、この蛇口では、tezos-clientを使用してアクティブ化できるように、独自のノードが必要になるようです.