1.4.1 • Published 2 years ago

winto-sdk v1.4.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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);
1.4.1

2 years ago

1.4.0

2 years ago

1.3.48

2 years ago

1.3.47

2 years ago

1.3.46

2 years ago

1.3.45

2 years ago

1.3.44

2 years ago

1.3.43

2 years ago

1.3.42

2 years ago

1.3.41

2 years ago

1.3.40

2 years ago

1.3.39

2 years ago

1.3.38

2 years ago

1.3.37

2 years ago

1.3.36

2 years ago

1.3.35

2 years ago

1.3.34

2 years ago

1.3.33

2 years ago

1.3.32

2 years ago

1.3.31

2 years ago

1.3.30

2 years ago

1.3.29

2 years ago

1.3.28

2 years ago

1.3.27

2 years ago

1.3.26

2 years ago

1.3.25

2 years ago

1.3.23

2 years ago

1.3.22

2 years ago

1.3.21

2 years ago

1.3.20

2 years ago

1.3.19

2 years ago

1.3.18

2 years ago

1.3.17

2 years ago

1.3.16

2 years ago

1.3.15

2 years ago

1.3.13

2 years ago

1.3.12

2 years ago

1.3.11

2 years ago

1.3.10

2 years ago

1.3.9

2 years ago

1.3.8

2 years ago

1.3.7

2 years ago

1.3.6

2 years ago

1.3.5

2 years ago

1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.53

2 years ago

0.0.52

2 years ago

0.0.51

2 years ago

0.0.50

2 years ago

0.0.49

2 years ago

0.0.48

2 years ago

0.0.47

2 years ago

0.0.46

2 years ago

0.0.45

2 years ago

0.0.44

2 years ago

0.0.43

2 years ago

0.0.42

2 years ago

0.0.41

2 years ago

0.0.40

2 years ago

0.0.39

2 years ago

0.0.38

2 years ago

0.0.37

2 years ago

0.0.36

2 years ago

0.0.35

2 years ago

0.0.34

2 years ago

0.0.33

2 years ago

0.0.32

2 years ago

0.0.31

2 years ago

0.0.30

2 years ago

0.0.29

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.24

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago