Установка и использование платформы

Применение JS SDK в ноде с oAuth-авторизацией

Если нода использует oAuth-авторизацию, необходимо инициализировать Waves API с заголовками авторизации для вызова.

Для автоматического обновления токенов при разработке приложений с JS SDK мы рекомендуем использовать внешний модуль api-token-refresher. Однако вместо него вы можете использовать свое решение.

Для работы с api-token-refresher установите зависимости при помощи npm:

npm i @wavesenterprise/api-token-refresher@3.1.0 --save, axios --save-dev, cross-fetch --save-dev, @wavesenterprise/js-sdk@3.1.1 --save

Инициализация api-token-refresher производится следующим образом:

import { init: initRefresher } from '@wavesenterprise/api-token-refresher/dist/fetch'

const { fetch } = initRefresher({
  authorization: {
    access_token,
    refresh_token
  }
});

const Waves = WeSdk.create({
    initialConfiguration: config,
    fetchInstance: fetch
});

Параметры access_token и refresh_token приведены в ответе на запрос авторизации в клиент loginSecure, который доступен в браузере.

Ниже приведен листинг, содержащий инициализацию библиотеки с последующей проверкой первого блока:

const WeSdk = require('@wavesenterprise/js-sdk');
const { ApiTokenRefresher } = require('@wavesenterprise/api-token-refresher');

const apiTokenRefresher = new ApiTokenRefresher({
    authorization: {
        access_token: 'access_token',
        refresh_token: 'refresh_token'
    }
})

const { fetch } = apiTokenRefresher.init()

const Waves = WeSdk.create({
    initialConfiguration: {
        ...WeSdk.MAINNET_CONFIG,
        nodeAddress: 'https://hoover.welocal.dev/node-1',
        crypto: 'waves',
        networkByte: 'V'.charCodeAt(0)
    },
    fetchInstance: fetch
});

const testFirstBlock = async () => {
    const data = await Waves.API.Node.blocks.first()
    console.log('First block:', data)
}

testFirstBlock()
Смотрите также