@drift-labs/sdk 2.153.0-beta.1 → 2.153.0-beta.3

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.
@@ -4220,6 +4220,27 @@
4220
4220
  }
4221
4221
  ]
4222
4222
  },
4223
+ {
4224
+ "name": "deleteSerumFulfillmentConfig",
4225
+ "accounts": [
4226
+ {
4227
+ "name": "state",
4228
+ "isMut": false,
4229
+ "isSigner": false
4230
+ },
4231
+ {
4232
+ "name": "serumFulfillmentConfig",
4233
+ "isMut": true,
4234
+ "isSigner": false
4235
+ },
4236
+ {
4237
+ "name": "admin",
4238
+ "isMut": true,
4239
+ "isSigner": true
4240
+ }
4241
+ ],
4242
+ "args": []
4243
+ },
4223
4244
  {
4224
4245
  "name": "initializeOpenbookV2FulfillmentConfig",
4225
4246
  "accounts": [
@@ -4309,6 +4330,27 @@
4309
4330
  }
4310
4331
  ]
4311
4332
  },
4333
+ {
4334
+ "name": "deleteOpenbookV2FulfillmentConfig",
4335
+ "accounts": [
4336
+ {
4337
+ "name": "state",
4338
+ "isMut": false,
4339
+ "isSigner": false
4340
+ },
4341
+ {
4342
+ "name": "openbookV2FulfillmentConfig",
4343
+ "isMut": true,
4344
+ "isSigner": false
4345
+ },
4346
+ {
4347
+ "name": "admin",
4348
+ "isMut": true,
4349
+ "isSigner": true
4350
+ }
4351
+ ],
4352
+ "args": []
4353
+ },
4312
4354
  {
4313
4355
  "name": "initializePhoenixFulfillmentConfig",
4314
4356
  "accounts": [
@@ -14566,8 +14608,7 @@
14566
14608
  {
14567
14609
  "name": "isolatedPositionScaledBalance",
14568
14610
  "docs": [
14569
- "The last base asset amount per lp the amm had",
14570
- "Used to settle the users lp position",
14611
+ "The scaled balance of the isolated position",
14571
14612
  "precision: SPOT_BALANCE_PRECISION"
14572
14613
  ],
14573
14614
  "type": "u64"
@@ -16068,6 +16109,9 @@
16068
16109
  },
16069
16110
  {
16070
16111
  "name": "HasBuilder"
16112
+ },
16113
+ {
16114
+ "name": "IsIsolatedPosition"
16071
16115
  }
16072
16116
  ]
16073
16117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../../src/tx/txHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../../src/tx/txHandler.ts"],"names":[],"mappings":"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"}
@@ -284,9 +284,11 @@ class TxHandler {
284
284
  const { txVersion, txParams, connection: _connection, preFlightCommitment: _preFlightCommitment, fetchAllMarketLookupTableAccounts, forceVersionedTransaction, instructions, } = props;
285
285
  let { lookupTables } = props;
286
286
  const marketLookupTables = await fetchAllMarketLookupTableAccounts();
287
- lookupTables = lookupTables
287
+ // Combine and filter out any null/undefined lookup tables
288
+ const combinedLookupTables = lookupTables
288
289
  ? [...lookupTables, ...marketLookupTables]
289
290
  : marketLookupTables;
291
+ lookupTables = combinedLookupTables.filter((table) => table !== null && table !== undefined);
290
292
  // # Collect and process Tx Params
291
293
  let baseTxParams = {
292
294
  computeUnits: txParams === null || txParams === void 0 ? void 0 : txParams.computeUnits,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tx/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EACzB,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,8BAA8B,UAA2B,CAAC;AAEvE,eAAO,MAAM,sBAAsB,OAC9B,WAAW,GAAG,oBAAoB,KACpC,OAMF,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAClB,sBAAsB,EAAE,wDAEjB,yBAAyB,EAAE,KAC9C,MAgEF,CAAC;AAMF,wBAAgB,0CAA0C,CACzD,aAAa,EAAE,MAAM,GACnB,UAAU,CAKZ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tx/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EACzB,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,8BAA8B,UAA2B,CAAC;AAEvE,eAAO,MAAM,sBAAsB,OAC9B,WAAW,GAAG,oBAAoB,KACpC,OAMF,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAClB,sBAAsB,EAAE,wDAEjB,yBAAyB,EAAE,KAC9C,MAqEF,CAAC;AAMF,wBAAgB,0CAA0C,CACzD,aAAa,EAAE,MAAM,GACnB,UAAU,CAKZ"}
@@ -41,8 +41,10 @@ const getSizeOfTransaction = (instructions, versionedTransaction = true, address
41
41
  ix.data.length)
42
42
  .reduce((a, b) => a + b, 0);
43
43
  let numberOfAddressLookups = 0;
44
- if (addressLookupTables.length > 0) {
45
- const lookupTableAddresses = addressLookupTables
44
+ // Filter out null/undefined lookup tables before accessing .state
45
+ const validLookupTables = addressLookupTables.filter((table) => table !== null && table !== undefined);
46
+ if (validLookupTables.length > 0) {
47
+ const lookupTableAddresses = validLookupTables
46
48
  .map((addressLookupTable) => addressLookupTable.state.addresses.map((address) => address.toBase58()))
47
49
  .flat();
48
50
  const totalNumberOfAccounts = accounts.size;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.153.0-beta.1",
3
+ "version": "2.153.0-beta.3",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "module": "./lib/browser/index.js",
@@ -384,6 +384,33 @@ export class AdminClient extends DriftClient {
384
384
  );
385
385
  }
386
386
 
387
+ public async deleteSerumFulfillmentConfig(
388
+ serumMarket: PublicKey
389
+ ): Promise<TransactionSignature> {
390
+ const deleteIx = await this.getDeleteSerumFulfillmentConfigIx(serumMarket);
391
+ const tx = await this.buildTransaction(deleteIx);
392
+ const { txSig } = await this.sendTransaction(tx, [], this.opts);
393
+ return txSig;
394
+ }
395
+
396
+ public async getDeleteSerumFulfillmentConfigIx(
397
+ serumMarket: PublicKey
398
+ ): Promise<TransactionInstruction> {
399
+ const serumFulfillmentConfig = getSerumFulfillmentConfigPublicKey(
400
+ this.program.programId,
401
+ serumMarket
402
+ );
403
+ return await this.program.instruction.deleteSerumFulfillmentConfig({
404
+ accounts: {
405
+ admin: this.isSubscribed
406
+ ? this.getStateAccount().admin
407
+ : this.wallet.publicKey,
408
+ state: await this.getStatePublicKey(),
409
+ serumFulfillmentConfig,
410
+ },
411
+ });
412
+ }
413
+
387
414
  public async initializePhoenixFulfillmentConfig(
388
415
  marketIndex: number,
389
416
  phoenixMarket: PublicKey
@@ -476,6 +503,35 @@ export class AdminClient extends DriftClient {
476
503
  );
477
504
  }
478
505
 
506
+ public async deleteOpenbookV2FulfillmentConfig(
507
+ openbookMarket: PublicKey
508
+ ): Promise<TransactionSignature> {
509
+ const deleteIx = await this.getDeleteOpenbookV2FulfillmentConfigIx(
510
+ openbookMarket
511
+ );
512
+ const tx = await this.buildTransaction(deleteIx);
513
+ const { txSig } = await this.sendTransaction(tx, [], this.opts);
514
+ return txSig;
515
+ }
516
+
517
+ public async getDeleteOpenbookV2FulfillmentConfigIx(
518
+ openbookMarket: PublicKey
519
+ ): Promise<TransactionInstruction> {
520
+ const openbookV2FulfillmentConfig = getOpenbookV2FulfillmentConfigPublicKey(
521
+ this.program.programId,
522
+ openbookMarket
523
+ );
524
+ return await this.program.instruction.deleteOpenbookV2FulfillmentConfig({
525
+ accounts: {
526
+ admin: this.isSubscribed
527
+ ? this.getStateAccount().admin
528
+ : this.wallet.publicKey,
529
+ state: await this.getStatePublicKey(),
530
+ openbookV2FulfillmentConfig,
531
+ },
532
+ });
533
+ }
534
+
479
535
  public async initializePerpMarket(
480
536
  marketIndex: number,
481
537
  priceOracle: PublicKey,
@@ -776,7 +776,7 @@ export class DriftClient {
776
776
 
777
777
  if (!this.marketLookupTables) {
778
778
  console.log('Market lookup table address not set');
779
- return;
779
+ return [];
780
780
  }
781
781
 
782
782
  const lookupTableAccountResults = await Promise.all(
@@ -785,9 +785,12 @@ export class DriftClient {
785
785
  )
786
786
  );
787
787
 
788
- const lookupTableAccounts = lookupTableAccountResults.map(
789
- (result) => result.value
790
- );
788
+ // Filter out null values - lookup tables may not exist on-chain
789
+ const lookupTableAccounts = lookupTableAccountResults
790
+ .map((result) => result.value)
791
+ .filter(
792
+ (account): account is AddressLookupTableAccount => account !== null
793
+ );
791
794
  this.lookupTableAccounts = lookupTableAccounts;
792
795
 
793
796
  return lookupTableAccounts;
@@ -1129,15 +1132,23 @@ export class DriftClient {
1129
1132
  return [txSig, userAccountPublicKey];
1130
1133
  }
1131
1134
 
1132
- async getInitializeUserStatsIx(): Promise<TransactionInstruction> {
1135
+ async getInitializeUserStatsIx(overrides?: {
1136
+ /**
1137
+ * Optional external wallet to use as payer. If provided, this wallet will pay
1138
+ * for the account creation instead of the default wallet.
1139
+ */
1140
+ externalWallet?: PublicKey;
1141
+ }): Promise<TransactionInstruction> {
1142
+ const payer = overrides?.externalWallet ?? this.wallet.publicKey;
1143
+ const authority = this.authority;
1133
1144
  return await this.program.instruction.initializeUserStats({
1134
1145
  accounts: {
1135
1146
  userStats: getUserStatsAccountPublicKey(
1136
1147
  this.program.programId,
1137
- this.wallet.publicKey // only allow payer to initialize own user stats account
1148
+ authority
1138
1149
  ),
1139
- authority: this.wallet.publicKey,
1140
- payer: this.wallet.publicKey,
1150
+ authority,
1151
+ payer,
1141
1152
  rent: anchor.web3.SYSVAR_RENT_PUBKEY,
1142
1153
  systemProgram: anchor.web3.SystemProgram.programId,
1143
1154
  state: await this.getStatePublicKey(),
@@ -1166,8 +1177,16 @@ export class DriftClient {
1166
1177
 
1167
1178
  async getInitializeSignedMsgUserOrdersAccountIx(
1168
1179
  authority: PublicKey,
1169
- numOrders: number
1180
+ numOrders: number,
1181
+ overrides?: {
1182
+ /**
1183
+ * Optional external wallet to use as payer. If provided, this wallet will pay
1184
+ * for the account creation instead of the default wallet.
1185
+ */
1186
+ externalWallet?: PublicKey;
1187
+ }
1170
1188
  ): Promise<[PublicKey, TransactionInstruction]> {
1189
+ const payer = overrides?.externalWallet ?? this.wallet.publicKey;
1171
1190
  const signedMsgUserAccountPublicKey = getSignedMsgUserAccountPublicKey(
1172
1191
  this.program.programId,
1173
1192
  authority
@@ -1177,7 +1196,7 @@ export class DriftClient {
1177
1196
  accounts: {
1178
1197
  signedMsgUserOrders: signedMsgUserAccountPublicKey,
1179
1198
  authority,
1180
- payer: this.wallet.publicKey,
1199
+ payer,
1181
1200
  rent: anchor.web3.SYSVAR_RENT_PUBKEY,
1182
1201
  systemProgram: anchor.web3.SystemProgram.programId,
1183
1202
  },
@@ -1592,11 +1611,19 @@ export class DriftClient {
1592
1611
  private async getInitializeUserInstructions(
1593
1612
  subAccountId = 0,
1594
1613
  name?: string,
1595
- referrerInfo?: ReferrerInfo
1614
+ referrerInfo?: ReferrerInfo,
1615
+ overrides?: {
1616
+ externalWallet?: PublicKey;
1617
+ }
1596
1618
  ): Promise<[PublicKey, TransactionInstruction]> {
1619
+ // Use external wallet as payer if provided, otherwise use the wallet
1620
+ const payer = overrides?.externalWallet ?? this.wallet.publicKey;
1621
+ // The authority is the account owner (this.authority), not the payer
1622
+ const accountAuthority = this.authority;
1623
+
1597
1624
  const userAccountPublicKey = await getUserAccountPublicKey(
1598
1625
  this.program.programId,
1599
- this.wallet.publicKey,
1626
+ accountAuthority,
1600
1627
  subAccountId
1601
1628
  );
1602
1629
 
@@ -1618,7 +1645,7 @@ export class DriftClient {
1618
1645
  if (!state.whitelistMint.equals(PublicKey.default)) {
1619
1646
  const associatedTokenPublicKey = await getAssociatedTokenAddress(
1620
1647
  state.whitelistMint,
1621
- this.wallet.publicKey
1648
+ payer
1622
1649
  );
1623
1650
  remainingAccounts.push({
1624
1651
  pubkey: associatedTokenPublicKey,
@@ -1641,8 +1668,8 @@ export class DriftClient {
1641
1668
  accounts: {
1642
1669
  user: userAccountPublicKey,
1643
1670
  userStats: this.getUserStatsAccountPublicKey(),
1644
- authority: this.wallet.publicKey,
1645
- payer: this.wallet.publicKey,
1671
+ authority: accountAuthority,
1672
+ payer: payer,
1646
1673
  rent: anchor.web3.SYSVAR_RENT_PUBKEY,
1647
1674
  systemProgram: anchor.web3.SystemProgram.programId,
1648
1675
  state: await this.getStatePublicKey(),
@@ -3315,7 +3342,14 @@ export class DriftClient {
3315
3342
  referrerInfo?: ReferrerInfo,
3316
3343
  donateAmount?: BN,
3317
3344
  customMaxMarginRatio?: number,
3318
- poolId?: number
3345
+ poolId?: number,
3346
+ overrides?: {
3347
+ /**
3348
+ * Optional external wallet to deposit from. If provided, the deposit will be made
3349
+ * from this wallet instead of the user's authority wallet.
3350
+ */
3351
+ externalWallet?: PublicKey;
3352
+ }
3319
3353
  ): Promise<{
3320
3354
  ixs: TransactionInstruction[];
3321
3355
  userAccountPublicKey: PublicKey;
@@ -3326,17 +3360,20 @@ export class DriftClient {
3326
3360
  await this.getInitializeUserInstructions(
3327
3361
  subAccountId,
3328
3362
  name,
3329
- referrerInfo
3363
+ referrerInfo,
3364
+ overrides
3330
3365
  );
3331
3366
 
3367
+ // Check signed message orders account for the actual authority (account owner)
3332
3368
  const isSignedMsgUserOrdersAccountInitialized =
3333
- await this.isSignedMsgUserOrdersAccountInitialized(this.wallet.publicKey);
3369
+ await this.isSignedMsgUserOrdersAccountInitialized(this.authority);
3334
3370
 
3335
3371
  if (!isSignedMsgUserOrdersAccountInitialized) {
3336
3372
  const [, initializeSignedMsgUserOrdersAccountIx] =
3337
3373
  await this.getInitializeSignedMsgUserOrdersAccountIx(
3338
- this.wallet.publicKey,
3339
- 8
3374
+ this.authority,
3375
+ 8,
3376
+ overrides
3340
3377
  );
3341
3378
  ixs.push(initializeSignedMsgUserOrdersAccountIx);
3342
3379
  }
@@ -3345,7 +3382,8 @@ export class DriftClient {
3345
3382
 
3346
3383
  const isSolMarket = spotMarket.mint.equals(WRAPPED_SOL_MINT);
3347
3384
 
3348
- const authority = this.wallet.publicKey;
3385
+ // Use external wallet for deposit source if provided, otherwise use the wallet
3386
+ const depositSource = overrides?.externalWallet ?? this.wallet.publicKey;
3349
3387
 
3350
3388
  const isFromSubaccount =
3351
3389
  fromSubAccountId !== null &&
@@ -3356,7 +3394,7 @@ export class DriftClient {
3356
3394
 
3357
3395
  const createWSOLTokenAccount =
3358
3396
  (isSolMarket &&
3359
- userTokenAccount.equals(authority) &&
3397
+ userTokenAccount.equals(depositSource) &&
3360
3398
  !isFromSubaccount) ||
3361
3399
  !donateAmount.eq(ZERO);
3362
3400
 
@@ -3365,7 +3403,13 @@ export class DriftClient {
3365
3403
  let wsolTokenAccount: PublicKey;
3366
3404
  if (createWSOLTokenAccount) {
3367
3405
  const { ixs: startIxs, pubkey } =
3368
- await this.getWrappedSolAccountCreationIxs(wSolAmount, true);
3406
+ await this.getWrappedSolAccountCreationIxs(
3407
+ wSolAmount,
3408
+ true,
3409
+ overrides?.externalWallet
3410
+ ? { authority: overrides.externalWallet }
3411
+ : undefined
3412
+ );
3369
3413
 
3370
3414
  wsolTokenAccount = pubkey;
3371
3415
 
@@ -3408,14 +3452,17 @@ export class DriftClient {
3408
3452
  userTokenAccount,
3409
3453
  subAccountId,
3410
3454
  false,
3411
- false
3455
+ false,
3456
+ overrides?.externalWallet
3457
+ ? { authority: overrides.externalWallet }
3458
+ : undefined
3412
3459
  );
3413
3460
 
3414
3461
  if (subAccountId === 0) {
3415
3462
  if (
3416
3463
  !(await this.checkIfAccountExists(this.getUserStatsAccountPublicKey()))
3417
3464
  ) {
3418
- ixs.push(await this.getInitializeUserStatsIx());
3465
+ ixs.push(await this.getInitializeUserStatsIx(overrides));
3419
3466
  }
3420
3467
  }
3421
3468
  ixs.push(initializeUserAccountIx);
@@ -3446,12 +3493,13 @@ export class DriftClient {
3446
3493
  }
3447
3494
 
3448
3495
  // Close the wrapped sol account at the end of the transaction
3496
+ // Return funds to the deposit source (external wallet if provided)
3449
3497
  if (createWSOLTokenAccount) {
3450
3498
  ixs.push(
3451
3499
  createCloseAccountInstruction(
3452
3500
  wsolTokenAccount,
3453
- authority,
3454
- authority,
3501
+ depositSource,
3502
+ depositSource,
3455
3503
  []
3456
3504
  )
3457
3505
  );
@@ -3474,7 +3522,10 @@ export class DriftClient {
3474
3522
  donateAmount?: BN,
3475
3523
  txParams?: TxParams,
3476
3524
  customMaxMarginRatio?: number,
3477
- poolId?: number
3525
+ poolId?: number,
3526
+ overrides?: {
3527
+ externalWallet?: PublicKey;
3528
+ }
3478
3529
  ): Promise<[Transaction | VersionedTransaction, PublicKey]> {
3479
3530
  const { ixs, userAccountPublicKey } =
3480
3531
  await this.createInitializeUserAccountAndDepositCollateralIxs(
@@ -3487,7 +3538,8 @@ export class DriftClient {
3487
3538
  referrerInfo,
3488
3539
  donateAmount,
3489
3540
  customMaxMarginRatio,
3490
- poolId
3541
+ poolId,
3542
+ overrides
3491
3543
  );
3492
3544
 
3493
3545
  const tx = await this.buildTransaction(ixs, txParams);
@@ -3506,6 +3558,9 @@ export class DriftClient {
3506
3558
  * @param referrerInfo
3507
3559
  * @param donateAmount
3508
3560
  * @param txParams
3561
+ * @param customMaxMarginRatio
3562
+ * @param poolId
3563
+ * @param overrides - Optional overrides including externalWallet for depositing from a different wallet
3509
3564
  * @returns
3510
3565
  */
3511
3566
  public async initializeUserAccountAndDepositCollateral(
@@ -3519,7 +3574,10 @@ export class DriftClient {
3519
3574
  donateAmount?: BN,
3520
3575
  txParams?: TxParams,
3521
3576
  customMaxMarginRatio?: number,
3522
- poolId?: number
3577
+ poolId?: number,
3578
+ overrides?: {
3579
+ externalWallet?: PublicKey;
3580
+ }
3523
3581
  ): Promise<[TransactionSignature, PublicKey]> {
3524
3582
  const [tx, userAccountPublicKey] =
3525
3583
  await this.createInitializeUserAccountAndDepositCollateral(
@@ -3533,7 +3591,8 @@ export class DriftClient {
3533
3591
  donateAmount,
3534
3592
  txParams,
3535
3593
  customMaxMarginRatio,
3536
- poolId
3594
+ poolId,
3595
+ overrides
3537
3596
  );
3538
3597
  const additionalSigners: Array<Signer> = [];
3539
3598
 
@@ -4220,6 +4220,27 @@
4220
4220
  }
4221
4221
  ]
4222
4222
  },
4223
+ {
4224
+ "name": "deleteSerumFulfillmentConfig",
4225
+ "accounts": [
4226
+ {
4227
+ "name": "state",
4228
+ "isMut": false,
4229
+ "isSigner": false
4230
+ },
4231
+ {
4232
+ "name": "serumFulfillmentConfig",
4233
+ "isMut": true,
4234
+ "isSigner": false
4235
+ },
4236
+ {
4237
+ "name": "admin",
4238
+ "isMut": true,
4239
+ "isSigner": true
4240
+ }
4241
+ ],
4242
+ "args": []
4243
+ },
4223
4244
  {
4224
4245
  "name": "initializeOpenbookV2FulfillmentConfig",
4225
4246
  "accounts": [
@@ -4309,6 +4330,27 @@
4309
4330
  }
4310
4331
  ]
4311
4332
  },
4333
+ {
4334
+ "name": "deleteOpenbookV2FulfillmentConfig",
4335
+ "accounts": [
4336
+ {
4337
+ "name": "state",
4338
+ "isMut": false,
4339
+ "isSigner": false
4340
+ },
4341
+ {
4342
+ "name": "openbookV2FulfillmentConfig",
4343
+ "isMut": true,
4344
+ "isSigner": false
4345
+ },
4346
+ {
4347
+ "name": "admin",
4348
+ "isMut": true,
4349
+ "isSigner": true
4350
+ }
4351
+ ],
4352
+ "args": []
4353
+ },
4312
4354
  {
4313
4355
  "name": "initializePhoenixFulfillmentConfig",
4314
4356
  "accounts": [
@@ -14566,8 +14608,7 @@
14566
14608
  {
14567
14609
  "name": "isolatedPositionScaledBalance",
14568
14610
  "docs": [
14569
- "The last base asset amount per lp the amm had",
14570
- "Used to settle the users lp position",
14611
+ "The scaled balance of the isolated position",
14571
14612
  "precision: SPOT_BALANCE_PRECISION"
14572
14613
  ],
14573
14614
  "type": "u64"
@@ -16068,6 +16109,9 @@
16068
16109
  },
16069
16110
  {
16070
16111
  "name": "HasBuilder"
16112
+ },
16113
+ {
16114
+ "name": "IsIsolatedPosition"
16071
16115
  }
16072
16116
  ]
16073
16117
  }
@@ -495,9 +495,14 @@ export class TxHandler {
495
495
 
496
496
  const marketLookupTables = await fetchAllMarketLookupTableAccounts();
497
497
 
498
- lookupTables = lookupTables
498
+ // Combine and filter out any null/undefined lookup tables
499
+ const combinedLookupTables = lookupTables
499
500
  ? [...lookupTables, ...marketLookupTables]
500
501
  : marketLookupTables;
502
+ lookupTables = combinedLookupTables.filter(
503
+ (table): table is AddressLookupTableAccount =>
504
+ table !== null && table !== undefined
505
+ );
501
506
 
502
507
  // # Collect and process Tx Params
503
508
  let baseTxParams: BaseTxParams = {
package/src/tx/utils.ts CHANGED
@@ -58,8 +58,13 @@ export const getSizeOfTransaction = (
58
58
  .reduce((a, b) => a + b, 0);
59
59
 
60
60
  let numberOfAddressLookups = 0;
61
- if (addressLookupTables.length > 0) {
62
- const lookupTableAddresses = addressLookupTables
61
+ // Filter out null/undefined lookup tables before accessing .state
62
+ const validLookupTables = addressLookupTables.filter(
63
+ (table): table is AddressLookupTableAccount =>
64
+ table !== null && table !== undefined
65
+ );
66
+ if (validLookupTables.length > 0) {
67
+ const lookupTableAddresses = validLookupTables
63
68
  .map((addressLookupTable) =>
64
69
  addressLookupTable.state.addresses.map((address) => address.toBase58())
65
70
  )