Открывая вселенную звездных аккаунтов: подробное руководство

Готовы ли вы исследовать обширную галактику аккаунтов Stellar? Наденьте космические ботинки и приготовьтесь к межгалактическому приключению по космосу с технологией блокчейна. В этой статье мы окунемся в мир учетных записей Stellar и раскроем множество способов навигации и использования их.

Но сначала давайте подготовим почву. Stellar — это блокчейн-платформа с открытым исходным кодом, предназначенная для облегчения быстрых и недорогих трансграничных транзакций. Он позволяет выпускать и обмениваться цифровыми активами, включая собственную криптовалюту Stellar Lumens (XLM). Учетные записи Stellar служат воротами в эту вселенную, позволяя пользователям безопасно хранить и управлять своими цифровыми активами. Без лишних слов, перейдем к методам взаимодействия с аккаунтами Stellar!

  1. Создание учетной записи Stellar:
    Чтобы отправиться в путешествие по Stellar, вам понадобится учетная запись Stellar. Все начинается с генерации уникальной пары криптографических ключей: открытого ключа и секретного ключа. Открытый ключ действует как идентификатор вашей учетной записи, а секретный ключ — это ваш личный ключ для доступа к вашей учетной записи и управления ею. Вот пример кода для создания учетной записи Stellar с использованием JavaScript SDK:
const StellarSdk = require('stellar-sdk');
const server = new StellarSdk.Server('https://horizon.stellar.org');
// Generate key pair
const pair = StellarSdk.Keypair.random();
// Create and fund the account
server.loadAccount('<source-account-public-key>')
  .then((sourceAccount) => {
    const transaction = new StellarSdk.TransactionBuilder(sourceAccount)
      .addOperation(StellarSdk.Operation.createAccount({
        destination: pair.publicKey(),
        startingBalance: '10' // Initial XLM balance
      }))
      .build();
    transaction.sign(StellarSdk.Keypair.fromSecret('<source-account-secret-key>'));
    return server.submitTransaction(transaction);
  })
  .then(() => {
    console.log('Account created successfully!');
  })
  .catch((error) => {
    console.error('Error creating account:', error);
  });
  1. Проверка баланса аккаунта.
    После того как у вас появится аккаунт Stellar, вам захочется следить за своими цифровыми активами. Чтобы программно проверить баланс вашего аккаунта, вы можете использовать следующий фрагмент кода:
server.loadAccount('<account-public-key>')
  .then((account) => {
    console.log('Account balance:', account.balances[0].balance);
  })
  .catch((error) => {
    console.error('Error checking account balance:', error);
  });
  1. Отправка платежей.
    Одним из основных вариантов использования учетных записей Stellar является осуществление платежей. Вот пример фрагмента кода для отправки Stellar Lumens (XLM) из одного аккаунта в другой:
const destinationPublicKey = '<destination-account-public-key>';
server.loadAccount('<source-account-public-key>')
  .then((sourceAccount) => {
    const transaction = new StellarSdk.TransactionBuilder(sourceAccount)
      .addOperation(StellarSdk.Operation.payment({
        destination: destinationPublicKey,
        asset: StellarSdk.Asset.native(),
        amount: '10' // Amount of XLM to send
      }))
      .build();
    transaction.sign(StellarSdk.Keypair.fromSecret('<source-account-secret-key>'));
    return server.submitTransaction(transaction);
  })
  .then(() => {
    console.log('Payment sent successfully!');
  })
  .catch((error) => {
    console.error('Error sending payment:', error);
  });
  1. Управление линиями доверия.
    Stellar позволяет пользователям хранить и осуществлять транзакции с различными цифровыми активами, выпущенными в сети. Для этого вам необходимо установить линии доверия с эмитентами активов. Вот пример фрагмента кода для добавления линии доверия для пользовательского ресурса:
const assetIssuerPublicKey = '<asset-issuer-public-key>';
const assetCode = '<asset-code>';
server.loadAccount('<account-public-key>')
  .then((account) => {
    const transaction = new StellarSdk.TransactionBuilder(account)
      .addOperation(StellarSdk.Operation.changeTrust({
        asset: new StellarSdk.Asset(assetCode, assetIssuerPublicKey),
        limit: '100' // Maximum amount of the asset you're willing to hold
      }))
      .build();
    transaction.sign(StellarSdk.Keypair.fromSecret('<account-secret-key>'));
    return server.submitTransaction(transaction);
  })
  .then(() => {
    console.log('Trustline added successfully!');
  })
  .catch((error) => {
    console.error('Error adding trustline:', error);
  });
  1. Взаимодействие со смарт-контрактами.
    Stellar поддерживает создание и выполнение смарт-контрактов посредством своей децентрализованной среды приложений. Написав и развернув смарт-контракты, вы можете автоматизировать сложные транзакции и создавать децентрализованные приложения (DApps) на блокчейне Stellar. Вот упрощенный пример смарт-контракта, написанного на языке смарт-контрактов Stellar, который называется «Stellar Smart Contracts» (SSC):
// Define a simple smart contract
const simpleContract = `
  // Define the contract's logic
  BEGIN_TRANSACTION
    // Check if the sender has sufficient balance
    ACCOUNT <sender> BALANCE <amount> GREATER_THAN
    // Transfer funds from sender to receiver
    ACCOUNT <sender> BALANCE -<amount> UPDATE
    ACCOUNT <receiver> BALANCE +<amount> UPDATE
  END_TRANSACTION
`;
// Execute the smart contract
const senderPublicKey = '<sender-account-public-key>';
const senderSecretKey = '<sender-account-secret-key>';
const receiverPublicKey = '<receiver-account-public-key>';
const amount = '5'; // Amount to transfer
server.fetchBaseFee()
  .then((baseFee) => {
    return server.buildTransaction({
      fee: baseFee,
      networkPassphrase: StellarSdk.Networks.PUBLIC,
      source: senderPublicKey,
      operations: [
        StellarSdk.Operation.manageData({
          name: 'contract',
          value: simpleContract
        }),
        StellarSdk.Operation.beginSponsoringFutureReserves({
          sponsoredId: receiverPublicKey,
          source: senderPublicKey
        }),
        StellarSdk.Operation.payment({
          destination: senderPublicKey,
          asset: StellarSdk.Asset.native(),
          amount: amount
        }),
        StellarSdk.Operation.sponsorFutureReserves({
          sponsoredId: receiverPublicKey
        }),
        StellarSdk.Operation.payment({
          destination: receiverPublicKey,
          asset: StellarSdk.Asset.native(),
          amount: amount
        }),
        StellarSdk.Operation.endSponsoringFutureReserves({
          source: receiverPublicKey
        })
      ]
    });
  })
  .then((transaction) => {
    transaction.sign(StellarSdk.Keypair.fromSecret(senderSecretKey));
    return server.submitTransaction(transaction);
  })
  .then(() => {
    console.log('Smart contract executed successfully!');
  })
  .catch((error) => {
    console.error('Error executing smart contract:', error);
  });

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

Итак, пристегнитесь и отправляйтесь в звездное путешествие уже сегодня. Звезды – это предел!