@haven-fi/solauto-sdk 1.0.685 → 1.0.686

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.
Files changed (49) hide show
  1. package/README.md +8 -6
  2. package/dist/constants/solautoConstants.d.ts +1 -0
  3. package/dist/constants/solautoConstants.d.ts.map +1 -1
  4. package/dist/constants/solautoConstants.js +2 -1
  5. package/dist/services/transactions/index.d.ts +3 -2
  6. package/dist/services/transactions/index.d.ts.map +1 -1
  7. package/dist/services/transactions/index.js +2 -1
  8. package/dist/services/transactions/manager/clientTransactionsManager.d.ts +10 -0
  9. package/dist/services/transactions/manager/clientTransactionsManager.d.ts.map +1 -0
  10. package/dist/services/transactions/manager/clientTransactionsManager.js +75 -0
  11. package/dist/services/transactions/manager/index.d.ts +3 -0
  12. package/dist/services/transactions/manager/index.d.ts.map +1 -0
  13. package/dist/services/transactions/manager/index.js +18 -0
  14. package/dist/services/transactions/manager/transactionsManager.d.ts +64 -0
  15. package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -0
  16. package/dist/services/transactions/{transactionsManager.js → manager/transactionsManager.js} +21 -211
  17. package/dist/services/transactions/types/index.d.ts +4 -0
  18. package/dist/services/transactions/types/index.d.ts.map +1 -0
  19. package/dist/services/transactions/types/index.js +19 -0
  20. package/dist/services/transactions/types/lookupTables.d.ts +10 -0
  21. package/dist/services/transactions/types/lookupTables.d.ts.map +1 -0
  22. package/dist/services/transactions/types/lookupTables.js +25 -0
  23. package/dist/services/transactions/types/transactionItem.d.ts +16 -0
  24. package/dist/services/transactions/types/transactionItem.d.ts.map +1 -0
  25. package/dist/services/transactions/types/transactionItem.js +31 -0
  26. package/dist/services/transactions/types/transactionSet.d.ts +20 -0
  27. package/dist/services/transactions/types/transactionSet.d.ts.map +1 -0
  28. package/dist/services/transactions/types/transactionSet.js +79 -0
  29. package/dist/utils/instructionUtils.d.ts.map +1 -1
  30. package/dist/utils/instructionUtils.js +3 -3
  31. package/dist/utils/switchboardUtils.d.ts +1 -0
  32. package/dist/utils/switchboardUtils.d.ts.map +1 -1
  33. package/dist/utils/switchboardUtils.js +10 -0
  34. package/local/txSandbox.ts +17 -23
  35. package/package.json +3 -1
  36. package/src/constants/solautoConstants.ts +2 -0
  37. package/src/services/transactions/index.ts +3 -2
  38. package/src/services/transactions/manager/clientTransactionsManager.ts +141 -0
  39. package/src/services/transactions/manager/index.ts +2 -0
  40. package/src/services/transactions/{transactionsManager.ts → manager/transactionsManager.ts} +46 -354
  41. package/src/services/transactions/types/index.ts +3 -0
  42. package/src/services/transactions/types/lookupTables.ts +37 -0
  43. package/src/services/transactions/types/transactionItem.ts +43 -0
  44. package/src/services/transactions/types/transactionSet.ts +114 -0
  45. package/src/utils/instructionUtils.ts +6 -3
  46. package/src/utils/switchboardUtils.ts +17 -2
  47. package/tests/transactions/shared.ts +6 -3
  48. package/dist/services/transactions/transactionsManager.d.ts +0 -68
  49. package/dist/services/transactions/transactionsManager.d.ts.map +0 -1
@@ -8,10 +8,14 @@ import { Signer, transactionBuilder } from "@metaplex-foundation/umi";
8
8
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
9
9
  import { AnchorProvider, Idl, Program } from "@coral-xyz/anchor";
10
10
  import * as OnDemand from "@switchboard-xyz/on-demand";
11
+ import Big from "big.js";
11
12
  import switchboardIdl from "../idls/switchboard.json";
12
- import { SWITCHBOARD_PRICE_FEED_IDS } from "../constants";
13
+ import { PRICES, SWITCHBOARD_PRICE_FEED_IDS } from "../constants";
13
14
  import { TransactionItemInputs } from "../types";
14
- import { retryWithExponentialBackoff } from "./generalUtils";
15
+ import {
16
+ currentUnixSeconds,
17
+ retryWithExponentialBackoff,
18
+ } from "./generalUtils";
15
19
  import { getWrappedInstruction } from "./solanaUtils";
16
20
 
