npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@mantial/minter-store

v1.1.8

Published

Mantial - Minter SDK

Downloads

3

Readme

@mantial/minter-store

Source code at https://github.com/mantial/mantial-minter-store

Installation

npm install @mantial/minter-store

Build

npm run build

Testing library locally

First, clone the project.

Next, generate the dist folder with:

npm run build

Install the package on the target project

npm install @mantial/minter-store

Import from your dist folder and test it :)

Usage

The MinterProvider must enclose the components used and receive chainId and ApiURL from the config. For example:

import React from 'react';
import {MinterProvider} from '@mantial/minter-store';

function App(){
    return(
        <MinterProvider chainId={"0x3"} apiURL={"https://apidev.immutable.mantial.io"} apiIMX={"https://link.ropsten.x.immutable.com"}>
            <Router />  //the rest of your app...
        </MinterProvider>
    )
}

export default App;

Then, you are able to use the minter context somewhere. You have three diferent methods you can use:

  • handleChangeChain: to handle when you want the user to change the chain to the chainId you passed in the connfig.

  • loginIMX: to login trough ImmutableX to mint NFTs

  • collectionOperations: a set of functions:

    • maxBuy: returns the maximum allowed amount that the user can mint per tx.
    • getCollectionDataFromContract: returns useful data from the smart contract (price, totalSaleSupply, saleActive, collectionSupply, saleSold).
    • isSaleSupplyNotAvailable: returns true if the sale of a collection where the user is trying to mint is out of supply.
    • isSupplyNotAvailable: returns true if the collection has no more supply
    • handleBuy: handle the connection to the wallet to allow the user to mint

Example:

import React from 'react';
import {useMinter} from '@mantial/mantial-store';

function Mint(){
    const { collectionOperations } = useMinter();

    return(
        <div>
            <Button onClick={() => {collectionOperations.handleBuy(collection, currentSale, amount)}}>Mint your NFT</Button>
        </div>
    )
}

export default Mint;

Also the library allow you to use some custom hooks like:

  • useLogin: allows to connect to the network, check the chain id, check if the provider exists.
  • useCollection: returns all the collection data from the backend.
  • useSales: returns all the sales data from the backend.

Note: There is a usePrivateMinter, the idea for this is to use it only inside this project and not export its functionality to be used externally.