Перейти к содержанию

Установка

На текущий момент установке подлежат следующие модули:

  • @spatium/sdk - основной пакет Spatium SDK, содержащий логику протокола и основной криптографии.
  • @spatium/signer-client - вспомогательный пакет, содержащий специфические компоненты для работы SDK cо Spatium Signer Service

Доступ

Оба пакета доступны в приватном NPM регистре Spatium (логин и пароль можно получить напрямую у команды Spatium):

npm login --scope=@spatium --registry=https://files.spatium.net/repository/npm-public-sdk
npm notice Log in on https://files.spatium.net/repository/npm-public-sdk
Username: sdk-distribution-user
Password: 
Email: (this IS public) 
Logged in as sdk-distribution-user on https://files.spatium.net/repository/npm-public-sdk.

Установка

Yarn:

Для корректной установки в .yarnrc нужно добавить следующее:

"@spatium:registry" "https://files.spatium.net/repository/npm-public-sdk/"

Затем, в проекте:

yarn add @spatium/sdk @spatium/signer-client

NPM:

Для корректной установки нужно добавить в .npmrc:

"@spatium:registry" "https://files.spatium.net/repository/npm-public-sdk/"

Затем, в проекте:

npm install @spatium/sdk @spatium/signer-client

Подключение

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

import {
  uuid,
  randomBytes,
  generateDistributedSecret,
  syncDistributedEcdsaKey,
} from '@spatium/sdk';

import { SignerClient, ServiceStorage } from '@spatium/signer-client';

const test = async () => {
  const client = '783c8beb-5820-40a7-84f8-776acb67407c';
  const secretId = '205ad897-1def-47d3-8b4e-24a49f7deb3e';
  const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwZXJtaXNzaW9ucyI6WyJyZWFkIiwid3JpdGUiXSwiaWF0IjoxNjgzOTY1NDI4fQ.-O3z_QIDTnbj2MhcDEcN9JN6et6YDIE-b3kh3fhMYrg';

  const storage = new ServiceStorage('https://cloud.spatium.net/storage/v1', token, client);

  const signer = new SignerClient('https://cloud.spatium.net/signer/v1', token, client, storage, 10 * 1000);

  try {
    await signer.connect(10 * 1000);

    await generateDistributedSecret(signer, secretId);

    const publicKey = await syncDistributedEcdsaKey(signer, secretId, uuid(randomBytes), 'secp256k1', 0, 0);

    console.log('Your public key is', publicKey);
  } finally {
    await signer.disconnect();
  }
};