@haven-fi/solauto-sdk 1.0.431 → 1.0.433

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 +1 @@
1
- {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,cAAc,CAAC,CAAY;IAE5B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IA4F1C,8BAA8B;IAoCpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IA0BvE,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IAgFrB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoF5D,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CA8ClE"}
1
+ {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,cAAc,CAAC,CAAY;IAE5B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IA2F1C,8BAA8B;IAwCpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IA0BvE,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IAgFrB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoF5D,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CA8ClE"}
@@ -21,11 +21,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
21
21
  await super.initialize(args);
22
22
  this.lendingPlatform = generated_1.LendingPlatform.Marginfi;
23
23
  if (this.selfManaged) {
24
- const marginfiAccSigner = (0, umi_1.createSignerFromKeypair)(this.umi, this.umi.eddsa.generateKeypair());
25
- this.marginfiAccount = args.marginfiAccount ?? marginfiAccSigner;
26
- if (!args.marginfiAccount) {
27
- this.otherSigners.push(marginfiAccSigner);
28
- }
24
+ this.marginfiAccount =
25
+ args.marginfiAccount ??
26
+ (0, umi_1.createSignerFromKeypair)(this.umi, this.umi.eddsa.generateKeypair());
29
27
  }
30
28
  else {
31
29
  if (this.solautoPositionData) {
@@ -46,6 +44,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
46
44
  "publicKey" in this.marginfiAccount
47
45
  ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.marginfiAccount.publicKey)
48
46
  : this.marginfiAccount;
47
+ if ("publicKey" in this.marginfiAccount) {
48
+ this.otherSigners.push(this.marginfiAccount);
49
+ }
49
50
  const marginfiAccountData = !args.new
50
51
  ? await (0, marginfi_sdk_1.safeFetchMarginfiAccount)(this.umi, (0, umi_1.publicKey)(this.marginfiAccountPk), { commitment: "confirmed" })
51
52
  : null;
@@ -90,6 +91,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
90
91
  compatibleMarginfiAccounts.length > 0
91
92
  ? compatibleMarginfiAccounts[0]
92
93
  : undefined;
94
+ if (this.intermediaryMarginfiAccountSigner) {
95
+ this.otherSigners.push(this.intermediaryMarginfiAccountSigner);
96
+ }
93
97
  }
94
98
  protocolAccount() {
95
99
  return this.marginfiAccountPk;
@@ -1,8 +1,8 @@
1
- import { Connection, PublicKey, VersionedMessage } from "@solana/web3.js";
2
- import { Signer, TransactionBuilder, Umi } from "@metaplex-foundation/umi";
1
+ import { Connection, PublicKey } from "@solana/web3.js";
2
+ import { Signer, TransactionBuilder, Umi, TransactionMessage } from "@metaplex-foundation/umi";
3
3
  import { PriorityFeeSetting, TransactionRunType } from "../types";
4
4
  export declare function getRandomTipAccount(): PublicKey;
5
- export declare function getRequiredSigners(message: VersionedMessage): {
5
+ export declare function getRequiredSigners(message: TransactionMessage): {
6
6
  index: number;
7
7
  publicKey: string;
8
8
  isWritable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAGT,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEJ,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAa/C;AAqND,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB;;;;IAkB3D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8F/B"}
1
+ {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAa/C;AA8ND,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8F/B"}
@@ -116,8 +116,15 @@ async function umiToVersionedTransactions(umi, blockhash, userSigner, otherSigne
116
116
  }));
117
117
  if (sign) {
118
118
  builtTxs = await userSigner.signAllTransactions(builtTxs);
119
- for (const s of otherSigners) {
120
- builtTxs = await s.signAllTransactions(builtTxs);
119
+ for (const signer of otherSigners) {
120
+ for (let i = 0; i < builtTxs.length; i++) {
121
+ const requiredSigners = getRequiredSigners(builtTxs[i].message);
122
+ if (requiredSigners
123
+ .map((x) => x.publicKey)
124
+ .includes(signer.publicKey.toString())) {
125
+ builtTxs[i] = await signer.signTransaction(builtTxs[i]);
126
+ }
127
+ }
121
128
  }
122
129
  }
123
130
  return builtTxs.map((x) => (0, umi_web3js_adapters_1.toWeb3JsTransaction)(x));
@@ -182,7 +189,7 @@ function getRequiredSigners(message) {
182
189
  const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
183
190
  const signersInfo = [];
184
191
  for (let i = 0; i < numRequiredSignatures; i++) {
185
- const publicKey = message.staticAccountKeys[i].toBase58();
192
+ const publicKey = message.accounts[i].toString();
186
193
  const isWritable = i < numWritableSigners;
187
194
  signersInfo.push({
188
195
  index: i,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.431",
3
+ "version": "1.0.433",
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",
@@ -95,14 +95,9 @@ export class SolautoMarginfiClient extends SolautoClient {
95
95
  this.lendingPlatform = LendingPlatform.Marginfi;
96
96
 
97
97
  if (this.selfManaged) {
98
- const marginfiAccSigner = createSignerFromKeypair(
99
- this.umi,
100
- this.umi.eddsa.generateKeypair()
101
- );
102
- this.marginfiAccount = args.marginfiAccount ?? marginfiAccSigner;
103
- if (!args.marginfiAccount) {
104
- this.otherSigners.push(marginfiAccSigner);
105
- }
98
+ this.marginfiAccount =
99
+ args.marginfiAccount ??
100
+ createSignerFromKeypair(this.umi, this.umi.eddsa.generateKeypair());
106
101
  } else {
107
102
  if (this.solautoPositionData) {
108
103
  this.marginfiAccount = toWeb3JsPublicKey(
@@ -138,6 +133,10 @@ export class SolautoMarginfiClient extends SolautoClient {
138
133
  ? toWeb3JsPublicKey(this.marginfiAccount.publicKey)
139
134
  : this.marginfiAccount;
140
135
 
136
+ if ("publicKey" in this.marginfiAccount) {
137
+ this.otherSigners.push(this.marginfiAccount);
138
+ }
139
+
141
140
  const marginfiAccountData = !args.new
142
141
  ? await safeFetchMarginfiAccount(
143
142
  this.umi,
@@ -215,6 +214,10 @@ export class SolautoMarginfiClient extends SolautoClient {
215
214
  compatibleMarginfiAccounts.length > 0
216
215
  ? compatibleMarginfiAccounts[0]
217
216
  : undefined;
217
+
218
+ if (this.intermediaryMarginfiAccountSigner) {
219
+ this.otherSigners.push(this.intermediaryMarginfiAccountSigner);
220
+ }
218
221
  }
219
222
 
220
223
  protocolAccount(): PublicKey {
@@ -13,6 +13,7 @@ import {
13
13
  TransactionBuilder,
14
14
  Umi,
15
15
  WrappedInstruction,
16
+ TransactionMessage,
16
17
  } from "@metaplex-foundation/umi";
17
18
  import {
18
19
  assembleFinalTransaction,
@@ -178,8 +179,17 @@ async function umiToVersionedTransactions(
178
179
 
179
180
  if (sign) {
180
181
  builtTxs = await userSigner.signAllTransactions(builtTxs);
181
- for (const s of otherSigners) {
182
- builtTxs = await s.signAllTransactions(builtTxs);
182
+ for (const signer of otherSigners) {
183
+ for (let i = 0; i < builtTxs.length; i++) {
184
+ const requiredSigners = getRequiredSigners(builtTxs[i].message);
185
+ if (
186
+ requiredSigners
187
+ .map((x) => x.publicKey)
188
+ .includes(signer.publicKey.toString())
189
+ ) {
190
+ builtTxs[i] = await signer.signTransaction(builtTxs[i]);
191
+ }
192
+ }
183
193
  }
184
194
  }
185
195
 
@@ -253,14 +263,14 @@ async function sendJitoBundle(
253
263
  return bundleId ? await pollBundleStatus(bundleId) : [];
254
264
  }
255
265
 
256
- export function getRequiredSigners(message: VersionedMessage) {
266
+ export function getRequiredSigners(message: TransactionMessage) {
257
267
  const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
258
268
 
259
269
  const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
260
270
 
261
271
  const signersInfo = [];
262
272
  for (let i = 0; i < numRequiredSignatures; i++) {
263
- const publicKey = message.staticAccountKeys[i].toBase58();
273
+ const publicKey = message.accounts[i].toString();
264
274
  const isWritable = i < numWritableSigners;
265
275
 
266
276
  signersInfo.push({