winto-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.4.1 • Public • Published

winto-sdk

Installation

npm install winto-sdk

BackOffice

Load Winto wrappers

import { WintoSDK, AdminWrapper } from "winto-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";

const wallet = useWallet();
const { connection } = useConnection();

const provider = SolanaProvider.init({
  connection,
  wallet: wallet as any,
  opts: {
    preflightCommitment: "finalized",
    commitment: "finalized",
  },
});
const wintoSDK = WintoSDK.load({ provider });
const adminWrapper = new AdminWrapper(wintoSDK, wallet.publickKey); // wallet.publickKey should be String

initialize

try {
  const tx = await adminWrapper.initialize({
    botWallet: botWalletAddress,
    devWallet: devWalletAddress,
    fundWallet: fundWalletAddress,
    wingsCreator: wingsCreatorAddress,
    freelyTicketNftCreators, // 3 array string [String, String, String]
    winTokenAddress
  });
  const result = await tx.confirm();
  await connection.confirmTransaction(result.signature, "finalized");
} catch (error: any) {
  console.log(error);
  toast.success(<div>{error.name}</div>);
}

update by admin

  const tx = await adminWrapper.updateByAdmin({
    fundWallet: fundWalletAddress,
    wingsCreator: wingsCreatorAddress,
    solAmountForBonusTickets, // sol amount
    tokenAmountForBonusTickets,
    gameBonusTicketAmount,
    freelyTicketNftCreators, // 3 Pubkey array
    freelyTicketAmount, // 3 number array
    freelyTicketNftStakingLockPeriod, // 3 number array
    communityFee, // 1000 = 100%, 255 = 25.5%
    isEmergencyFlag: isEmergency ? true : false
  });

update by dev

  const tx = await adminWrapper.updateByDev({
    botWallet: botWalletAddress,
    wingsCreator: wingsCreatorAddress,
    isEmergencyFlag: isEmergency ? true : false,
    freelyTicketNftCreators, // 3 Pubkey array
  });

update organizer merkle whitelist

  const tx = await adminWrapper.updateOrganizerMerkleWhitelist({
    organizerWhitelistMerkleRoot: organizer_hash,
  });

withdraw $SOL from community PDA

  const tx = await adminWrapper.withdrawPdaSol({
    withdrawAmount, // SOL amount; ex: 2.12
  });

withdraw SPL-Token from community PDA

  const tx = await adminWrapper.withdrawPdaToken({
    withdrawAmount, // token amount; ex: 3.412
  });

get balance of communit pda

  const balance = await adminWrapper.getCommunityPdaInfo();

distribution $WIN to PDAs

  let vaultType; // enum PdaType; Contributors = 0, Airdrop = 1, Dao = 2, P2e = 3,
  const tx = await adminWrapper.assetsDistribution({
    amount,
    vaultType
  });

get global info

  const globalInfo = await adminWrapper.getGlobalInfo(type); // type should be "admin" or "dev"
  /*
  *  there are 3 elements for freely tickets
  *  globalInfo['freelyTicketNftCreators'] = winInfo['freelyTicketNftCreators'];
  *  globalInfo['freelyTicketAmount'] = winInfo['freelyTicketAmount'];
  *  globalInfo['freelyTicketNftStakingPeriod'] = winInfo['freelyTicketNftStakingLockPeriod'];
  *  index 0 is Red, index 1 is white, index 2 is black
  */

withdraw from pda

  let pdaType; // enum PdaType; Contributors = 0, Airdrop = 1, Dao = 2, P2e = 3,
  const tx = await adminWrapper.withdrawFromPda({
    withdrawAmount,
    pdaType
  });

Organizer

import { WintoSDK, OrganizerWrapper } from "winto-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";

const wallet = useWallet();
const { connection } = useConnection();

const provider = SolanaProvider.init({
  connection,
  wallet: wallet as any,
  opts: {
    preflightCommitment: "finalized",
    commitment: "finalized",
  },
});
const wintoSDK = WintoSDK.load({ provider });
const organizerWrapper = new OrganizerWrapper(wintoSDK, wallet.publickKey);

