Отправьте сообщение в сети blockchain, используя web3.shh - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу отправить сообщение с одного адреса на другой в сети ethereum, используя модуль shh библиотеки web3 js.

        const Web3 = require('web3');
        const url = 'http://localhost:7545';
        const web3 = new Web3(url);
        const eventProvider = new Web3.providers.WebsocketProvider('ws://localhost:7545')
        web3.setProvider(eventProvider);

        await web3.eth.net.isListening();
        const POW_TIME = 100;
        const TTL = 20;
        const POW_TARGET = 2;

        await web3.shh.post({
            pubKey: accounts[0],
            sig: accounts[0],
            ttl: TTL,
            topic: [accounts[1]],
            payload: web3.utils.fromAscii('messageContent'),
            powTime: POW_TIME
        });

        web3.shh.subscribe("messages", {
            minPow: POW_TARGET,
            privateKeyID: accounts[1],
            topics: [accounts[1]]
        }).on('data', (data) => {
            console.log(data);
        }).on('error', (err) => {
            console.log(err);
        });

Здесь учетные записи поступают от ganache, который работает на моем локальный компьютер. Когда я выполняю приведенный выше код, я сталкиваюсь со следующей ошибкой:

Ошибка узла: {"message": "Неверное количество аргументов. Метод 'shh_post' требует ровно 6 аргументов. Запросите 1 аргумент: [{\ \ "Публичных \": \ "0x462Ea4760182EA27c5B0fbDD383Ad47dC5d68925 \", \ "сиг \": \ "0x462Ea4760182EA27c5B0fbDD383Ad47dC5d68925 \", \ "ТТЛ \": 20 \ "тема \": [\ "0x5AEf1fE702a95aBeDBC901C83570ED23C16A8976 \"] \ "полезная нагрузка \" : \ "0x6d657373616765436f6e74656e74000000000000000000000000000000000000000000000000000000000000000000000000000000 \", \ "powTime \": 100}, null]. "," Code ": - 32000

Может кто-нибудь подсказать, пожалуйста, как решить эту ошибку?

...