Protokol
  • Introduction To Digital Assets
  • Tutorials
    • How To Create Digital Assets
    • How To Trade Digital Assets
  • ARK CORE MODULES
    • NFT
      • Development
      • Complementary Examples
        • Base
        • Exchange
      • API Endpoints
        • Assets
        • Burns
        • Collections
        • Transfers
        • Base Configurations
        • Auctions
        • Bids
        • Trades
        • Exchange Configurations
    • Guardian
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Groups
        • Users
    • Nameservice
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Nameservice
    • Voting
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Create Proposal
        • Cast Vote
        • Statistics
  • Protokol Templates
    • Core Starter Kit
    • Solidity Typescript Hardhat
    • Nestjs
Powered by GitBook
On this page
  • Prerequisites
  • yarn
  • pnpm
  • npm
  • How To Create And Broadcast Nameservice Transactions
  • Nameservice - Creating and Broadcasting

Was this helpful?

  1. ARK CORE MODULES
  2. Nameservice

Complementary Examples

Scenarios Showing Transaction Creation And Broadcasting Best Practices

PreviousDevelopmentNextAPI Endpoints

Last updated 3 years ago

Was this helpful?

You can find runnable example in the following link

Prerequisites

Before we get started we need to make sure that all of the required dependencies are installed.

We recommend the usage of Yarn, but you can choose any other package manager you want!

yarn add @arkecosystem/crypto
yarn add @protokol/nameservice-crypto
yarn add @protokol/client
pnpm add @arkecosystem/crypto
pnpm add @protokol/nameservice-crypto
pnpm add @protokol/client
npm install @arkecosystem/crypto
npm install @protokol/nameservice-crypto
npm install @protokol/client

How To Create And Broadcast Nameservice Transactions

Nameservice - Creating and Broadcasting

import { Identities, Managers, Transactions, Utils } from "@arkecosystem/crypto";
import { ProtokolConnection } from "@protokol/client";
import { Builders, Transactions as NameserviceTransactions } from "@protokol/nameservice-crypto";

export const Nameservice = async (): Promise<void> => {
    // Configure our API client
    const client = new ProtokolConnection("http://localhost:4003/api");
    const passphrase = "clay harbor enemy utility margin pretty hub comic piece aerobic umbrella acquire";

    // Configure manager and register transaction type
    const configs = await client.api("node").crypto();
    const {
        body: {
            data: {
                block: { height },
            },
        },
    } = await client.get("blockchain");

    Managers.configManager.setConfig({ ...configs.body.data } as any);
    Managers.configManager.setHeight(height);
    Transactions.TransactionRegistry.registerTransactionType(NameserviceTransactions.NameserviceTransaction);

    // Step 1: Retrieve the nonce of the sender wallet
    const senderWallet = await client.api("wallets").get(Identities.Address.fromPassphrase(passphrase));
    const senderNonce = Utils.BigNumber.make(senderWallet.body.data.nonce).plus(1);

    // Step 2: Create the transaction
    const transaction = new Builders.NameserviceBuilder()
        .Nameservice({
            name: "zan",
        })
        .nonce(senderNonce.toFixed())
        .sign(passphrase);

    // Step 3: Broadcast the transaction
    const broadcastResponse = await client.api("transactions").create({ transactions: [transaction.build().toJson()] });

    // Step 4: Log the response
    console.log(JSON.stringify(broadcastResponse.body, null, 4));
};

Nameservice()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error(error);
        process.exit(1);
    });

yarn
pnpm
npm
nameservice/packages/nameservice-examples at develop · protokol/nameserviceGitHub
Logo