Как я могу получить и внедрить открытый ключ волны

Я получаю ошибку в моем коде JavaScript, который запрашивает открытый ключ из моего кошелька Waves. Ребята, вы можете мне помочь? Это единственное, что мешает запуску моего кода. Мне нужен открытый ключ.

У меня здесь с собой открытый ключ, мне просто нужен способ реализовать его в моем коде JavaScript.

Это ошибка Firebase после развертывания:

журналы в Firebase:

Исключение из завершенной функции: Ошибка: укажите начальное значение или senderPublicKey

в своих API показывает: https://testnode1.wavesnodes.com/api-docs/index.html GET / address / publicKey / {publicKey}

Вот ссылка: https://pastebin.com/AqswyjVC

    const functions = require('firebase-functions');
    exports.distributeStakingRewards = functions.pubsub.schedule('every 1 minutes').onRun((context) => {
        const request = require('request')
        //Fetch list of users who has a positive balance for your asset..
        const assetID = 'xxx'
     
        request('https://testnode1.wavesnodes.com/assets/' + assetID + '/distribution', function(err, res, body) {
            if (res.statusCode === 200) {
                const bodyJSON = JSON.parse(body)
                var transfers = []
                for (uid in bodyJSON) {
                    var bal = bodyJSON[uid]
                    //Set minimum balance to get rewarded
                    if (bal >= 1) {
                        var reward = '0.005'
                        var transfer = { recipient: uid, amount: reward }
                        transfers.push(transfer)
                    }
                }
                const waves = require('waves-transactions')
                const nodeUrl = 'https://testnode1.wavesnodes.com/'
                const params = { transfers: transfers,assetId: assetID, attachment: 'Weekly staking rewards payout', timestamp: Date.now() }
                const signedTx = waves.massTransfer(params,
                  {
                    'privateKey': 'xxxx',
                  }
                )
                const id = signedTx.id
                waves.nodeInteraction.broadcast(signedTx, nodeUrl).then(tx => {
                    //If tx returns null or undefined tx.id will be undefined === false
                    if (tx.id === id) {
                        console.log('Successfully distributed staking rewards for ' + new Date().toDateString() + 'was complete')
                    } else {
                        console.log('Unable to distribute staking rewards for ' + new Date().toDateString())
                    }
                })
            } else {
                console.log('unable to fetch asset distribution ' + err)
            }
        })
    })

person raduken    schedule 13.08.2020    source источник
comment
Я не уверен, понял ли я ваш вопрос, но пока у вас есть открытый ключ, вы можете передавать его как URL parameter на конечные точки, которым он нужен. Например, на конечной точке, которую вы упомянули [GET] addresses/publicKey/{publicKey}, вы можете либо сделать HTTP-запрос GET, заменив {publicKey} фактическим ключом, либо просто использовать интерфейс Swagger, чтобы получить ответ, заполнив ввод открытым ключом и нажав Execute   -  person Marc Hernández    schedule 17.08.2020
comment
спасибо, чувак, можешь дать ответ с кодом, чтобы я мог тебя наградить? ваше здоровье.   -  person raduken    schedule 17.08.2020
comment
Я уже написал ответ @raduken   -  person Marc Hernández    schedule 17.08.2020


Ответы (1)


JavaScript

Вам необходимо передавать publicKey всякий раз, когда это необходимо запросу. Согласно определению Swagger, он должен быть передан как параметр URL следующим образом:

let publicKey = 'your-public-key';

request('https://testnode1.wavesnodes.com/addresses/publicKey/' + publicKey, function(err, res, body) {

});

SwaggerUI

Если вы хотите протестировать запрос через интерфейс Swagger, вы можете нажать кнопку Попробовать в соответствующем запросе, заполните требуемый ввод с помощью открытого ключа < / em>, а затем нажмите кнопку Выполнить.

введите описание изображения здесь

person Marc Hernández    schedule 17.08.2020