17
21
  export function getPullFeed(
@@ -62,6 +66,13 @@ export async function buildSwbSubmitResponseTx(
62
66
  throw new Error("Unable to fetch SWB crank IX");
63
67
  }
64
68
 
69
+ const price = (responses[0].value as Big).toNumber();
70
+ PRICES[mint.toString()] = {
71
+ realtimePrice: price,
72
+ emaPrice: price,
73
+ time: currentUnixSeconds(),
74
+ };
75
+
65
76
  return {
66
77
  tx: transactionBuilder([getWrappedInstruction(signer, pullIx!)]),
67
78
  lookupTableAddresses: responses
@@ -97,3 +108,7 @@ export async function getSwitchboardFeedData(
97
108
 
98
109
  return results;
99
110
  }
111
+
112
+ export function isSwitchboardMint(mint: PublicKey | string) {
113
+ return Object.keys(SWITCHBOARD_PRICE_FEED_IDS).includes(mint.toString());
114
+ }
@@ -13,7 +13,6 @@ import {
13
13
  SOLAUTO_TEST_PROGRAM,
14
14
  SolautoSettingsParametersInpArgs,
15
15
  toBaseUnit,
16
- TransactionsManager,
17
16
  USDC,
18
17
  deposit,
19
18
  openSolautoPosition,
@@ -22,6 +21,7 @@ import {
22
21
  withdraw,
23
22
  closeSolautoPosition,
24
23
  getMarginfiAccounts,
24
+ ClientTransactionsManager,
25
25
  } from "../../src";
26
26
 
27
27
  export async function e2eTransactionTest(
@@ -79,8 +79,11 @@ export async function e2eTransactionTest(
79
79
  closeSolautoPosition(client),
80
80
  ];
81
81
 
82
- const txManager = new TransactionsManager(client, undefined, "only-simulate");
83
- const statuses = await txManager.clientSend(transactionItems);
82
+ const txManager = new ClientTransactionsManager({
83
+ txHandler: client,
84
+ txRunType: "only-simulate",
85
+ });
86
+ const statuses = await txManager.send(transactionItems);
84
87
 
85
88
  consoleLog(statuses);
86
89
  }
@@ -1,68 +0,0 @@
1
- import { TransactionBuilder } from "@metaplex-foundation/umi";
2
- import { PriorityFeeSetting, TransactionItemInputs, TransactionRunType } from "../../types";
3
- import { ErrorsToThrow } from "../../utils";
4
- import { SolautoClient, ReferralStateManager } from "../solauto";
5
- export declare class TransactionTooLargeError extends Error {
6
- constructor(message: string);
7
- }
8
- export declare class TransactionItem {
9
- fetchTx: (attemptNum: number, prevError?: Error) => Promise<TransactionItemInputs | undefined>;
10
- name?: string | undefined;
11
- lookupTableAddresses: string[];
12
- tx?: TransactionBuilder;
13
- initialized: boolean;
14
- orderPrio: number;
15
- constructor(fetchTx: (attemptNum: number, prevError?: Error) => Promise<TransactionItemInputs | undefined>, name?: string | undefined);
16
- initialize(): Promise<void>;
17
- refetch(attemptNum: number, prevError?: Error): Promise<void>;
18
- uniqueAccounts(): string[];
19
- }
20
- export declare enum TransactionStatus {
21
- Skipped = "Skipped",
22
- Processing = "Processing",
23
- Queued = "Queued",
24
- Successful = "Successful",
25
- Failed = "Failed"
26
- }
27
- export type TransactionManagerStatuses = {
28
- name: string;
29
- attemptNum: number;
30
- status: TransactionStatus;
31
- moreInfo?: string;
32
- simulationSuccessful?: boolean;
33
- txSig?: string;
34
- }[];
35
- interface RetryConfig {
36
- signableRetries?: number;
37
- totalRetries?: number;
38
- retryDelay?: number;
39
- }
40
- export declare class TransactionsManager {
41
- private txHandler;
42
- private statusCallback?;
43
- private txType?;
44
- private priorityFeeSetting;
45
- private atomically;
46
- private errorsToThrow?;
47
- private statuses;
48
- private lookupTables;
49
- private signableRetries;
50
- private totalRetries;
51
- private retryDelay;
52
- updateOracleTxName: string;
53
- constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, txType?: TransactionRunType | undefined, priorityFeeSetting?: PriorityFeeSetting, atomically?: boolean, errorsToThrow?: ErrorsToThrow | undefined, retryConfig?: RetryConfig);
54
- private assembleTransactionSets;
55
- private updateStatus;
56
- private debugAccounts;
57
- private getUpdatedPriorityFeeSetting;
58
- private updateStatusForSets;
59
- private updateLut;
60
- clientSend(transactions: TransactionItem[]): Promise<TransactionManagerStatuses>;
61
- send(items: TransactionItem[]): Promise<TransactionManagerStatuses>;
62
- private processTransactionsAtomically;
63
- private processTransactionSet;
64
- private refreshItemSets;
65
- private sendTransaction;
66
- }
67
- export {};
68
- //# sourceMappingURL=transactionsManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"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"}