SDK

LNSDK SDK Guide

Link to Github: https://github.com/lnfi-network/nasdk

Introduction

Welcome to the LNSDK (Lnfi Network SDK) guide! LNSDK is an SDK library developed on Nostr. It facilitates connecting plugin wallets supporting Nostr, executing transactions, and managing orders seamlessly.

Features

  • Connect plugin wallets supporting Nostr

  • Execute transactions

  • Place orders in the market


Support Method List

lnsdk

  • getConfig(): Retrieve configuration.

  • getNostrPool(): Get information about the Nostr pool.

lnsdk.market

  • listOrder(options): List orders in the market.

  • takeOrder(orderId): Take an order in the market.

  • cancelOrder(orderId): Cancel an order in the market.

  • repairOrder(orderId, amount, price, buyOrSellTokenName, payTokenName): Repair an order in the market.

lnsdk.token

  • approve(options): Approve token transfer.

  • transfer(options): Transfer tokens.

  • addAddressBook(options): Add an address to the address book.

  • deposit(options): Deposit tokens.

  • withdraw(options): Withdraw tokens.

lnsdk.provider

  • supportedProviderList: Retrieve a list of supported providers.

  • connect(providerName): Connect to a provider.

  • getProvider(providerName): Get information about a provider.

lnsdk.utils

  • nip04(): NIP04 utilities.

  • nip19(): NIP19 utilities.

  • generatePrivateKey(): Generate a private key.

  • getPublicKey(privateKey): Get a public key from a private key.

  • getEventHash(event): Get the hash of an event.


Setup

React

Install

yarn add nasdk

//import bolt11min.js to public/index.html through script src
<script src=`${yourpath}/bolt11.min.js``></script>

Code

import {useCallback} from 'react
import NASDK from 'lnsdk'
const lnsdk = new LNSDK({ env: 'development'}) // env: development | production
const onTransfer = useCallback(async()=>{
    const res = await lnsdk.token.transfer({ tokenName: 'NOSTR', amount: 1, to: 'npub1zptcf2v9ms5dgd8mgulsckk04l9upr3lnerk6ckh9zyntzu0ness753zx8' })
},[])
return <>
{your code}
</>


Node.js

Installation

yarn add websocket-polyfill bolt11 nasdk

Code

import 'websocket-polyfill'
import 'bolt11'
import LNSDK from 'lnsdk'

const privateKey='45d914aef9c2f85a47b242ef684245c02e0af93d6f9031fcc3444ede8ac0a295'
const lnsdk = new LNSDK({ env: 'development', privateKey, poolOptions:{getTimeout:10*1000} })

 const res = await nasdk.market.listOrder({ side:'sell',amount:'100',price:'101',buyOrSellTokenName:'TRICK',payTokenName:'SATS'})

 // You can see more examples in the tests directory

HTML

<scrpt src=`${youpath}/nasdk.umd.js`>
<script src=`${yourpath}/bolt11.min.js``></script>
<script>
     const lnsdk = new LNSDK({ env: 'development' })
     const supportedProviderNames = Object.keys(lnsdk.provider.supportedProviderList)
     async function onConnect(providerName='alby') {
        const res = await lnsdk.provider.connect(providerName)
     }
</script>

Example

Check out examples in the src/tests directory.

Running Tests

To run the test suite:

yarn node --experimental-vm-modules $(yarn bin jest) --detectOpenHandles

Start integrating NASDK into your project and unlock the potential of the NOSTR ASSET protocol!

Last updated