Skip to content

linkd-academy/neo-name-service-sdk

Repository files navigation

Neo Name Service SDK for JavaScript

This is the JavaScript SDK for the Neo Name Service (NNS) on the Neo blockchain. It provides a simple way to interact with the NNS smart contract. The SDK is written in TypeScript and can be used in both TypeScript and JavaScript projects.

Installation

To install the SDK, use the following command:

npm install @linkdacademy/neo-name-service-sdk

Usage

Client Initialization

Import the SDK and initialize the client:

// Initialize the client using RPC address and an account (optional)
const client = new NNSClient();
await client.init("https://mainnet2.coz.io", testAccount)

// Alternatively, initialize an NeonInvoker instance and pass it to the client
const invoker = await NeonInvoker.init({ "https://mainnet2.coz.io", testAccount })
const client = new NNSClient(invoker);

Using the SDK

Use the SDK to perform read operations on the NNS smart contract. The following examples demonstrate how to get the owner of a domain name and the resolver address of a domain name.

const name = "linkdacademy.neo";
const owner = await client.getOwner(name);
console.log(`The owner of ${name} is ${owner}`); // Na4VGtfNcJmgAXyREZ4WfDqnRZor4woga5

The transaction is not sent to the blockchain, so it does not require a signature.

Write Operations

Write operations require a signer parameter to sign the transaction. The account used as the signer must match the one used to initialize the client.

let name = 'test999.neo';
const signer: Signer = { account: testAccount.scriptHash, scopes: 'CalledByEntry' };
let result = await client.buyName(name, testAccount.scriptHash, signer, false, false); // Returns the transaction hash

The last two parameters in write operations are optional. Send true for the fourth parameter to submit the transaction to the blockchain. Using false will return a test invocation result. The fifth parameter is used to specify whether the client should wait for the transaction to be confirmed.

NNS Transaction Builder

The SDK provides a class to build NNS invocation scripts. Use it to create custom transactions or execute multiple operations in a single transaction.

// Returns a ContractInvocation object with the script and parameters
const invocation = NNSTransactionBuilder.getPropertiesInvocation(name);

//Execute the transaction (test invocation)
const resp = await this.invoker?.testInvoke({
    invocations: [invocation],
    signers: []
});

Documentation

For more information on Neo Name Service, visit the official documentation.

Made with ❤️ by Linkd Academy

About

Neo Name Service SDK (Neo N3)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published