0.9.83 • Published 1 year ago

xls20 v0.9.83

Weekly downloads
-
License
Apache 2.0
Repository
github
Last release
1 year ago

xls20.js

xls20.js is an SDK that can be used to interact with XLS-20 NFTs and supports all currently available NFToken transaction types.

xls20.js was built by the Xdragons team in order to interact with Xdragon NFTs, however this SDK can be used to interact with any XLS-20 NFT(s).

Install

With npm

npm install xls20

From Source

Or build from source

git clone https://github.com/dylanireland/xls20.js.git
cd xls20.js/

Then install npm packages

npm install

Documentation

Documentation is written in the source and displayed using JSDoc.

Read the reference documentation here.

Example Usage

Import Package

const XLS20 = require('xls20')

Instantiate XLS20 and Connect to Devnet

const network = "Devnet"
const seed = "sEdV82hVrg1hYKrPcYtanw6oEypn6VW"
const xls20 = new XLS20(network, seed)
await xls20.connect()

Or to Generate a Wallet on the Fly

const network = "Devnet"
const xls20 = new XLS20(network)
await xls20.connect()

Fund Wallet

console.log(await xls20.fundWallet())

Response:

{
  wallet: Wallet {
    publicKey: 'ED1899DC4EAB06FBD32DF013094B230E225CDA8772A47DA4911E0068E5DC7B6B05',
    privateKey: 'EDD5CD784B52C4C5FC46D090E0FC22A224514D761DF7CCC0617A06C589FE97D8C9',
    classicAddress: 'r9yV4F4cPjrs15tcd43E2wXUD2sQx4Beek',
    seed: 'sEd7rpTaAVzeJAqonQwuB2QrcRQQvYD'
  },
  balance: 1000
}

Mint NFT

const transferFee = 5000 // 5%
const flags = 9 // Burnable and transferable
const uri = "ipfs://MeTaDaTaUrIed84ca32c32342eca83d" // Metadata URI
const mintResponse = await xls20.mint(transferFee, flags, uri)
console.log(mintResponse)

Response:

{
  id: 15,
  result: {
    Account: 'rU32vbeoRu9TPigMXbJwqxRhWZsXdDJ5Ny',
    Fee: '12',
    Flags: 9,
    ...
    URI: '68747470733A2F2F78647261676F6E732E696F2F7374617469632F70686F746F732F746573746173736574732F312E706E67',
    ...
    meta: {
      AffectedNodes: [Array],
      ...
    },
    validated: true
  },
  type: 'response'
}

Note: The juicy stuff is in result.meta.AffectedNodes

Create a Public Sell Offer

const nfTokenID = mintResponse.result.meta.AffectedNodes.filter(obj => 'CreatedNode' in obj)[0].CreatedNode.NewFields.NFTokens[0].NFToken.NFTokenID;
const salePrice = 500_000_000 // In drops (500 XRP here)
console.log(await xls20.createSellOffer(nfTokenID, salePrice))

Response:

{
  id: 17,
  result: {
    Account: 'r9yV4F4cPjrs15tcd43E2wXUD2sQx4Beek',
    Amount: '500000000',
    Fee: '12',
    ...
    ...
    meta: {
      AffectedNodes: [Array],
      ...
    },
    validated: true
  },
  type: 'response'
}

Note: The juicy stuff is in result.meta.AffectedNodes

More

It does more, read the docs!

Dependencies

This SDK depends only on xrpl.js.

0.9.83

1 year ago

0.9.82

2 years ago

0.9.81

2 years ago

0.9.8

2 years ago

0.9.7

2 years ago

0.9.6

2 years ago

0.9.5

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.9.0

2 years ago