0.1.3 • Published 1 year ago
luna-burnflip-sdk v0.1.3
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);
});
};