@jup-ag/lend 0.1.4-beta.2 → 0.1.5

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.
@@ -1,5 +1,5 @@
1
- import { V as Vaults, L as LiquidateParams } from '../shared/lend.DNFQlLzM.mjs';
2
- export { C as ConnectionParams, I as InitPositionIxParams, e as LiquidateContextParams, O as OperateContextParams, a as OperateParams, c as getInitPositionContext, b as getInitPositionIx, f as getLiquidateContext, h as getLiquidateIx, g as getOperateContext, d as getOperateIx } from '../shared/lend.DNFQlLzM.mjs';
1
+ import { V as Vaults, L as LiquidateParams } from '../shared/lend.D69BluYU.mjs';
2
+ export { C as ConnectionParams, I as InitPositionIxParams, e as LiquidateContextParams, O as OperateContextParams, a as OperateParams, c as getInitPositionContext, b as getInitPositionIx, f as getLiquidateContext, h as getLiquidateIx, g as getOperateContext, d as getOperateIx } from '../shared/lend.D69BluYU.mjs';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import BN from 'bn.js';
5
5
  import * as _solana_web3_js from '@solana/web3.js';
@@ -90,6 +90,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
90
90
  redstone?: undefined;
91
91
  chainlink?: undefined;
92
92
  singlePool?: undefined;
93
+ jupLend?: undefined;
93
94
  } & {
94
95
  pyth: Record<string, never>;
95
96
  }) | ({
@@ -98,6 +99,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
98
99
  redstone?: undefined;
99
100
  chainlink?: undefined;
100
101
  singlePool?: undefined;
102
+ jupLend?: undefined;
101
103
  } & {
102
104
  stakePool: Record<string, never>;
103
105
  }) | ({
@@ -106,6 +108,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
106
108
  redstone?: undefined;
107
109
  chainlink?: undefined;
108
110
  singlePool?: undefined;
111
+ jupLend?: undefined;
109
112
  } & {
110
113
  msolPool: Record<string, never>;
111
114
  }) | ({
@@ -114,6 +117,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
114
117
  msolPool?: undefined;
115
118
  chainlink?: undefined;
116
119
  singlePool?: undefined;
120
+ jupLend?: undefined;
117
121
  } & {
118
122
  redstone: Record<string, never>;
119
123
  }) | ({
@@ -122,6 +126,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
122
126
  msolPool?: undefined;
123
127
  redstone?: undefined;
124
128
  singlePool?: undefined;
129
+ jupLend?: undefined;
125
130
  } & {
126
131
  chainlink: Record<string, never>;
127
132
  }) | ({
@@ -130,8 +135,18 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
130
135
  msolPool?: undefined;
131
136
  redstone?: undefined;
132
137
  chainlink?: undefined;
138
+ jupLend?: undefined;
133
139
  } & {
134
140
  singlePool: Record<string, never>;
141
+ }) | ({
142
+ pyth?: undefined;
143
+ stakePool?: undefined;
144
+ msolPool?: undefined;
145
+ redstone?: undefined;
146
+ chainlink?: undefined;
147
+ singlePool?: undefined;
148
+ } & {
149
+ jupLend: Record<string, never>;
135
150
  });
136
151
  }[];
137
152
  }>;
@@ -1,5 +1,5 @@
1
- import { V as Vaults, L as LiquidateParams } from '../shared/lend.DNFQlLzM.js';
2
- export { C as ConnectionParams, I as InitPositionIxParams, e as LiquidateContextParams, O as OperateContextParams, a as OperateParams, c as getInitPositionContext, b as getInitPositionIx, f as getLiquidateContext, h as getLiquidateIx, g as getOperateContext, d as getOperateIx } from '../shared/lend.DNFQlLzM.js';
1
+ import { V as Vaults, L as LiquidateParams } from '../shared/lend.D69BluYU.js';
2
+ export { C as ConnectionParams, I as InitPositionIxParams, e as LiquidateContextParams, O as OperateContextParams, a as OperateParams, c as getInitPositionContext, b as getInitPositionIx, f as getLiquidateContext, h as getLiquidateIx, g as getOperateContext, d as getOperateIx } from '../shared/lend.D69BluYU.js';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import BN from 'bn.js';
5
5
  import * as _solana_web3_js from '@solana/web3.js';
