@white-matrix/nft-phantaci-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

NFT Phantaci SDK

how to use

sample example

const provider = new ethers.providers.Web3Provider(window.ethereum);
const singer = provider.getSigner();
const network = '';
const phantaci = new EtherPhantaciClient();
phantaci.connectProvider(DeploymentInfo[network].phantaci.proxyAddress, provider);
phantaci.connectSigner(singer);
phantaci.setWaitConfirmations(1);

interface

import {Provider} from "@ethersproject/providers";
import {BigNumber, PayableOverrides, Signer} from "ethers";
import {ERC721Client} from "./ERC721Client";
import {ContractBuyResult, ContractClaimResult, TokenInfo} from "../model/chain";
import {TokenMintedEvent, TransferEvent} from "../model/event.model";

export interface PhantaciClient extends ERC721Client {
  connectProvider(address: string, provider: Provider): Promise<PhantaciClient>;

  connectSigner(signer: Signer): PhantaciClient;

  /*======== PhantaciClient specific views======*/

  /**
   * @returns the number of available tokens to be purchased
   */
  stockSupply(config?: PayableOverrides): Promise<BigNumber>;

  /**
   * @returns the current token price
   */
  tokenPrice(config?: PayableOverrides): Promise<BigNumber>;

  /**
   * Return token detailed information including owner address
   * @param tokenId the token to be searched for
   * @returns returns the token owner address
   */
  tokenInfo(tokenId: BigNumber, config?: PayableOverrides): Promise<TokenInfo>;

  /*======== PhantaciClient specific transactions======*/

  /**
   * buy
   * @param quantity the amount of tokens to buy, will trigger Web3Provider to send transaction in browser
   * @param config ethers PayableOverrides
   * @returns BuyResult including transactionHash and a list of awarded tokenIds
   */
  buy(quantity: BigNumber, config?: PayableOverrides): Promise<ContractBuyResult>;

  /**
   * claim
   * @param quantity the amount of tokens to buy, will trigger Web3Provider to send transaction in browser
   * @param config ethers PayableOverrides
   * @returns BuyResult including transactionHash and a list of awarded tokenIds
   * address account,
   uint256 numberOfToken,
   uint256 nonce,
   uint256 chainId,
   bytes memory signature
   */
  claim(
    account: string,
    numberOfToken: number,
    nonce: number,
    signature: string,
    config?: PayableOverrides
  ): Promise<ContractClaimResult>;

  /*======== Util functions======*/

  /**
   * filers all the TokenMintedEvent between 'from' and 'to' blocks
   * @param fromBlock the starting block
   * @param toBlock the ending block
   * @returns promise of all the TokenMintedEvent in an array
   */
  queryTokenMintedEvent(fromBlock: number, toBlock: number): Promise<TokenMintedEvent[]>;

  /**
   * filers all the ERC721 TransferEvent between 'from' and 'to' blocks
   * @param fromBlock the starting block
   * @param toBlock the ending block
   * @returns promise of all the TransferEvent in an array
   */
  queryTransferEvent(fromBlock: number, toBlock: number): Promise<TransferEvent[]>;

  /**
   * 对Claim签名
   * @param privateKey contract owner private key
   * @param number of tokens
   * @param nonce
   * @param chainId
   * @returns signature is verified in the preOrder transaction
   */
  signClaimMessage(
    privateKey: string,
    account: string,
    numberOfToken: number,
    nonce: number,
    chainId: number
  ): Promise<string>;

  /**
   * @returns the block number (or height) of the most recently mined block.
   */
  getBlockNumber(): Promise<number>;
}

Readme

Keywords

none

Package Sidebar

Install

npm i @white-matrix/nft-phantaci-sdk

Weekly Downloads

13

Version

1.1.3

License

MIT

Unpacked Size

964 kB

Total Files

184

Last publish

Collaborators

  • shuuuuting
  • hexi1997
  • kilru
  • lucklyric
  • xiadd