Я сделал несколько проектов web3.js, а также работал с MetaMask. Но я никогда не видел, чтобы это окно появлялось в MetaMask, как при подписке на криптокитти.
Confirm Transaction
Sign Message
MESSAGE
Cryptokitties
Что это значит? Почему это всплывающее окно? Какие разрешения я даю?
Скриншот здесь: https://i2.wp.com/blockchaindk.com/wp-content/uploads/2017/12/Cryptokitties-Sign-Message.png?w=346&ssl=1
источник: https://blockchaindk.com/2017/12/05/buy-cryptokitty-cryptokitties/
В большинстве случаев нам не нужно подписывать для отправки транзакций между сайтом (контрактом) и мной.
Но что делает знак, так это то, что сайт удостоверяется, что пользователь реален и у него есть учетная запись эфира (в данном случае метамаска). Для подписи нам обычно нужна электронная почта, имя пользователя.
мы расшифровываем менеджеров сайта, админов. В основном это вызывается
var signer = web3.eth.defaultAccount || web3.eth.accounts[0];
var original_message = "I am but a stack exchange post";
var message = "0x" + original_message.toHex();
var message_hash = web3.sha3('\u0019Ethereum Signed Message:\n' + message.length.toString() + message);
var signature;
web3.personal.sign(message, signer, function(err, res) {
if (err) console.error(err);
signature = res;
console.log({
"signer": signer,
"message": message,
"message_hash": message_hash,
"signature": signature,
})
});
Ответ будет
{
message: "0x4920616d20627574206120737461636b2065786368616e676520706f7374"
message_hash: "0x1a0126ceafb4579293016a4cc3ca0ec753c7d497cda8b3e6ece095c832d92590"
signature: "0x0cf7e2e1cbaf249175b8e004118a182eb378a0b78a7a741e72a0a34e970b59194aa4d9419352d181a4d1827abbad279ad4f5a7b60da5751b82fec4dde6f380a51b"
signer: "0x9283099a29556fcf8fff5b2cea2d4f67cb7a7a8b"
}
Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.
Я считаю, что это используется только как форма системы входа в систему. Подписывая сообщение, CryptoKitties могут определить, какой адрес вы используете, и, следовательно, какую учетную запись отображать на своем веб-сайте.
kn1g
Ричард Хоррокс