@@ -90,6 +90,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
90
90
  redstone?: undefined;
91
91
  chainlink?: undefined;
92
92
  singlePool?: undefined;
93
+ jupLend?: undefined;
93
94
  } & {
94
95
  pyth: Record<string, never>;
95
96
  }) | ({
@@ -98,6 +99,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
98
99
  redstone?: undefined;
99
100
  chainlink?: undefined;
100
101
  singlePool?: undefined;
102
+ jupLend?: undefined;
101
103
  } & {
102
104
  stakePool: Record<string, never>;
103
105
  }) | ({
@@ -106,6 +108,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
106
108
  redstone?: undefined;
107
109
  chainlink?: undefined;
108
110
  singlePool?: undefined;
111
+ jupLend?: undefined;
109
112
  } & {
110
113
  msolPool: Record<string, never>;
111
114
  }) | ({
@@ -114,6 +117,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
114
117
  msolPool?: undefined;
115
118
  chainlink?: undefined;
116
119
  singlePool?: undefined;
120
+ jupLend?: undefined;
117
121
  } & {
118
122
  redstone: Record<string, never>;
119
123
  }) | ({
@@ -122,6 +126,7 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
122
126
  msolPool?: undefined;
123
127
  redstone?: undefined;
124
128
  singlePool?: undefined;
129
+ jupLend?: undefined;
125
130
  } & {
126
131
  chainlink: Record<string, never>;
127
132
  }) | ({
@@ -130,8 +135,18 @@ declare function readOraclePrice({ connection, signer, oracle, }: {
130
135
  msolPool?: undefined;
131
136
  redstone?: undefined;
132
137
  chainlink?: undefined;
138
+ jupLend?: undefined;
133
139
  } & {
134
140
  singlePool: Record<string, never>;
141
+ }) | ({
142
+ pyth?: undefined;
143
+ stakePool?: undefined;
144
+ msolPool?: undefined;
145
+ redstone?: undefined;
146
+ chainlink?: undefined;
147
+ singlePool?: undefined;
148
+ } & {
149
+ jupLend: Record<string, never>;
135
150
  });
136
151
  }[];
137
152
  }>;
@@ -1,8 +1,8 @@
1
- import { g as getLiquidateIx, a as getVaultsProgram } from '../shared/lend.BTc63w2G.mjs';
2
- export { I as INIT_TICK, p as MAX_TICK, M as MIN_TICK, q as TICKS_PER_TICK_HAS_DEBT, T as TICK_HAS_DEBT_ARRAY_SIZE, s as TICK_HAS_DEBT_CHILDREN_SIZE, t as TICK_HAS_DEBT_CHILDREN_SIZE_IN_BITS, u as TOTAL_INDICES_NEEDED, Z as ZERO_TICK_SCALED_RATIO, A as findNextTickWithDebt, h as getAccountOwner, i as getCurrentPosition, j as getCurrentPositionState, k as getFinalPosition, x as getFirstTickForIndex, d as getInitPositionContext, c as getInitPositionIx, f as getLiquidateContext, b as getOperateContext, e as getOperateIx, v as getRatioAtTick, w as getTickAtRatio, y as getTickIndices, l as loadRelevantBranches, o as loadRelevantBranchesForLiquidate, m as loadRelevantTicksHasDebtArrays, n as loadRelevantTicksHasDebtArraysLiquidate, r as readOraclePrice, z as readTickHasDebtArray } from '../shared/lend.BTc63w2G.mjs';
1
+ import { g as getLiquidateIx, a as getVaultsProgram } from '../shared/lend.aTMYZYEH.mjs';
2
+ export { I as INIT_TICK, p as MAX_TICK, M as MIN_TICK, q as TICKS_PER_TICK_HAS_DEBT, T as TICK_HAS_DEBT_ARRAY_SIZE, s as TICK_HAS_DEBT_CHILDREN_SIZE, t as TICK_HAS_DEBT_CHILDREN_SIZE_IN_BITS, u as TOTAL_INDICES_NEEDED, Z as ZERO_TICK_SCALED_RATIO, A as findNextTickWithDebt, h as getAccountOwner, i as getCurrentPosition, j as getCurrentPositionState, k as getFinalPosition, x as getFirstTickForIndex, d as getInitPositionContext, c as getInitPositionIx, f as getLiquidateContext, b as getOperateContext, e as getOperateIx, v as getRatioAtTick, w as getTickAtRatio, y as getTickIndices, l as loadRelevantBranches, o as loadRelevantBranchesForLiquidate, m as loadRelevantTicksHasDebtArrays, n as loadRelevantTicksHasDebtArraysLiquidate, r as readOraclePrice, z as readTickHasDebtArray } from '../shared/lend.aTMYZYEH.mjs';
3
3
  import { PublicKey, TransactionMessage, ComputeBudgetProgram, VersionedTransaction } from '@solana/web3.js';