Create game

  const gameNftAddressList: String[] = ["NFT address for game"]
  const tx = await organizerWrapper.createGame({
    ticketTokenAddress, // Token address to buy tickets
    ticketPrice, // Price per ticket; type - number
    minimumCost, // Minimum cost to end game; type-number
    proof, // Proof of organizer whitelist
    gameTimeStamp,  //Current timestamp in seconds
    duration, // Game duration in seconds
    coinType, // 0 or 1, enum CoinType: SOL or TOKEN
    gameNftAddressList, // array of string address
    wingsType, // wings type; 0: None, 1: Gold, 2: Silver, 3: Bronze
    wingsNftMintAddress
  });

End game

  const gamePda: String = "Game PDA address";
  const tx = await organizerWrapper.endGame({
    randomNumber: [u32;6],// Random 6 numbers in array
    gamePda
  });

Lock Wings NFT

  const mintNft: String = "Wings NFT mint address";
  const tx = await organizerWrapper.lockWingsNft(mintNft);

Unlock Wings NFT

  const mintNft: String = "Wings NFT mint address";
  const tx = await organizerWrapper.unlockWingsNft(mintNft);

Recreate game

  const oldGamePda: String = "Old game PDA address";
  const tx = await organizerWrapper.recreateGame({
    proof, // Proof of organizer whitelist,
    gameTimeStamp, // timestamp in seconds
    oldGamePda, 
    wingsType, // wings type; 0: None, 1: Gold, 2: Silver, 3: Bronze
    wingsNftMintAddress
  });

Organizer get back NFT in cancelled game

  const gamePda: String = "Game PDA address";
  const tx = await organizerWrapper.organizerGetBackNft(gamePda);

Organizer claim game SOL in ended game

  const gamePda: String = "Game PDA address";
  const tx = await organizerWrapper.organizerProcessGameSol(gamePda);

Organizer claim game TOKEN in ended game

  const gamePda: String = "Game PDA address";
  const tx = await organizerWrapper.organizerProcessGameToken(gamePda);

Organizer get game info

  const gamePda: String = "Game PDA address";
  const tx = await organizerWrapper.getGameInfo(gamePda);

User

import { WintoSDK, UserWrapper } from "winto-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";

const wallet = useWallet();
const { connection } = useConnection();

const provider = SolanaProvider.init({
  connection,
  wallet: wallet as any,
  opts: {
    preflightCommitment: "finalized",
    commitment: "finalized",
  },
});
const wintoSDK = WintoSDK.load({ provider });
const userWrapper = new UserWrapper(wintoSDK, wallet.publickKey);

User claim airdrop $WIN

  const tx = await userWrapper.userClaimAirdropWin({
    rewardType: type // enum RewardType: 0: ClaimAirdrop, 1: GameRewardAirdrop, 2: Dao, 3: Contributors
  });

User bid first on game

  const gamePda = "Game PDA address";
  const tx = await userWrapper.createUserGlobalBidPda({
    ticketAmount: ticketAmount, //Amount that user buy on this bid
    bonusTicketAmount,
    randomNumber, // Random 6 numbers in array
  }, gamePda);

User bid on game

  const gamePda = "Game PDA address";
  const tx = await userWrapper.userGameBid({
    ticketAmount: ticketAmount, //Amount that user buy on this bid
    bonusTicketAmount,
    randomNumber, // Random 6 numbers in array
    bidNumber //Next bid number on game
  }, gamePda);

User withdraw fund from ended game

  const gamePda = "Game PDA address";
  const tx = await userWrapper.userWithdrawFunds(gamePda);

Winner claim NFT from ended game

  const gamePda = "Game PDA address";
  const tx = await userWrapper.winnerClaimNft(gamePda);

stake freely nft

  const freelyNftAddress = "Freely NFT address";
  const tx = await userWrapper.stakeFreelyNft(freelyNftAddress);

unstake freely nft

  const tx = await userWrapper.unstakeFreelyNft();

Get user details

  const userWallet = "User wallet addres address";
  const tx = await userWrapper.getUserInfo(userWallet);

Get My Bid list on specific game

  const tx = await userWrapper.getMyGameBidList(userWallet, gamePda);

Get all bid list on specific game

  const tx = await userWrapper.getGameBidList(gamePda);

Readme

Keywords

none

Package Sidebar

Install

npm i winto-sdk

Weekly Downloads

0

Version

1.4.1

License

MIT

Unpacked Size

361 kB

Total Files

62

Last publish

Collaborators

  • johnpatch0502