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