4
4
  import BN from 'bn.js';
5
- import { g as getVaultAdmin } from '../shared/lend.D6kcj1Qv.mjs';
5
+ import { g as getVaultAdmin } from '../shared/lend.CsYeVtpe.mjs';
6
6
  import '@coral-xyz/anchor';
7
7
  import '../shared/lend.CioR9-te.mjs';
8
8
  import '@solana/spl-token';
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  export { l as lendingPda, a as lendingRewardRateModelPda } from './shared/lend.DS0KoPpL.mjs';
2
2
  export { l as liquidityPda } from './shared/lend.BzG5ldOV.mjs';
3
- export { b as borrowPda } from './shared/lend.D6kcj1Qv.mjs';
3
+ export { b as borrowPda } from './shared/lend.CsYeVtpe.mjs';
4
4
  export { f as flashloanPda } from './shared/lend.Cr2l14_0.mjs';
5
5
  export { m as merkleDistributorPda } from './shared/lend.Bpqe1Iia.mjs';
6
6
  import '@solana/web3.js';
@@ -8,6 +8,6 @@ import './shared/lend.CioR9-te.mjs';
8
8
  import '@solana/spl-token';
9
9
  import 'bn.js';
10
10
 
11
- const version = "0.1.4-beta.2";
11
+ const version = "0.1.5";
12
12
 
13
13
  export { version };
@@ -1,6 +1,6 @@
1
1
  import * as _solana_web3_js from '@solana/web3.js';
2
2
  import { PublicKey } from '@solana/web3.js';
3
- import { O as OperateContextParams } from '../shared/lend.DNFQlLzM.mjs';
3
+ import { O as OperateContextParams } from '../shared/lend.D69BluYU.mjs';
4
4
  import 'bn.js';
5
5
  import '@coral-xyz/anchor';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import * as _solana_web3_js from '@solana/web3.js';
2
2
  import { PublicKey } from '@solana/web3.js';
3
- import { O as OperateContextParams } from '../shared/lend.DNFQlLzM.js';
3
+ import { O as OperateContextParams } from '../shared/lend.D69BluYU.js';
4
4
  import 'bn.js';
5
5
  import '@coral-xyz/anchor';
6
6
 
@@ -1,5 +1,5 @@
1
- import { v as vaultsIdl } from '../shared/lend.D6kcj1Qv.mjs';
2
- import { e as getOperateIx } from '../shared/lend.BTc63w2G.mjs';
1
+ import { v as vaultsIdl } from '../shared/lend.CsYeVtpe.mjs';
2
+ import { e as getOperateIx } from '../shared/lend.aTMYZYEH.mjs';
3
3
  import { PublicKey } from '@solana/web3.js';
4
4
  import { Program } from '@coral-xyz/anchor';
5
5
  import '../shared/lend.CioR9-te.mjs';
@@ -776,8 +776,7 @@ const instructions = [
776
776
  signer: true
777
777
  },
778
778
  {
779
- name: "vault_admin",
780
- writable: true
779
+ name: "vault_admin"
781
780
  },
