Skip to content

Javascript developer library to interact with JMES Network

Notifications You must be signed in to change notification settings

blockheist/jmes.js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jmes.js

Javascript developer library to interact with JMES Network

Install

ES5/ES6 via NPM

In order to use this library, you will need to add it to your project as a dependency.

Having NodeJS installed:

npm install jmes

CDN Standalone

For browser usage, you can also directly rely on unpkg :

<script src="https://unpkg.com/jmes"></script>

Some considerations

We define a Wallet as a primitives that is initiated from a root private key
A Wallet can be derived into multiple Account (that have individual public/private key pair).

Client

import { Client, Mnemonic } from 'jmes.js'
const client = new Client();
const mnemonic = new Mnemonic();

// Initiate a wallet from a specific mnemonic or private key
const wallet = client.createWallet(mnemonic);
// Each wallet allow to generate multiple account, by default, it will be index 0. 
const account = wallet.getAccount();

// Get an account's Address on jmesxxxx format.  
const address = account.getAddress();

// Sign and broadcast a transaction
const signedMessage = wallet.signMessage({});
const txid = wallet.broadcastSignedMessage(signedMessage);

// Get feed
const feed = client.providers.marketplaceAPI.getFeed();
const item = client.providers.marketplaceAPI.getItem(itemIdentifier);
const author = client.providers.marketplaceAPI.getAuthor(item.author);
  • account.getFeed() - Returns an array of items (nft,...)

  • account.getAuthor({nickname})

  • account.getAuthors()

  • account.getUser({nickname})

  • account.mintItem(item) - Allow to create a new item of type NFT.

  • account.getItem({id}) - Allow to get a specific item

  • account.findItem({syntax})

Usage on React-Native

While this library will handle secpk1256 generation, upon creating a new Mnemonic, it might causes some issues despite overwritting crypto module.
If so, you can pass specific bytes to the Mnemonic function.

import 'react-native-get-random-values'
const randomBytes = crypto.getRandomValues(new Uint8Array(32));
const mnemonic = Mnemonic.generateMnemonic(randomBytes);

Items

Items images can be found at {SERVER_URI}/images/{item.filename}. eg: http://localhost:3001/images/82f182ddbef3d7b80bafc06ee9e4a664.png
SERVER_URL is specified in MarketplaceAPI.endpoint.images_url.
Where filename is md5.

About

Javascript developer library to interact with JMES Network

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.9%
  • JavaScript 0.1%