bet-test-sdk 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -84,6 +84,14 @@ const createAndBuyToken = async (sdk, testAccount) => {
84
84
  };
85
85
 
86
86
  const buyTokens = async (sdk, testAccount, mint) => {
87
+ const curveStateAccount = await sdk.getCurveStateAccount(mint)
88
+ if (curveStateAccount) {
89
+ console.log(
90
+ "mint does not exist",
91
+ mint.toBase58()
92
+ );
93
+ return;
94
+ }
87
95
  const buyResults = await sdk.buy(
88
96
  testAccount,
89
97
  mint,
@@ -3,7 +3,7 @@ import * as borsh from '@coral-xyz/borsh';
3
3
  import { struct as struct$1, publicKey as publicKey$3, u64 as u64$1, u8 as u8$1, bool } from '@coral-xyz/borsh';
4
4
  import { getAssociatedTokenAddress, getAccount, createAssociatedTokenAccountInstruction, getAssociatedTokenAddressSync } from '@solana/spl-token';
5
5
 
6
- const PROGRAM_ID = "7MTnCi4Q3LeF2ZnfXykdemNmib5Jv2SXvNoUFQ4PLS77";
6
+ const PROGRAM_ID = "E3zXK7VRyn39uuyshkQCriRXUAsR1KKQXaJ55KyDW4bp";
7
7
  const BET_API = "https://dev-jeffery.openhub.network/api";
8
8
  const BET_STATE_SEED = "bet-state";
9
9
  const CURVE_STATE_SEED = "curve-state";
@@ -19086,7 +19086,7 @@ class BetState {
19086
19086
  }
19087
19087
  }
19088
19088
 
19089
- var address = "7MTnCi4Q3LeF2ZnfXykdemNmib5Jv2SXvNoUFQ4PLS77";
19089
+ var address = "E3zXK7VRyn39uuyshkQCriRXUAsR1KKQXaJ55KyDW4bp";
19090
19090
  var metadata = {
19091
19091
  name: "bet",
19092
19092
  version: "0.1.0",
@@ -20089,7 +20089,7 @@ var instructions = [
20089
20089
  },
20090
20090
  {
20091
20091
  name: "dynamic_amm_program",
20092
- address: "7MTnCi4Q3LeF2ZnfXykdemNmib5Jv2SXvNoUFQ4PLS77"
20092
+ address: "E3zXK7VRyn39uuyshkQCriRXUAsR1KKQXaJ55KyDW4bp"
20093
20093
  }
20094
20094
  ],
20095
20095
  args: [
@@ -21811,36 +21811,22 @@ class BetSDK {
21811
21811
  this.connection = this.program.provider.connection;
21812
21812
  }
21813
21813
  async createAndBuy(creator, migrateType, createTokenMetadata, buyAmountSol, slippageBasisPoints = 500n, priorityFees, commitment = DEFAULT_COMMITMENT, finality = DEFAULT_FINALITY) {
21814
- let mintKeyPair;
21815
- try {
21816
- const request = await fetch(`${BET_API}/token/mint-pair`, {
21817
- method: "GET",
21818
- credentials: 'same-origin'
21819
- });
21820
- if (request.status === 500) {
21821
- // Try to get more error details
21822
- const errorText = await request.text();
21823
- throw new Error(`Server error (500): ${errorText || 'No error details available'}`);
21824
- }
21825
- if (!request.ok) {
21826
- throw new Error(`HTTP error! status: ${request.status}`);
21827
- }
21828
- const responseJson = await request.json();
21829
- if (!responseJson) {
21830
- throw new Error('Empty response received from server');
21831
- }
21832
- if (responseJson.code == 0) {
21833
- const privateKey = bs58$1.decode(responseJson.data.privateKey);
21834
- mintKeyPair = Keypair.fromSecretKey(privateKey);
21835
- }
21836
- else {
21837
- throw new Error(responseJson.msg);
21838
- }
21839
- }
21840
- catch (error) {
21841
- console.error('Error in createTokenMetadata', error);
21842
- throw error;
21843
- }
21814
+ const { newTx, mintKeyPair } = await this.getCreateAndBuyInstructions(creator, migrateType, createTokenMetadata, buyAmountSol, slippageBasisPoints, commitment);
21815
+ let createResults = await sendTx(this.connection, newTx, creator.publicKey, [creator, mintKeyPair], priorityFees, commitment, finality);
21816
+ return createResults;
21817
+ }
21818
+ async buy(buyer, mint, buyAmountSol, slippageBasisPoints = 500n, priorityFees, commitment = DEFAULT_COMMITMENT, finality = DEFAULT_FINALITY) {
21819
+ let buyTx = await this.getBuyInstructionsBySolAmount(buyer.publicKey, mint, buyAmountSol, slippageBasisPoints, commitment);
21820
+ let buyResults = await sendTx(this.connection, buyTx, buyer.publicKey, [buyer], priorityFees, commitment, finality);
21821
+ return buyResults;
21822
+ }
21823
+ async sell(seller, mint, sellTokenAmount, slippageBasisPoints = 500n, priorityFees, commitment = DEFAULT_COMMITMENT, finality = DEFAULT_FINALITY) {
21824
+ let sellTx = await this.getSellInstructionsByTokenAmount(seller.publicKey, mint, sellTokenAmount, slippageBasisPoints);
21825
+ let sellResults = await sendTx(this.connection, sellTx, seller.publicKey, [seller], priorityFees, commitment, finality);
21826
+ return sellResults;
21827
+ }
21828
+ async getCreateAndBuyInstructions(creator, migrateType, createTokenMetadata, buyAmountSol, slippageBasisPoints = 500n, commitment = DEFAULT_COMMITMENT) {
21829
+ let mintKeyPair = await this.createMint();
21844
21830
  let tokenMetadata = await this.createTokenMetadata(createTokenMetadata);
21845
21831
  let createTx = await this.getCreateInstructions(creator.publicKey, createTokenMetadata.name, createTokenMetadata.symbol, tokenMetadata.data, migrateType, mintKeyPair);
21846
21832
  let newTx = new Transaction().add(createTx);
@@ -21850,24 +21836,15 @@ class BetSDK {
21850
21836
  }
21851
21837
  if (buyAmountSol > 0) {
21852
21838
  const buyAmount = getInitialBuyPrice(buyAmountSol);
21853
- // console.log("buyAmount:", buyAmount);
21854
21839
  const buyAmountWithSlippage = calculateWithSlippageBuy(buyAmountSol, slippageBasisPoints);
21855
- console.log("buyAmountWithSlippage:", buyAmountWithSlippage);
21840
+ // console.log("buyAmountWithSlippage:", buyAmountWithSlippage);
21856
21841
  const buyTx = await this.getBuyInstructions(creator.publicKey, mintKeyPair.publicKey, buyAmount, buyAmountWithSlippage);
21857
21842
  newTx.add(buyTx);
21858
21843
  }
21859
- let createResults = await sendTx(this.connection, newTx, creator.publicKey, [creator, mintKeyPair], priorityFees, commitment, finality);
21860
- return createResults;
21861
- }
21862
- async buy(buyer, mint, buyAmountSol, slippageBasisPoints = 500n, priorityFees, commitment = DEFAULT_COMMITMENT, finality = DEFAULT_FINALITY) {
21863
- let buyTx = await this.getBuyInstructionsBySolAmount(buyer.publicKey, mint, buyAmountSol, slippageBasisPoints, commitment);
21864
- let buyResults = await sendTx(this.connection, buyTx, buyer.publicKey, [buyer], priorityFees, commitment, finality);
21865
- return buyResults;
21866
- }
21867
- async sell(seller, mint, sellTokenAmount, slippageBasisPoints = 500n, priorityFees, commitment = DEFAULT_COMMITMENT, finality = DEFAULT_FINALITY) {
21868
- let sellTx = await this.getSellInstructionsByTokenAmount(seller.publicKey, mint, sellTokenAmount, slippageBasisPoints);
21869
- let sellResults = await sendTx(this.connection, sellTx, seller.publicKey, [seller], priorityFees, commitment, finality);
21870
- return sellResults;
21844
+ return {
21845
+ newTx,
21846
+ mintKeyPair
21847
+ };
21871
21848
  }
21872
21849
  //create token instructions
21873
21850
  async getCreateInstructions(creator, name, symbol, uri, migrateType, mintKeyPair) {
@@ -21999,6 +21976,36 @@ class BetSDK {
21999
21976
  ], this.program.programId);
22000
21977
  return configState;
22001
21978
  }
21979
+ async createMint() {
21980
+ try {
21981
+ const request = await fetch(`${BET_API}/token/mint-pair`, {
21982
+ method: "GET",
21983
+ credentials: 'same-origin'
21984
+ });
21985
+ if (request.status === 500) {
21986
+ // Try to get more error details
21987
+ const errorText = await request.text();
21988
+ throw new Error(`Server error (500): ${errorText || 'No error details available'}`);
21989
+ }
21990
+ if (!request.ok) {
21991
+ throw new Error(`HTTP error! status: ${request.status}`);
21992
+ }
21993
+ const responseJson = await request.json();
21994
+ if (!responseJson) {
21995
+ throw new Error('Empty response received from server');
21996
+ }
21997
+ if (responseJson.code == 0 && responseJson.data) {
21998
+ return Keypair.fromSecretKey(bs58$1.decode(responseJson.data.privateKey));
21999
+ }
22000
+ else {
22001
+ throw new Error(responseJson.msg);
22002
+ }
22003
+ }
22004
+ catch (error) {
22005
+ console.error('Error in createTokenMetadata', error);
22006
+ throw error;
22007
+ }
22008
+ }
22002
22009
  async createTokenMetadata(create) {
22003
22010
  // Validate file
22004
22011
  if (!(create.file instanceof Blob)) {