782
781
  {
783
782
  name: "vault_config",
@@ -2287,8 +2286,7 @@ const instructions = [
2287
2286
  writable: true
2288
2287
  },
2289
2288
  {
2290
- name: "new_oracle",
2291
- writable: true
2289
+ name: "new_oracle"
2292
2290
  },
2293
2291
  {
2294
2292
  name: "supply_token_reserves_liquidity",
@@ -2787,6 +2785,19 @@ const events = [
2787
2785
  83
2788
2786
  ]
2789
2787
  },
2788
+ {
2789
+ name: "LogLiquidationRoundingDiff",
2790
+ discriminator: [
2791
+ 35,
2792
+ 189,
2793
+ 179,
2794
+ 90,
2795
+ 218,
2796
+ 51,
2797
+ 104,
2798
+ 128
2799
+ ]
2800
+ },
2790
2801
  {
2791
2802
  name: "LogOperate",
2792
2803
  discriminator: [
@@ -3679,6 +3690,30 @@ const types = [
3679
3690
  ]
3680
3691
  }
3681
3692
  },
3693
+ {
3694
+ name: "LogLiquidationRoundingDiff",
3695
+ type: {
3696
+ kind: "struct",
3697
+ fields: [
3698
+ {
3699
+ name: "vault_id",
3700
+ type: "u16"
3701
+ },
3702
+ {
3703
+ name: "actual_debt_amt",
3704
+ type: "u64"
3705
+ },
3706
+ {
3707
+ name: "debt_amount",
3708
+ type: "u64"
3709
+ },
3710
+ {
3711
+ name: "diff",
3712
+ type: "u64"
3713
+ }
3714
+ ]
3715
+ }
3716
+ },
3682
3717
  {
3683
3718
  name: "LogOperate",
3684
3719
  type: {
@@ -4081,6 +4116,9 @@ const types = [
4081
4116
  },
4082
4117
  {
4083
4118
  name: "SinglePool"
4119
+ },
4120
+ {
4121
+ name: "JupLend"
4084
4122
  }
4085
4123
  ]
4086
4124
  }
@@ -655,7 +655,6 @@ type Vaults = {
655
655
  },
656
656
  {
657
657
  name: "vaultAdmin";
658
- writable: true;
659
658
  },
660
659
  {
661
660
  name: "vaultConfig";
@@ -1930,7 +1929,6 @@ type Vaults = {
1930
1929
  },
1931
1930
  {
1932
1931
  name: "newOracle";
1933
- writable: true;
1934
1932
  },
1935
1933
  {
1936
1934
  name: "supplyTokenReservesLiquidity";
@@ -2167,6 +2165,10 @@ type Vaults = {
2167
2165
  name: "logLiquidateInfo";
2168
2166
  discriminator: [169, 150, 46, 42, 178, 89, 98, 83];
2169
2167
  },
2168
+ {
2169
+ name: "logLiquidationRoundingDiff";
2170
+ discriminator: [35, 189, 179, 90, 218, 51, 104, 128];
2171
+ },
2170
2172
  {
2171
2173
  name: "logOperate";
2172
2174
  discriminator: [180, 8, 81, 71, 19, 132, 173, 8];
@@ -2895,6 +2897,30 @@ type Vaults = {
2895
2897
  ];
2896
2898
  };
2897
2899
  },
2900
+ {
2901
+ name: "logLiquidationRoundingDiff";
2902
+ type: {
2903
+ kind: "struct";
2904
+ fields: [
2905
+ {
2906
+ name: "vaultId";
2907
+ type: "u16";
2908
+ },
2909
+ {
2910
+ name: "actualDebtAmt";
2911
+ type: "u64";
2912
+ },
2913
+ {
2914
+ name: "debtAmount";
2915
+ type: "u64";
2916
+ },
2917
+ {
2918
+ name: "diff";
2919
+ type: "u64";
2920
+ }
2921
+ ];
2922
+ };
2923
+ },
2898
2924
  {
2899
2925
  name: "logOperate";
2900
2926
  type: {
@@ -3295,6 +3321,9 @@ type Vaults = {
3295
3321
  },
3296
3322
  {
3297
3323
  name: "singlePool";
3324
+ },
3325
+ {
3326
+ name: "jupLend";
3298
3327
  }
3299
3328
  ];
3300
3329
  };
@@ -655,7 +655,6 @@ type Vaults = {
655
655
  },
656
656
  {
657
657
  name: "vaultAdmin";
658
- writable: true;
659
658
  },
660
659
  {
661
660
  name: "vaultConfig";
@@ -1930,7 +1929,6 @@ type Vaults = {
1930
1929
  },
1931
1930
  {
1932
1931
  name: "newOracle";
1933
- writable: true;
1934
1932
  },
1935
1933
  {
1936
1934
  name: "supplyTokenReservesLiquidity";
@@ -2167,6 +2165,10 @@ type Vaults = {
2167
2165
  name: "logLiquidateInfo";
2168
2166
  discriminator: [169, 150, 46, 42, 178, 89, 98, 83];
2169
2167
  },
2168
+ {
2169
+ name: "logLiquidationRoundingDiff";
2170
+ discriminator: [35, 189, 179, 90, 218, 51, 104, 128];
2171
+ },
2170
2172
  {
2171
2173
  name: "logOperate";
2172
2174
  discriminator: [180, 8, 81, 71, 19, 132, 173, 8];
@@ -2895,6 +2897,30 @@ type Vaults = {
2895
2897
  ];
2896
2898
  };
2897
2899
  },
2900
+ {
2901
+ name: "logLiquidationRoundingDiff";
2902
+ type: {
2903
+ kind: "struct";
2904
+ fields: [
2905
+ {
2906
+ name: "vaultId";
2907
+ type: "u16";
2908
+ },
2909
+ {
2910
+ name: "actualDebtAmt";
2911
+ type: "u64";
2912
+ },
2913
+ {
2914
+ name: "debtAmount";
2915
+ type: "u64";
2916
+ },
2917
+ {
2918
+ name: "diff";
2919
+ type: "u64";
2920
+ }
2921
+ ];
2922
+ };
2923
+ },
2898
2924
  {
2899
2925
  name: "logOperate";
2900
2926
  type: {
@@ -3295,6 +3321,9 @@ type Vaults = {
3295
3321
  },
3296
3322
  {
3297
3323
  name: "singlePool";
3324
+ },
3325
+ {
3326
+ name: "jupLend";
3298
3327
  }
3299
3328
  ];
3300
3329
  };
@@ -2,8 +2,8 @@ import { PublicKey, Transaction, SystemProgram, SYSVAR_RENT_PUBKEY, SYSVAR_INSTR
2
2
  import BN from 'bn.js';
3
3
  import { Program, AnchorProvider } from '@coral-xyz/anchor';
4
4
  import { l as liquidity } from './lend.CioR9-te.mjs';
5
- import { getAssociatedTokenAddressSync, ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token';
6
- import { a as getTickHasDebt, v as vaultsIdl, c as getPosition, d as getTick, e as getTickIdLiquidation, f as getVaultConfig, h as getBranch, i as getVaultState, j as getVaultMetadata, k as getLiquidity, l as getRateModel, m as getUserBorrowPosition, n as getUserSupplyPosition, o as getLiquidityReserve, p as getPositionTokenAccount, q as getPositionMetadata, r as getPositionMint, g as getVaultAdmin, s as getClaimAccount } from './lend.D6kcj1Qv.mjs';
5
+ import { getAssociatedTokenAddressSync, ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, NATIVE_MINT } from '@solana/spl-token';
6
+ import { a as getTickHasDebt, v as vaultsIdl, c as getPosition, d as getTick, e as getTickIdLiquidation, f as getVaultConfig, h as getBranch, i as getVaultState, j as getVaultMetadata, k as getLiquidity, l as getRateModel, m as getUserBorrowPosition, n as getUserSupplyPosition, o as getLiquidityReserve, p as getPositionTokenAccount, q as getPositionMetadata, r as getPositionMint, g as getVaultAdmin, s as getClaimAccount } from './lend.CsYeVtpe.mjs';
7
7
  import { e as getReserve } from './lend.BzG5ldOV.mjs';
8
8
 
9
9
  const address = "jupnw4B6Eqs7ft6rxpzYLJZYSnrpRgPcr589n5Kv4oc";
@@ -488,6 +488,11 @@ const errors = [
488
488
  code: 6023,
489
489
  name: "SinglePoolInvalidMint",
490
490
  msg: "SINGLE_POOL_INVALID_MINT"
491
+ },
492
+ {
493
+ code: 6024,
494
+ name: "JupLendAccountMismatch",
495
+ msg: "JUP_LEND_ACCOUNT_MISMATCH"
491
496
  }
492
497
  ];
493
498
  const types = [
@@ -619,6 +624,9 @@ const types = [
619
624
  },
620
625
  {
621
626
  name: "SinglePool"
627
+ },
628
+ {
629
+ name: "JupLend"
622
630
  }
623
631
  ]
624
632
  }
@@ -1567,9 +1575,13 @@ async function getOtherInstructionsOperate(vaultId, vaultState, currentPosition,
1567
1575
  let newBranchId;
1568
1576
  if (vaultState.branchLiquidated) {
1569
1577
  newBranchId = vaultState.totalBranchId + 1;
1570
- const newBranchData = await program.account.branch.fetch(
1571
- getBranch(vaultId, newBranchId)
1572
- );
1578
+ let newBranchData = null;
1579
+ try {
1580
+ newBranchData = await program.account.branch.fetch(
1581
+ getBranch(vaultId, newBranchId)
1582
+ );
1583
+ } catch {
1584
+ }
1573
1585
  if (!newBranchData) {
1574
1586
  const ix = await program.methods.initBranch(vaultId, newBranchId).accounts(getInitBranchContext(vaultId, newBranchId, signer)).instruction();
1575
1587
  otherIxs.push(ix);
@@ -1945,6 +1957,14 @@ const getOperateIx = async ({
1945
1957
  recipient,
1946
1958
  program
1947
1959
  });
1960
+ if (accounts.borrowToken.toString() !== NATIVE_MINT.toString()) {
1961
+ const userDebtTokenBalance = await connection.getTokenAccountBalance(
1962
+ accounts.signerBorrowTokenAccount
1963
+ );
1964
+ if (debtAmount.lt(new BN(0)) && userDebtTokenBalance.value.amount === debtAmount.abs().toString()) {
1965
+ debtAmount = debtAmount.add(new BN(1));
1966
+ }
1967
+ }
1948
1968
  const [operateIx, addressLookupTable] = await Promise.all([
1949
1969
  program.methods.operate(
1950
1970
  colAmount,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jup-ag/lend",
3
- "version": "0.1.4-beta.2",
3
+ "version": "0.1.5",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -38,16 +38,6 @@
38
38
  "files": [
39
39
  "dist"
40
40
  ],
41
- "scripts": {
42
- "build": "unbuild",
43
- "dev": "vitest dev",
44
- "lint": "eslint . && prettier -c .",
45
- "lint:fix": "automd && eslint . --fix && prettier -w .",
46
- "prepack": "pnpm build",
47
- "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags",
48
- "test": "pnpm test:types && vitest run --coverage",
49
- "test:types": "tsc --noEmit --skipLibCheck"
50
- },
51
41
  "devDependencies": {
52
42
  "@types/bn.js": "^5.1.6",
53
43
  "@types/node": "^22.13.13",
@@ -61,12 +51,20 @@
61
51
  "unbuild": "^3.5.0",
62
52
  "vitest": "^3.0.9"
63
53
  },
64
- "packageManager": "pnpm@10.7.0",
65
54
  "dependencies": {
66
55
  "@coral-xyz/anchor": "^0.31.1",
67
56
  "@solana/spl-token": "^0.4.13",
68
57
  "@solana/web3.js": "^1.98.2",
69
58
  "axios": "^1.11.0",
70
59
  "bn.js": "^5.2.2"
60
+ },
61
+ "scripts": {
62
+ "build": "unbuild",
63
+ "dev": "vitest dev",
64
+ "lint": "eslint . && prettier -c .",
65
+ "lint:fix": "automd && eslint . --fix && prettier -w .",
66
+ "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags",
67
+ "test": "pnpm test:types && vitest run --coverage",
68
+ "test:types": "tsc --noEmit --skipLibCheck"
71
69
  }
72
- }
70
+ }