@haven-fi/solauto-sdk 1.0.759 → 1.0.760

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.
@@ -10,7 +10,7 @@ export interface TxHandlerProps {
10
10
  programId?: PublicKey;
11
11
  lpEnv?: ProgramEnv;
12
12
  }
13
- export declare abstract class TxHandler {
13
+ export declare class TxHandler {
14
14
  rpcUrl: string;
15
15
  showLogs: boolean;
16
16
  programId: PublicKey;
@@ -21,7 +21,7 @@ export declare abstract class TxHandler {
21
21
  otherSigners: Signer[];
22
22
  constructor(props: TxHandlerProps);
23
23
  log(...args: any[]): void;
24
- abstract defaultLookupTables(): string[];
25
- abstract resetLiveTxUpdates(success?: boolean): Promise<void>;
24
+ defaultLookupTables(): string[];
25
+ resetLiveTxUpdates(success?: boolean): void;
26
26
  }
27
27
  //# sourceMappingURL=txHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAkB,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,8BAAsB,SAAS;IACtB,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,UAAS;IACjB,SAAS,EAAG,SAAS,CAAC;IACtB,KAAK,EAAG,UAAU,CAAC;IAEnB,UAAU,EAAG,UAAU,CAAC;IACxB,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAM;gBAEvB,KAAK,EAAE,cAAc;IAgCjC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,QAAQ,CAAC,mBAAmB,IAAI,MAAM,EAAE;IAExC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9D"}
1
+ {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAkB,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,SAAS;IACb,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,UAAS;IACjB,SAAS,EAAG,SAAS,CAAC;IACtB,KAAK,EAAG,UAAU,CAAC;IAEnB,UAAU,EAAG,UAAU,CAAC;IACxB,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAM;gBAEvB,KAAK,EAAE,cAAc;IAgCjC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,mBAAmB,IAAI,MAAM,EAAE;IAI/B,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;CACrC"}
@@ -32,5 +32,9 @@ class TxHandler {
32
32
  log(...args) {
33
33
  (0, utils_1.consoleLog)(...args);
34
34
  }
35
+ defaultLookupTables() {
36
+ return [];
37
+ }
38
+ resetLiveTxUpdates(success) { }
35
39
  }
36
40
  exports.TxHandler = TxHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,eAAe,EAEf,GAAG,EACH,SAAS,IAAI,YAAY,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAW1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,yBAQ/C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAMlE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU1E;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAS1D;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EACvD,OAAO,GAAE,MAAU,EACnB,KAAK,GAAE,MAAY,EACnB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAUxB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,gBAuBzE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAU5D;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,WAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAI9E"}
1
+ {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,eAAe,EAEf,GAAG,EACH,SAAS,IAAI,YAAY,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAW1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,yBAQ/C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAMlE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU1E;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAS1D;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EACvD,OAAO,GAAE,MAAU,EACnB,KAAK,GAAE,MAAY,EACnB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,CAAC,CAAC,CAqCZ;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAUxB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,gBAuBzE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAU5D;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,WAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,CAAC,EAAE,GACV,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB"}
@@ -116,7 +116,9 @@ function retryWithExponentialBackoff(fn, retries = 5, delay = 150, errorsToThrow
116
116
  .then(resolve)
117
117
  .catch((error) => {
118
118
  attemptNum++;
119
- if (errorsToThrow &&
119
+ console.log(error.name, error.message);
120
+ console.log(errorsToThrow?.length, (errorsToThrow ?? []).some((errorType) => error instanceof errorType));
121
+ if (errorsToThrow?.length &&
120
122
  errorsToThrow.some((errorType) => error instanceof errorType)) {
121
123
  reject(error);
122
124
  return;
@@ -1,28 +1,41 @@
1
1
  import { Keypair, PublicKey } from "@solana/web3.js";
2
- import { createSignerFromKeypair } from "@metaplex-foundation/umi";
2
+ import { createSignerFromKeypair, publicKey } from "@metaplex-foundation/umi";
3
3
  import { fromWeb3JsKeypair } from "@metaplex-foundation/umi-web3js-adapters";
4
4
  import {
5
+ bytesToI80F48,
5
6
  ClientTransactionsManager,
6
7
  consoleLog,
8
+ fetchBank,
9
+ fetchMarginfiAccount,
10
+ fromBaseUnit,
11
+ getBankLiquidityAvailableBaseUnit,
7
12
  getBatches,
8
13
  getClient,
14
+ getMarginfiAccounts,
9
15
  getPositionExBulk,
10
16
  getSolanaRpcConnection,
11
17
  getSolautoManagedPositions,
18
+ lendingAccountDeposit,
12
19
  LendingPlatform,
13
20
  LOCAL_IRONFORGE_API_URL,
14
21
  PriceType,
15
22
  PriorityFeeSetting,
16
23
  ProgramEnv,
17
24
  rebalance,
25
+ SOLAUTO_MANAGER,
18
26
  SOLAUTO_PROD_PROGRAM,
19
27
  SOLAUTO_TEST_PROGRAM,
20
28
  SolautoClient,
29
+ toBaseUnit,
21
30
  TransactionItem,
31
+ TransactionsManager,
32
+ TxHandler,
33
+ USDC,
22
34
  } from "../src";
23
35
  import { getSecretKey } from "./shared";
36
+ import { getTokenAccount, tokenInfo } from "../dist";
24
37
 
25
- const payForTransaction = false;
38
+ const payForTransaction = true;
26
39
  const testProgram = false;
27
40
  const lpEnv: ProgramEnv = "Prod";
28
41
 
@@ -38,26 +51,66 @@ const signer = createSignerFromKeypair(
38
51
  );
39
52
 
40
53
  export async function main() {
41
- const client = getClient(LendingPlatform.Marginfi, {
42
- signer,
43
- showLogs: true,
44
- rpcUrl: LOCAL_IRONFORGE_API_URL,
45
- programId: testProgram ? SOLAUTO_TEST_PROGRAM : SOLAUTO_PROD_PROGRAM,
46
- lpEnv,
47
- });
54
+ const USDC_MINT = new PublicKey(USDC);
55
+ const group = new PublicKey("DQ2jqDJw9uzTwttf6h6r217BQ7kws3jZbJXDkfbCJa1q");
56
+ const accounts =
57
+ getMarginfiAccounts("Prod").bankAccounts[group.toString()][
58
+ USDC_MINT.toString()
59
+ ];
48
60
 
49
- await client.initializeExistingSolautoPosition({
50
- positionId: 2,
51
- authority: new PublicKey("EBhRj7jbF2EVE21i19JSuCX1BAbnZFYhoKW64HnaZ3kf"),
52
- // lpUserAccount: new PublicKey(
53
- // "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
54
- // ),
55
- });
61
+ const bank = await fetchBank(umi, publicKey(accounts.bank));
62
+
63
+ const assets =
64
+ bytesToI80F48(bank.totalAssetShares.value) *
65
+ bytesToI80F48(bank.assetShareValue.value);
66
+ const liabs =
67
+ bytesToI80F48(bank.totalLiabilityShares.value) *
68
+ bytesToI80F48(bank.liabilityShareValue.value);
69
+
70
+ console.log(fromBaseUnit(BigInt(Math.round(assets)), 6));
71
+ console.log(fromBaseUnit(BigInt(Math.round(liabs)), 6));
72
+ const missingLiquidity = getBankLiquidityAvailableBaseUnit(bank, false);
73
+ console.log(fromBaseUnit(missingLiquidity, 6));
74
+
75
+ const marginfiAccount = await fetchMarginfiAccount(
76
+ umi,
77
+ publicKey("Fun9UD87tLCxqxoTvpGYAy6Uwk2eevFGDk1VvxpXbd5x")
78
+ );
79
+ const managerAssets =
80
+ bytesToI80F48(
81
+ marginfiAccount.lendingAccount.balances[0].assetShares.value
82
+ ) * bytesToI80F48(bank.assetShareValue.value);
83
+ console.log(fromBaseUnit(BigInt(Math.round(managerAssets)), 6));
56
84
 
57
- const transactionItems = [rebalance(client)];
85
+ const depositAmt =
86
+ missingLiquidity * BigInt(-1) + BigInt(toBaseUnit(620 + 20, 6));
87
+ console.log("Depositing", fromBaseUnit(depositAmt, 6));
88
+ const transactionItems = [
89
+ new TransactionItem(
90
+ async () => ({
91
+ tx: lendingAccountDeposit(umi, {
92
+ signer,
93
+ signerTokenAccount: publicKey(
94
+ getTokenAccount(SOLAUTO_MANAGER, USDC_MINT)
95
+ ),
96
+ marginfiAccount: marginfiAccount.publicKey,
97
+ marginfiGroup: publicKey(group),
98
+ bank: bank.publicKey,
99
+ bankLiquidityVault: publicKey(accounts.liquidityVault),
100
+ amount: depositAmt,
101
+ depositUpToLimit: true,
102
+ }),
103
+ }),
104
+ "deposit"
105
+ ),
106
+ ];
58
107
 
59
- const txManager = new ClientTransactionsManager({
60
- txHandler: client,
108
+ const txManager = new TransactionsManager({
109
+ txHandler: new TxHandler({
110
+ signer,
111
+ rpcUrl: LOCAL_IRONFORGE_API_URL,
112
+ showLogs: true,
113
+ }),
61
114
  txRunType: payForTransaction ? "normal" : "only-simulate",
62
115
  priorityFeeSetting: PriorityFeeSetting.Default,
63
116
  retryConfig: { totalRetries: 2 },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.759",
3
+ "version": "1.0.760",
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",
@@ -17,7 +17,7 @@ export interface TxHandlerProps {
17
17
  lpEnv?: ProgramEnv;
18
18
  }
19
19
 
20
- export abstract class TxHandler {
20
+ export class TxHandler {
21
21
  public rpcUrl!: string;
22
22
  public showLogs = false;
23
23
  public programId!: PublicKey;
@@ -64,7 +64,9 @@ export abstract class TxHandler {
64
64
  consoleLog(...args);
65
65
  }
66
66
 
67
- abstract defaultLookupTables(): string[];
67
+ defaultLookupTables(): string[] {
68
+ return [];
69
+ }
68
70
 
69
- abstract resetLiveTxUpdates(success?: boolean): Promise<void>;
71
+ resetLiveTxUpdates(success?: boolean) {}
70
72
  }
@@ -126,8 +126,15 @@ export function retryWithExponentialBackoff<T>(
126
126
  .catch((error: Error) => {
127
127
  attemptNum++;
128
128
 
129
+ console.log(error.name, error.message);
130
+ console.log(
131
+ errorsToThrow?.length,
132
+ (errorsToThrow ?? []).some(
133
+ (errorType) => error instanceof errorType
134
+ )
135
+ );
129
136
  if (
130
- errorsToThrow &&
137
+ errorsToThrow?.length &&
131
138
  errorsToThrow.some((errorType) => error instanceof errorType)
132
139
  ) {
133
140
  reject(error);
@@ -206,7 +213,10 @@ export function validPubkey(pubkey?: PublicKey | UmiPublicKey | string) {
206
213
  return Boolean(pubkey) && pubkey!.toString() !== PublicKey.default.toString();
207
214
  }
208
215
 
209
- export function createRecord<T>(keys: string[], values: T[]): Record<string, T> {
216
+ export function createRecord<T>(
217
+ keys: string[],
218
+ values: T[]
219
+ ): Record<string, T> {
210
220
  return Object.fromEntries(
211
221
  zip(keys, values).map(([k, v]) => [k.toString(), v])
212
222
  );