0.1.3 • Published 1 year ago

luna-burnflip-sdk v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

This module is SDK for luna (2.0 and classic) burn flip game platform. This module can be used in classic, luna 2.0, and pisco testnet.

Install

To install package, use:

npm install luna-burnflip-sdk

Usage

Readonly clients
import {
  createSignature,
  FlipResult,
  getReadonlyFlipClient,
  getTokenBalance,
  increaseAllowance,
  mintToken,
  bet
} from 'luna-burnflip-sdk';
import { LCDClient, MnemonicKey } from '@terra-money/terra.js';

let lcd = new LCDClient({
    URL: 'https://lcd.terra.dev',
    chainID: 'columbus-5',
});

const readFlipClient = async () => {
  // Readonly client for fetching data
  const readonlyFlipClient = getReadonlyFlipClient("classic");

  const history = await readonlyFlipClient.getAllBettingHistoryQuery({});
  console.log('bet history: ', history);
};
Mint WLUNC
const mint = async () => {
  const mk = new MnemonicKey({
    mnemonic: MNEMONIC,
  });
  const wallet = lcd.wallet(mk);
  await mintToken('classic', wallet, "1010000000");
  // Mint 1k WLUNC
  /**
   * We need to send a bit more than 1K lunc to wrap 1K WLUNC.
   * Because there is 0.2% tax fee (burn) for lunc transaction.
   * So if you send 1K lunc, then you will get 998 WLUNC.
  */
  const balance = await getTokenBalance('classic', wallet.key.accAddress);
  console.log('balance: ', balance);
};
Bet
const doBet = async () => {
  const mk = new MnemonicKey({
    mnemonic: MNEMONIC,
  });
  const wallet = lcd.wallet(mk);
  const flipQueryClient = getReadonlyFlipClient("classic");
  //approve
  await increaseAllowance(
    'classic',
    wallet,
    "1000000000",
    flipQueryClient.contractAddress
  );

  const signature = await createSignature(
    {
      address: wallet.key.accAddress,
      amount: '1000000000', // 1k wlunc
      flip: FlipResult.HEAD,
    },
    wallet
  );

  await bet(
    {
      address: wallet.key.accAddress,
      amount: '1000000000', // 1k wlunc
      flip: FlipResult.HEAD,
      signature: signature,
    }
  ).then(res => {
    console.log('bet result: ', res.data);
  });
};