@haven-fi/solauto-sdk 1.0.791 → 1.0.792

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,6 +1,25 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  export declare const PYTH_PUSH_PROGRAM: PublicKey;
3
- export declare const PYTH_PRICE_FEED_IDS: Record<string, string>;
3
+ export declare const PYTH_PRICE_FEED_IDS: {
4
+ [x: string]: string;
5
+ bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1: string;
6
+ mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So: string;
7
+ J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn: string;
8
+ LSTxxxnJzKDFSLr4dUkPcmCf5VyryEqzPLz5j4bpxFp: string;
9
+ "5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm": string;
10
+ JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN: string;
11
+ jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL: string;
12
+ "27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4": string;
13
+ "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh": string;
14
+ "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs": string;
15
+ hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux: string;
16
+ HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3: string;
17
+ EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v: string;
18
+ Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB: string;
19
+ DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263: string;
20
+ EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm: string;
21
+ pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn: string;
22
+ };
4
23
  export declare const PYTH_ORACLE_ACCOUNTS: {
5
24
  pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn: string;
6
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pythConstants.d.ts","sourceRoot":"","sources":["../../src/constants/pythConstants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAE7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BtD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAEhC,CAAC"}
1
+ {"version":3,"file":"pythConstants.d.ts","sourceRoot":"","sources":["../../src/constants/pythConstants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAE7B,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAqC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAEhC,CAAC"}
@@ -34,15 +34,20 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.PYTH_ORACLE_ACCOUNTS = exports.PYTH_PRICE_FEED_IDS = exports.PYTH_PUSH_PROGRAM = void 0;
37
+ const spl_token_1 = require("@solana/spl-token");
37
38
  const tokens = __importStar(require("./tokenConstants"));
38
39
  const web3_js_1 = require("@solana/web3.js");
39
40
  exports.PYTH_PUSH_PROGRAM = new web3_js_1.PublicKey("pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT");
40
41
  // https://pyth.network/developers/price-feed-ids#solana-stable
41
42
  exports.PYTH_PRICE_FEED_IDS = {
43
+ [spl_token_1.NATIVE_MINT.toString()]: "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
42
44
  [tokens.B_SOL]: "0x89875379e70f8fbadc17aef315adf3a8d5d160b811435537e03c97e8aac97d9c",
43
45
  [tokens.M_SOL]: "0xc2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4",
46
+ [tokens.JITO_SOL]: "0x67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb",
47
+ [tokens.LST]: "0x12fb674ee496045b1d9cf7d5e65379acb026133c2ad69f3ed996fb9fe68e3a37",
44
48
  [tokens.INF]: "0xf51570985c642c49c2d6e50156390fdba80bb6d5f7fa389d2f012ced4f7d208f",
45
49
  [tokens.JUP]: "0x0a0408d619e9380abad35060f9192039ed5042fa6f82301d0e48bb52be830996",
50
+ [tokens.JTO]: "0xb43660a5f790c69354b0729a5ef9d50d68f1df92107540210b9cccba1f947cc2",
46
51
  [tokens.JLP]: "0xc811abc82b4bad1f9bd711a2773ccaa935b03ecef974236942cec5e0eb845a3a",
47
52
  [tokens.WBTC]: "0xc9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33",
48
53
  [tokens.WETH]: "0x9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6",
@@ -1 +1 @@
1
- {"version":3,"file":"priceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/priceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgBrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CA4CnB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAqDtC;AAkBD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkDtC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAsBtC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,EACnD,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,MAAM,GAAG,SAAS,CAyBpB"}
1
+ {"version":3,"file":"priceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/priceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgBrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CnB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAuDtC;AAkBD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkDtC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAsBtC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,EACnD,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,MAAM,GAAG,SAAS,CAyBpB"}
@@ -54,7 +54,8 @@ async function fetchTokenPrices(mints, priceType = generated_1.PriceType.Realtim
54
54
  .filter((x) => !Object.keys(cachedPrices).includes(x))
55
55
  .map((x) => new web3_js_1.PublicKey(x));
56
56
  const pythMints = newMints.filter((x) => Object.keys(constants_1.PYTH_PRICE_FEED_IDS).includes(x.toString()));
57
- const switchboardMints = newMints.filter((x) => Object.keys(constants_1.SWITCHBOARD_PRICE_FEED_IDS).includes(x.toString()));
57
+ const switchboardMints = newMints.filter((x) => Object.keys(constants_1.SWITCHBOARD_PRICE_FEED_IDS).includes(x.toString()) &&
58
+ !pythMints.map((y) => y.toString()).includes(x.toString()));
58
59
  const otherMints = newMints.filter((x) => !pythMints.includes(x) && !switchboardMints.includes(x));
59
60
  const newPrices = Object.assign({}, ...(await Promise.all([
60
61
  getPythPrices(pythMints),
@@ -79,7 +80,9 @@ async function getPythPrices(mints) {
79
80
  return {};
80
81
  }
81
82
  const priceFeedIds = mints.map((mint) => constants_1.PYTH_PRICE_FEED_IDS[mint.toString()]);
82
- const getReq = async () => await fetch(`https://hermes.pyth.network/v2/updates/price/latest?${priceFeedIds.map((x) => `ids%5B%5D=${x}`).join("&")}`);
83
+ const getReq = async () => await fetch(`https://hermes.pyth.network/v2/updates/price/latest?${priceFeedIds
84
+ .map((x) => `ids%5B%5D=${x}`)
85
+ .join("&")}`);
83
86
  const deriveValue = (price, exponent) => {
84
87
  if (exponent > 0) {
85
88
  return Number((0, numberUtils_1.toBaseUnit)(Number(price), exponent));
@@ -4,6 +4,7 @@ import { fromWeb3JsKeypair } from "@metaplex-foundation/umi-web3js-adapters";
4
4
  import {
5
5
  ClientTransactionsManager,
6
6
  consoleLog,
7
+ fetchBank,
7
8
  getBatches,
8
9
  getClient,
9
10
  getPositionExBulk,
@@ -15,6 +16,7 @@ import {
15
16
  PriorityFeeSetting,
16
17
  ProgramEnv,
17
18
  rebalance,
19
+ safeFetchBank,
18
20
  SOLAUTO_PROD_PROGRAM,
19
21
  SOLAUTO_TEST_PROGRAM,
20
22
  SolautoClient,
@@ -47,8 +49,8 @@ export async function main() {
47
49
  });
48
50
 
49
51
  await client.initializeExistingSolautoPosition({
50
- positionId: 1,
51
- authority: new PublicKey("6K8FQ4W8SV2DGs73aQ5zybgfgSCGswybWbGXnw9JjoJR"),
52
+ positionId: 2,
53
+ authority: new PublicKey("7rujyCAvZYsd3kmfhEN6YmsRLpobtzsqrsZAKv5Mgkob"),
52
54
  // lpUserAccount: new PublicKey(
53
55
  // "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
54
56
  // ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.791",
3
+ "version": "1.0.792",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Typescript SDK for the Solauto program on the Solana blockchain",
@@ -7,15 +7,23 @@ export const PYTH_PUSH_PROGRAM = new PublicKey(
7
7
  );
8
8
 
9
9
  // https://pyth.network/developers/price-feed-ids#solana-stable
10
- export const PYTH_PRICE_FEED_IDS: Record<string, string> = {
10
+ export const PYTH_PRICE_FEED_IDS = {
11
+ [NATIVE_MINT.toString()]:
12
+ "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
11
13
  [tokens.B_SOL]:
12
14
  "0x89875379e70f8fbadc17aef315adf3a8d5d160b811435537e03c97e8aac97d9c",
13
15
  [tokens.M_SOL]:
14
16
  "0xc2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4",
17
+ [tokens.JITO_SOL]:
18
+ "0x67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb",
19
+ [tokens.LST]:
20
+ "0x12fb674ee496045b1d9cf7d5e65379acb026133c2ad69f3ed996fb9fe68e3a37",
15
21
  [tokens.INF]:
16
22
  "0xf51570985c642c49c2d6e50156390fdba80bb6d5f7fa389d2f012ced4f7d208f",
17
23
  [tokens.JUP]:
18
24
  "0x0a0408d619e9380abad35060f9192039ed5042fa6f82301d0e48bb52be830996",
25
+ [tokens.JTO]:
26
+ "0xb43660a5f790c69354b0729a5ef9d50d68f1df92107540210b9cccba1f947cc2",
19
27
  [tokens.JLP]:
20
28
  "0xc811abc82b4bad1f9bd711a2773ccaa935b03ecef974236942cec5e0eb845a3a",
21
29
  [tokens.WBTC]:
@@ -45,8 +45,10 @@ export async function fetchTokenPrices(
45
45
  const pythMints = newMints.filter((x) =>
46
46
  Object.keys(PYTH_PRICE_FEED_IDS).includes(x.toString())
47
47
  );
48
- const switchboardMints = newMints.filter((x) =>
49
- Object.keys(SWITCHBOARD_PRICE_FEED_IDS).includes(x.toString())
48
+ const switchboardMints = newMints.filter(
49
+ (x) =>
50
+ Object.keys(SWITCHBOARD_PRICE_FEED_IDS).includes(x.toString()) &&
51
+ !pythMints.map((y) => y.toString()).includes(x.toString())
50
52
  );
51
53
  const otherMints = newMints.filter(
52
54
  (x) => !pythMints.includes(x) && !switchboardMints.includes(x)
@@ -88,7 +90,9 @@ export async function getPythPrices(
88
90
 
89
91
  const getReq = async () =>
90
92
  await fetch(
91
- `https://hermes.pyth.network/v2/updates/price/latest?${priceFeedIds.map((x) => `ids%5B%5D=${x}`).join("&")}`
93
+ `https://hermes.pyth.network/v2/updates/price/latest?${priceFeedIds
94
+ .map((x) => `ids%5B%5D=${x}`)
95
+ .join("&")}`
92
96
  );
93
97
 
94
98
  const deriveValue = (price: number, exponent: number) => {