@0dotxyz/p0-ts-sdk 2.2.0-alpha.0 → 2.2.0-alpha.2

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.
package/dist/index.cjs CHANGED
@@ -602,8 +602,8 @@ function makeBundleTipIx(feePayer, bundleTip = 1e5) {
602
602
  return bundleTipInstruction;
603
603
  }
604
604
 
605
- // src/idl/marginfi_0.1.7.json
606
- var marginfi_0_1_7_default = {
605
+ // src/idl/marginfi_0.1.8.json
606
+ var marginfi_0_1_8_default = {
607
607
  address: "",
608
608
  metadata: {
609
609
  name: "marginfi",
@@ -653,7 +653,7 @@ var marginfi_0_1_7_default = {
653
653
  {
654
654
  name: "configure_bank_rate_limits",
655
655
  docs: [
656
- "(admin only) Configure bank-level rate limits for withdraw/borrow.",
656
+ "(admin or delegate_limit_admin) Configure bank-level rate limits for withdraw/borrow.",
657
657
  "Rate limits track net outflow in native tokens. Deposits offset withdraws.",
658
658
  "Set to 0 to disable. Hourly and daily windows are independent."
659
659
  ],
@@ -665,8 +665,7 @@ var marginfi_0_1_7_default = {
665
665
  },
666
666
  {
667
667
  name: "admin",
668
- signer: true,
669
- relations: ["group"]
668
+ signer: true
670
669
  },
671
670
  {
672
671
  name: "bank",
@@ -690,7 +689,9 @@ var marginfi_0_1_7_default = {
690
689
  },
691
690
  {
692
691
  name: "configure_deleverage_withdrawal_limit",
693
- docs: ["(group admin only) Set the daily withdrawal limit for deleverages per group."],
692
+ docs: [
693
+ "(admin or delegate_limit_admin) Set the daily withdrawal limit for deleverages per group."
694
+ ],
694
695
  discriminator: [28, 132, 205, 158, 67, 77, 177, 63],
695
696
  accounts: [
696
697
  {
@@ -699,8 +700,7 @@ var marginfi_0_1_7_default = {
699
700
  },
700
701
  {
701
702
  name: "admin",
702
- signer: true,
703
- relations: ["marginfi_group"]
703
+ signer: true
704
704
  }
705
705
  ],
706
706
  args: [
@@ -713,7 +713,7 @@ var marginfi_0_1_7_default = {
713
713
  {
714
714
  name: "configure_group_rate_limits",
715
715
  docs: [
716
- "(admin only) Configure group-level rate limits for withdraw/borrow.",
716
+ "(admin or delegate_limit_admin) Configure group-level rate limits for withdraw/borrow.",
717
717
  "Rate limits track aggregate net outflow in USD.",
718
718
  "Example: $10M = 10_000_000. Set to 0 to disable."
719
719
  ],
@@ -725,8 +725,7 @@ var marginfi_0_1_7_default = {
725
725
  },
726
726
  {
727
727
  name: "admin",
728
- signer: true,
729
- relations: ["marginfi_group"]
728
+ signer: true
730
729
  }
731
730
  ],
732
731
  args: [
@@ -754,7 +753,6 @@ var marginfi_0_1_7_default = {
754
753
  accounts: [
755
754
  {
756
755
  name: "group",
757
- writable: true,
758
756
  relations: ["marginfi_account", "bank"]
759
757
  },
760
758
  {
@@ -1342,7 +1340,6 @@ var marginfi_0_1_7_default = {
1342
1340
  accounts: [
1343
1341
  {
1344
1342
  name: "group",
1345
- writable: true,
1346
1343
  relations: ["marginfi_account", "bank"]
1347
1344
  },
1348
1345
  {
@@ -1876,6 +1873,7 @@ var marginfi_0_1_7_default = {
1876
1873
  accounts: [
1877
1874
  {
1878
1875
  name: "group",
1876
+ writable: true,
1879
1877
  relations: ["marginfi_account", "bank"]
1880
1878
  },
1881
1879
  {
@@ -1884,8 +1882,7 @@ var marginfi_0_1_7_default = {
1884
1882
  },
1885
1883
  {
1886
1884
  name: "authority",
1887
- signer: true,
1888
- relations: ["marginfi_account"]
1885
+ signer: true
1889
1886
  },
1890
1887
  {
1891
1888
  name: "bank",
@@ -2175,7 +2172,6 @@ var marginfi_0_1_7_default = {
2175
2172
  accounts: [
2176
2173
  {
2177
2174
  name: "group",
2178
- writable: true,
2179
2175
  relations: ["marginfi_account", "bank"]
2180
2176
  },
2181
2177
  {
@@ -2350,7 +2346,6 @@ var marginfi_0_1_7_default = {
2350
2346
  accounts: [
2351
2347
  {
2352
2348
  name: "group",
2353
- writable: true,
2354
2349
  relations: ["marginfi_account", "bank"]
2355
2350
  },
2356
2351
  {
@@ -2879,7 +2874,6 @@ var marginfi_0_1_7_default = {
2879
2874
  accounts: [
2880
2875
  {
2881
2876
  name: "group",
2882
- writable: true,
2883
2877
  relations: ["marginfi_account", "bank"]
2884
2878
  },
2885
2879
  {
@@ -2976,12 +2970,13 @@ var marginfi_0_1_7_default = {
2976
2970
  relations: ["bank"]
2977
2971
  },
2978
2972
  {
2979
- name: "reserve_liquidity_mint",
2973
+ name: "mint",
2980
2974
  docs: [
2981
2975
  "The liquidity token mint (e.g., USDC)",
2982
2976
  "Needs serde to get the mint decimals for transfer checked"
2983
2977
  ],
2984
- writable: true
2978
+ writable: true,
2979
+ relations: ["bank"]
2985
2980
  },
2986
2981
  {
2987
2982
  name: "reserve_liquidity_supply",
@@ -3056,7 +3051,6 @@ var marginfi_0_1_7_default = {
3056
3051
  accounts: [
3057
3052
  {
3058
3053
  name: "group",
3059
- writable: true,
3060
3054
  relations: ["marginfi_account", "bank"]
3061
3055
  },
3062
3056
  {
@@ -3128,11 +3122,26 @@ var marginfi_0_1_7_default = {
3128
3122
  ]
3129
3123
  },
3130
3124
  {
3131
- name: "lending_account_close_balance",
3125
+ name: "lending_account_clear_emissions",
3132
3126
  docs: [
3133
- "(account authority) Close a balance position with dust-level amounts. Claims outstanding",
3134
- "emissions before closing."
3127
+ "(permissionless) Zero out `emissions_outstanding` on a balance after emissions are disabled",
3128
+ "on the bank."
3135
3129
  ],
3130
+ discriminator: [239, 4, 221, 98, 45, 167, 201, 244],
3131
+ accounts: [
3132
+ {
3133
+ name: "marginfi_account",
3134
+ writable: true
3135
+ },
3136
+ {
3137
+ name: "bank"
3138
+ }
3139
+ ],
3140
+ args: []
3141
+ },
3142
+ {
3143
+ name: "lending_account_close_balance",
3144
+ docs: ["(account authority) Close a balance position with dust-level amounts."],
3136
3145
  discriminator: [245, 54, 41, 4, 243, 202, 31, 17],
3137
3146
  accounts: [
3138
3147
  {
@@ -3164,7 +3173,219 @@ var marginfi_0_1_7_default = {
3164
3173
  accounts: [
3165
3174
  {
3166
3175
  name: "group",
3176
+ relations: ["marginfi_account", "bank"]
3177
+ },
3178
+ {
3179
+ name: "marginfi_account",
3180
+ writable: true
3181
+ },
3182
+ {
3183
+ name: "authority",
3184
+ signer: true
3185
+ },
3186
+ {
3187
+ name: "bank",
3188
+ writable: true
3189
+ },
3190
+ {
3191
+ name: "signer_token_account",
3192
+ writable: true
3193
+ },
3194
+ {
3195
+ name: "liquidity_vault",
3167
3196
  writable: true,
3197
+ relations: ["bank"]
3198
+ },
3199
+ {
3200
+ name: "token_program"
3201
+ }
3202
+ ],
3203
+ args: [
3204
+ {
3205
+ name: "amount",
3206
+ type: "u64"
3207
+ },
3208
+ {
3209
+ name: "deposit_up_to_limit",
3210
+ type: {
3211
+ option: "bool"
3212
+ }
3213
+ }
3214
+ ]
3215
+ },
3216
+ {
3217
+ name: "lending_account_end_flashloan",
3218
+ docs: ["(account authority) End a flash loan and run the health check."],
3219
+ discriminator: [105, 124, 201, 106, 153, 2, 8, 156],
3220
+ accounts: [
3221
+ {
3222
+ name: "marginfi_account",
3223
+ writable: true
3224
+ },
3225
+ {
3226
+ name: "authority",
3227
+ signer: true,
3228
+ relations: ["marginfi_account"]
3229
+ }
3230
+ ],
3231
+ args: []
3232
+ },
3233
+ {
3234
+ name: "lending_account_liquidate",
3235
+ docs: [
3236
+ "(permissionless) Liquidate a lending account balance of an unhealthy marginfi account.",
3237
+ "The liquidator takes on the liability and receives discounted collateral (2.5% liquidator",
3238
+ "fee + 2.5% insurance fee).",
3239
+ "* `asset_amount` - amount of collateral to liquidate",
3240
+ "* `liquidatee_accounts` - number of remaining accounts for the liquidatee",
3241
+ "* `liquidator_accounts` - number of remaining accounts for the liquidator"
3242
+ ],
3243
+ discriminator: [214, 169, 151, 213, 251, 167, 86, 219],
3244
+ accounts: [
3245
+ {
3246
+ name: "group",
3247
+ relations: [
3248
+ "asset_bank",
3249
+ "liab_bank",
3250
+ "liquidator_marginfi_account",
3251
+ "liquidatee_marginfi_account"
3252
+ ]
3253
+ },
3254
+ {
3255
+ name: "asset_bank",
3256
+ writable: true
3257
+ },
3258
+ {
3259
+ name: "liab_bank",
3260
+ writable: true
3261
+ },
3262
+ {
3263
+ name: "liquidator_marginfi_account",
3264
+ writable: true
3265
+ },
3266
+ {
3267
+ name: "authority",
3268
+ signer: true
3269
+ },
3270
+ {
3271
+ name: "liquidatee_marginfi_account",
3272
+ writable: true
3273
+ },
3274
+ {
3275
+ name: "bank_liquidity_vault_authority",
3276
+ pda: {
3277
+ seeds: [
3278
+ {
3279
+ kind: "const",
3280
+ value: [
3281
+ 108,
3282
+ 105,
3283
+ 113,
3284
+ 117,
3285
+ 105,
3286
+ 100,
3287
+ 105,
3288
+ 116,
3289
+ 121,
3290
+ 95,
3291
+ 118,
3292
+ 97,
3293
+ 117,
3294
+ 108,
3295
+ 116,
3296
+ 95,
3297
+ 97,
3298
+ 117,
3299
+ 116,
3300
+ 104
3301
+ ]
3302
+ },
3303
+ {
3304
+ kind: "account",
3305
+ path: "liab_bank"
3306
+ }
3307
+ ]
3308
+ }
3309
+ },
3310
+ {
3311
+ name: "bank_liquidity_vault",
3312
+ writable: true,
3313
+ pda: {
3314
+ seeds: [
3315
+ {
3316
+ kind: "const",
3317
+ value: [108, 105, 113, 117, 105, 100, 105, 116, 121, 95, 118, 97, 117, 108, 116]
3318
+ },
3319
+ {
3320
+ kind: "account",
3321
+ path: "liab_bank"
3322
+ }
3323
+ ]
3324
+ }
3325
+ },
3326
+ {
3327
+ name: "bank_insurance_vault",
3328
+ writable: true,
3329
+ pda: {
3330
+ seeds: [
3331
+ {
3332
+ kind: "const",
3333
+ value: [105, 110, 115, 117, 114, 97, 110, 99, 101, 95, 118, 97, 117, 108, 116]
3334
+ },
3335
+ {
3336
+ kind: "account",
3337
+ path: "liab_bank"
3338
+ }
3339
+ ]
3340
+ }
3341
+ },
3342
+ {
3343
+ name: "token_program"
3344
+ }
3345
+ ],
3346
+ args: [
3347
+ {
3348
+ name: "asset_amount",
3349
+ type: "u64"
3350
+ },
3351
+ {
3352
+ name: "liquidatee_accounts",
3353
+ type: "u8"
3354
+ },
3355
+ {
3356
+ name: "liquidator_accounts",
3357
+ type: "u8"
3358
+ }
3359
+ ]
3360
+ },
3361
+ {
3362
+ name: "lending_account_pulse_health",
3363
+ docs: [
3364
+ "(Permissionless) Refresh the internal risk engine health cache. Useful for liquidators and",
3365
+ "other consumers that want to see the internal risk state of a user account. This cache is",
3366
+ "read-only and serves no purpose except being populated by this ix.",
3367
+ "* remaining accounts expected in the same order as borrow, etc. I.e., for each balance the",
3368
+ "user has, pass bank and oracle: <bank1, oracle1, bank2, oracle2>"
3369
+ ],
3370
+ discriminator: [186, 52, 117, 97, 34, 74, 39, 253],
3371
+ accounts: [
3372
+ {
3373
+ name: "marginfi_account",
3374
+ writable: true
3375
+ }
3376
+ ],
3377
+ args: []
3378
+ },
3379
+ {
3380
+ name: "lending_account_repay",
3381
+ docs: [
3382
+ "(account authority, or any signer during receivership) Repay borrowed assets. Accrues",
3383
+ "interest, records repayment, and transfers tokens to the bank's liquidity vault."
3384
+ ],
3385
+ discriminator: [79, 209, 172, 177, 222, 51, 173, 151],
3386
+ accounts: [
3387
+ {
3388
+ name: "group",
3168
3389
  relations: ["marginfi_account", "bank"]
3169
3390
  },
3170
3391
  {
@@ -3173,226 +3394,12 @@ var marginfi_0_1_7_default = {
3173
3394
  },
3174
3395
  {
3175
3396
  name: "authority",
3176
- signer: true
3177
- },
3178
- {
3179
- name: "bank",
3180
- writable: true
3181
- },
3182
- {
3183
- name: "signer_token_account",
3184
- writable: true
3185
- },
3186
- {
3187
- name: "liquidity_vault",
3188
- writable: true,
3189
- relations: ["bank"]
3190
- },
3191
- {
3192
- name: "token_program"
3193
- }
3194
- ],
3195
- args: [
3196
- {
3197
- name: "amount",
3198
- type: "u64"
3199
- },
3200
- {
3201
- name: "deposit_up_to_limit",
3202
- type: {
3203
- option: "bool"
3204
- }
3205
- }
3206
- ]
3207
- },
3208
- {
3209
- name: "lending_account_end_flashloan",
3210
- docs: ["(account authority) End a flash loan and run the health check."],
3211
- discriminator: [105, 124, 201, 106, 153, 2, 8, 156],
3212
- accounts: [
3213
- {
3214
- name: "marginfi_account",
3215
- writable: true
3216
- },
3217
- {
3218
- name: "authority",
3219
- signer: true,
3220
- relations: ["marginfi_account"]
3221
- }
3222
- ],
3223
- args: []
3224
- },
3225
- {
3226
- name: "lending_account_liquidate",
3227
- docs: [
3228
- "(permissionless) Liquidate a lending account balance of an unhealthy marginfi account.",
3229
- "The liquidator takes on the liability and receives discounted collateral (2.5% liquidator",
3230
- "fee + 2.5% insurance fee).",
3231
- "* `asset_amount` - amount of collateral to liquidate",
3232
- "* `liquidatee_accounts` - number of remaining accounts for the liquidatee",
3233
- "* `liquidator_accounts` - number of remaining accounts for the liquidator"
3234
- ],
3235
- discriminator: [214, 169, 151, 213, 251, 167, 86, 219],
3236
- accounts: [
3237
- {
3238
- name: "group",
3239
- relations: [
3240
- "asset_bank",
3241
- "liab_bank",
3242
- "liquidator_marginfi_account",
3243
- "liquidatee_marginfi_account"
3244
- ]
3245
- },
3246
- {
3247
- name: "asset_bank",
3248
- writable: true
3249
- },
3250
- {
3251
- name: "liab_bank",
3252
- writable: true
3253
- },
3254
- {
3255
- name: "liquidator_marginfi_account",
3256
- writable: true
3257
- },
3258
- {
3259
- name: "authority",
3260
- signer: true
3261
- },
3262
- {
3263
- name: "liquidatee_marginfi_account",
3264
- writable: true
3265
- },
3266
- {
3267
- name: "bank_liquidity_vault_authority",
3268
- pda: {
3269
- seeds: [
3270
- {
3271
- kind: "const",
3272
- value: [
3273
- 108,
3274
- 105,
3275
- 113,
3276
- 117,
3277
- 105,
3278
- 100,
3279
- 105,
3280
- 116,
3281
- 121,
3282
- 95,
3283
- 118,
3284
- 97,
3285
- 117,
3286
- 108,
3287
- 116,
3288
- 95,
3289
- 97,
3290
- 117,
3291
- 116,
3292
- 104
3293
- ]
3294
- },
3295
- {
3296
- kind: "account",
3297
- path: "liab_bank"
3298
- }
3299
- ]
3300
- }
3301
- },
3302
- {
3303
- name: "bank_liquidity_vault",
3304
- writable: true,
3305
- pda: {
3306
- seeds: [
3307
- {
3308
- kind: "const",
3309
- value: [108, 105, 113, 117, 105, 100, 105, 116, 121, 95, 118, 97, 117, 108, 116]
3310
- },
3311
- {
3312
- kind: "account",
3313
- path: "liab_bank"
3314
- }
3315
- ]
3316
- }
3317
- },
3318
- {
3319
- name: "bank_insurance_vault",
3320
- writable: true,
3321
- pda: {
3322
- seeds: [
3323
- {
3324
- kind: "const",
3325
- value: [105, 110, 115, 117, 114, 97, 110, 99, 101, 95, 118, 97, 117, 108, 116]
3326
- },
3327
- {
3328
- kind: "account",
3329
- path: "liab_bank"
3330
- }
3331
- ]
3332
- }
3333
- },
3334
- {
3335
- name: "token_program"
3336
- }
3337
- ],
3338
- args: [
3339
- {
3340
- name: "asset_amount",
3341
- type: "u64"
3342
- },
3343
- {
3344
- name: "liquidatee_accounts",
3345
- type: "u8"
3346
- },
3347
- {
3348
- name: "liquidator_accounts",
3349
- type: "u8"
3350
- }
3351
- ]
3352
- },
3353
- {
3354
- name: "lending_account_pulse_health",
3355
- docs: [
3356
- "(Permissionless) Refresh the internal risk engine health cache. Useful for liquidators and",
3357
- "other consumers that want to see the internal risk state of a user account. This cache is",
3358
- "read-only and serves no purpose except being populated by this ix.",
3359
- "* remaining accounts expected in the same order as borrow, etc. I.e., for each balance the",
3360
- "user has, pass bank and oracle: <bank1, oracle1, bank2, oracle2>"
3361
- ],
3362
- discriminator: [186, 52, 117, 97, 34, 74, 39, 253],
3363
- accounts: [
3364
- {
3365
- name: "marginfi_account",
3366
- writable: true
3367
- }
3368
- ],
3369
- args: []
3370
- },
3371
- {
3372
- name: "lending_account_repay",
3373
- docs: [
3374
- "(account authority, or any signer during receivership) Repay borrowed assets. Accrues",
3375
- "interest, records repayment, and transfers tokens to the bank's liquidity vault."
3376
- ],
3377
- discriminator: [79, 209, 172, 177, 222, 51, 173, 151],
3378
- accounts: [
3379
- {
3380
- name: "group",
3381
- writable: true,
3382
- relations: ["marginfi_account", "bank"]
3383
- },
3384
- {
3385
- name: "marginfi_account",
3386
- writable: true
3387
- },
3388
- {
3389
- name: "authority",
3390
- docs: [
3391
- "Must be marginfi_account's authority, unless in liquidation/deleverage receivership or order execution",
3392
- "",
3393
- "Note: during receivership and order execution, there are no signer checks whatsoever: any key can repay as",
3394
- "long as the invariants checked at the end of execution are met."
3395
- ],
3397
+ docs: [
3398
+ "Must be marginfi_account's authority, unless in liquidation/deleverage receivership or order execution",
3399
+ "",
3400
+ "Note: during receivership and order execution, there are no signer checks whatsoever: any key can repay as",
3401
+ "long as the invariants checked at the end of execution are met."
3402
+ ],
3396
3403
  signer: true
3397
3404
  },
3398
3405
  {
@@ -3425,24 +3432,6 @@ var marginfi_0_1_7_default = {
3425
3432
  }
3426
3433
  ]
3427
3434
  },
3428
- {
3429
- name: "lending_account_settle_emissions",
3430
- docs: [
3431
- "(permissionless) Settle unclaimed emissions into a user's balance without withdrawing."
3432
- ],
3433
- discriminator: [161, 58, 136, 174, 242, 223, 156, 176],
3434
- accounts: [
3435
- {
3436
- name: "marginfi_account",
3437
- writable: true
3438
- },
3439
- {
3440
- name: "bank",
3441
- writable: true
3442
- }
3443
- ],
3444
- args: []
3445
- },
3446
3435
  {
3447
3436
  name: "lending_account_start_flashloan",
3448
3437
  docs: [
@@ -3483,7 +3472,6 @@ var marginfi_0_1_7_default = {
3483
3472
  accounts: [
3484
3473
  {
3485
3474
  name: "group",
3486
- writable: true,
3487
3475
  relations: ["marginfi_account", "bank"]
3488
3476
  },
3489
3477
  {
@@ -3566,253 +3554,6 @@ var marginfi_0_1_7_default = {
3566
3554
  }
3567
3555
  ]
3568
3556
  },
3569
- {
3570
- name: "lending_account_withdraw_emissions",
3571
- docs: [
3572
- "(account authority) Settle and withdraw emissions rewards to a destination token account."
3573
- ],
3574
- discriminator: [234, 22, 84, 214, 118, 176, 140, 170],
3575
- accounts: [
3576
- {
3577
- name: "group",
3578
- relations: ["marginfi_account", "bank"]
3579
- },
3580
- {
3581
- name: "marginfi_account",
3582
- writable: true
3583
- },
3584
- {
3585
- name: "authority",
3586
- signer: true
3587
- },
3588
- {
3589
- name: "bank",
3590
- writable: true
3591
- },
3592
- {
3593
- name: "emissions_mint",
3594
- relations: ["bank"]
3595
- },
3596
- {
3597
- name: "emissions_auth",
3598
- pda: {
3599
- seeds: [
3600
- {
3601
- kind: "const",
3602
- value: [
3603
- 101,
3604
- 109,
3605
- 105,
3606
- 115,
3607
- 115,
3608
- 105,
3609
- 111,
3610
- 110,
3611
- 115,
3612
- 95,
3613
- 97,
3614
- 117,
3615
- 116,
3616
- 104,
3617
- 95,
3618
- 115,
3619
- 101,
3620
- 101,
3621
- 100
3622
- ]
3623
- },
3624
- {
3625
- kind: "account",
3626
- path: "bank"
3627
- },
3628
- {
3629
- kind: "account",
3630
- path: "emissions_mint"
3631
- }
3632
- ]
3633
- }
3634
- },
3635
- {
3636
- name: "emissions_vault",
3637
- writable: true,
3638
- pda: {
3639
- seeds: [
3640
- {
3641
- kind: "const",
3642
- value: [
3643
- 101,
3644
- 109,
3645
- 105,
3646
- 115,
3647
- 115,
3648
- 105,
3649
- 111,
3650
- 110,
3651
- 115,
3652
- 95,
3653
- 116,
3654
- 111,
3655
- 107,
3656
- 101,
3657
- 110,
3658
- 95,
3659
- 97,
3660
- 99,
3661
- 99,
3662
- 111,
3663
- 117,
3664
- 110,
3665
- 116,
3666
- 95,
3667
- 115,
3668
- 101,
3669
- 101,
3670
- 100
3671
- ]
3672
- },
3673
- {
3674
- kind: "account",
3675
- path: "bank"
3676
- },
3677
- {
3678
- kind: "account",
3679
- path: "emissions_mint"
3680
- }
3681
- ]
3682
- }
3683
- },
3684
- {
3685
- name: "destination_account",
3686
- writable: true
3687
- },
3688
- {
3689
- name: "token_program"
3690
- }
3691
- ],
3692
- args: []
3693
- },
3694
- {
3695
- name: "lending_account_withdraw_emissions_permissionless",
3696
- docs: [
3697
- "(permissionless) Withdraw emissions to the user's pre-configured emissions destination ATA."
3698
- ],
3699
- discriminator: [4, 174, 124, 203, 44, 49, 145, 150],
3700
- accounts: [
3701
- {
3702
- name: "group",
3703
- relations: ["marginfi_account", "bank"]
3704
- },
3705
- {
3706
- name: "marginfi_account",
3707
- writable: true
3708
- },
3709
- {
3710
- name: "bank",
3711
- writable: true
3712
- },
3713
- {
3714
- name: "emissions_mint",
3715
- relations: ["bank"]
3716
- },
3717
- {
3718
- name: "emissions_auth",
3719
- pda: {
3720
- seeds: [
3721
- {
3722
- kind: "const",
3723
- value: [
3724
- 101,
3725
- 109,
3726
- 105,
3727
- 115,
3728
- 115,
3729
- 105,
3730
- 111,
3731
- 110,
3732
- 115,
3733
- 95,
3734
- 97,
3735
- 117,
3736
- 116,
3737
- 104,
3738
- 95,
3739
- 115,
3740
- 101,
3741
- 101,
3742
- 100
3743
- ]
3744
- },
3745
- {
3746
- kind: "account",
3747
- path: "bank"
3748
- },
3749
- {
3750
- kind: "account",
3751
- path: "emissions_mint"
3752
- }
3753
- ]
3754
- }
3755
- },
3756
- {
3757
- name: "emissions_vault",
3758
- writable: true,
3759
- pda: {
3760
- seeds: [
3761
- {
3762
- kind: "const",
3763
- value: [
3764
- 101,
3765
- 109,
3766
- 105,
3767
- 115,
3768
- 115,
3769
- 105,
3770
- 111,
3771
- 110,
3772
- 115,
3773
- 95,
3774
- 116,
3775
- 111,
3776
- 107,
3777
- 101,
3778
- 110,
3779
- 95,
3780
- 97,
3781
- 99,
3782
- 99,
3783
- 111,
3784
- 117,
3785
- 110,
3786
- 116,
3787
- 95,
3788
- 115,
3789
- 101,
3790
- 101,
3791
- 100
3792
- ]
3793
- },
3794
- {
3795
- kind: "account",
3796
- path: "bank"
3797
- },
3798
- {
3799
- kind: "account",
3800
- path: "emissions_mint"
3801
- }
3802
- ]
3803
- }
3804
- },
3805
- {
3806
- name: "destination_account",
3807
- docs: ["registered on `marginfi_account`"],
3808
- writable: true
3809
- },
3810
- {
3811
- name: "token_program"
3812
- }
3813
- ],
3814
- args: []
3815
- },
3816
3557
  {
3817
3558
  name: "lending_pool_accrue_bank_interest",
3818
3559
  docs: [
@@ -6214,7 +5955,6 @@ var marginfi_0_1_7_default = {
6214
5955
  accounts: [
6215
5956
  {
6216
5957
  name: "group",
6217
- writable: true,
6218
5958
  relations: ["bank"]
6219
5959
  },
6220
5960
  {
@@ -6225,50 +5965,17 @@ var marginfi_0_1_7_default = {
6225
5965
  args: []
6226
5966
  },
6227
5967
  {
6228
- name: "lending_pool_set_fixed_oracle_price",
6229
- docs: ["(admin only)"],
6230
- discriminator: [28, 126, 127, 127, 60, 37, 211, 125],
6231
- accounts: [
6232
- {
6233
- name: "group",
6234
- relations: ["bank"]
6235
- },
6236
- {
6237
- name: "admin",
6238
- signer: true,
6239
- relations: ["group"]
6240
- },
6241
- {
6242
- name: "bank",
6243
- writable: true
6244
- }
5968
+ name: "lending_pool_reclaim_emissions_vault",
5969
+ docs: [
5970
+ "(permissionless) Reclaim all remaining tokens from the emissions vault",
5971
+ "to the global fee wallet ATA, and disable emissions on the bank."
6245
5972
  ],
6246
- args: [
6247
- {
6248
- name: "price",
6249
- type: {
6250
- defined: {
6251
- name: "WrappedI80F48"
6252
- }
6253
- }
6254
- }
6255
- ]
6256
- },
6257
- {
6258
- name: "lending_pool_setup_emissions",
6259
- docs: ["(delegate_emissions_admin only)"],
6260
- discriminator: [206, 97, 120, 172, 113, 204, 169, 70],
5973
+ discriminator: [206, 67, 186, 225, 41, 30, 95, 216],
6261
5974
  accounts: [
6262
5975
  {
6263
5976
  name: "group",
6264
5977
  relations: ["bank"]
6265
5978
  },
6266
- {
6267
- name: "delegate_emissions_admin",
6268
- writable: true,
6269
- signer: true,
6270
- relations: ["group"]
6271
- },
6272
5979
  {
6273
5980
  name: "bank",
6274
5981
  writable: true
@@ -6316,106 +6023,7 @@ var marginfi_0_1_7_default = {
6316
6023
  }
6317
6024
  },
6318
6025
  {
6319
- name: "emissions_token_account",
6320
- writable: true,
6321
- pda: {
6322
- seeds: [
6323
- {
6324
- kind: "const",
6325
- value: [
6326
- 101,
6327
- 109,
6328
- 105,
6329
- 115,
6330
- 115,
6331
- 105,
6332
- 111,
6333
- 110,
6334
- 115,
6335
- 95,
6336
- 116,
6337
- 111,
6338
- 107,
6339
- 101,
6340
- 110,
6341
- 95,
6342
- 97,
6343
- 99,
6344
- 99,
6345
- 111,
6346
- 117,
6347
- 110,
6348
- 116,
6349
- 95,
6350
- 115,
6351
- 101,
6352
- 101,
6353
- 100
6354
- ]
6355
- },
6356
- {
6357
- kind: "account",
6358
- path: "bank"
6359
- },
6360
- {
6361
- kind: "account",
6362
- path: "emissions_mint"
6363
- }
6364
- ]
6365
- }
6366
- },
6367
- {
6368
- name: "emissions_funding_account",
6369
- docs: ["NOTE: This is a TokenAccount, spl transfer will validate it.", ""],
6370
- writable: true
6371
- },
6372
- {
6373
- name: "token_program"
6374
- },
6375
- {
6376
- name: "system_program",
6377
- address: "11111111111111111111111111111111"
6378
- }
6379
- ],
6380
- args: [
6381
- {
6382
- name: "flags",
6383
- type: "u64"
6384
- },
6385
- {
6386
- name: "rate",
6387
- type: "u64"
6388
- },
6389
- {
6390
- name: "total_emissions",
6391
- type: "u64"
6392
- }
6393
- ]
6394
- },
6395
- {
6396
- name: "lending_pool_update_emissions_parameters",
6397
- docs: ["(delegate_emissions_admin only)"],
6398
- discriminator: [55, 213, 224, 168, 153, 53, 197, 40],
6399
- accounts: [
6400
- {
6401
- name: "group",
6402
- relations: ["bank"]
6403
- },
6404
- {
6405
- name: "delegate_emissions_admin",
6406
- writable: true,
6407
- signer: true,
6408
- relations: ["group"]
6409
- },
6410
- {
6411
- name: "bank",
6412
- writable: true
6413
- },
6414
- {
6415
- name: "emissions_mint"
6416
- },
6417
- {
6418
- name: "emissions_token_account",
6026
+ name: "emissions_vault",
6419
6027
  writable: true,
6420
6028
  pda: {
6421
6029
  seeds: [
@@ -6464,30 +6072,53 @@ var marginfi_0_1_7_default = {
6464
6072
  }
6465
6073
  },
6466
6074
  {
6467
- name: "emissions_funding_account",
6075
+ name: "fee_state",
6076
+ pda: {
6077
+ seeds: [
6078
+ {
6079
+ kind: "const",
6080
+ value: [102, 101, 101, 115, 116, 97, 116, 101]
6081
+ }
6082
+ ]
6083
+ }
6084
+ },
6085
+ {
6086
+ name: "destination_account",
6087
+ docs: ["emissions mint (validated in handler)."],
6468
6088
  writable: true
6469
6089
  },
6470
6090
  {
6471
6091
  name: "token_program"
6472
6092
  }
6473
6093
  ],
6474
- args: [
6094
+ args: []
6095
+ },
6096
+ {
6097
+ name: "lending_pool_set_fixed_oracle_price",
6098
+ docs: ["(admin only)"],
6099
+ discriminator: [28, 126, 127, 127, 60, 37, 211, 125],
6100
+ accounts: [
6475
6101
  {
6476
- name: "emissions_flags",
6477
- type: {
6478
- option: "u64"
6479
- }
6102
+ name: "group",
6103
+ relations: ["bank"]
6480
6104
  },
6481
6105
  {
6482
- name: "emissions_rate",
6483
- type: {
6484
- option: "u64"
6485
- }
6106
+ name: "admin",
6107
+ signer: true,
6108
+ relations: ["group"]
6486
6109
  },
6487
6110
  {
6488
- name: "additional_emissions",
6111
+ name: "bank",
6112
+ writable: true
6113
+ }
6114
+ ],
6115
+ args: [
6116
+ {
6117
+ name: "price",
6489
6118
  type: {
6490
- option: "u64"
6119
+ defined: {
6120
+ name: "WrappedI80F48"
6121
+ }
6491
6122
  }
6492
6123
  }
6493
6124
  ]
@@ -6997,7 +6628,7 @@ var marginfi_0_1_7_default = {
6997
6628
  name: "marginfi_account_keeper_close_order",
6998
6629
  docs: [
6999
6630
  "(permissionless keeper) Close an existing Order after the user account was closed, or it no",
7000
- "longer as the associated positions, or the user has executed",
6631
+ "longer has the associated positions, or the user has executed",
7001
6632
  "`marginfi_account_set_keeper_close_flags`. Keeper keeps the rent."
7002
6633
  ],
7003
6634
  discriminator: [128, 114, 71, 46, 194, 71, 186, 106],
@@ -7223,8 +6854,7 @@ var marginfi_0_1_7_default = {
7223
6854
  {
7224
6855
  name: "marginfi_account_update_emissions_destination_account",
7225
6856
  docs: [
7226
- "(account authority) Set the wallet whose canonical ATA will receive permissionless emissions",
7227
- "withdrawals."
6857
+ "(account authority) Set the wallet whose canonical ATA will receive off-chain emissions."
7228
6858
  ],
7229
6859
  discriminator: [73, 185, 162, 201, 111, 24, 116, 185],
7230
6860
  accounts: [
@@ -7234,12 +6864,11 @@ var marginfi_0_1_7_default = {
7234
6864
  },
7235
6865
  {
7236
6866
  name: "authority",
7237
- signer: true,
7238
- relations: ["marginfi_account"]
6867
+ signer: true
7239
6868
  },
7240
6869
  {
7241
6870
  name: "destination_account",
7242
- docs: ["User's earned emissions will be sent to the canonical ATA of this wallet.", ""]
6871
+ docs: ["the canonical ATA for each emissions mint."]
7243
6872
  }
7244
6873
  ],
7245
6874
  args: []
@@ -7288,6 +6917,12 @@ var marginfi_0_1_7_default = {
7288
6917
  option: "pubkey"
7289
6918
  }
7290
6919
  },
6920
+ {
6921
+ name: "new_flow_admin",
6922
+ type: {
6923
+ option: "pubkey"
6924
+ }
6925
+ },
7291
6926
  {
7292
6927
  name: "new_emissions_admin",
7293
6928
  type: {
@@ -7536,7 +7171,6 @@ var marginfi_0_1_7_default = {
7536
7171
  accounts: [
7537
7172
  {
7538
7173
  name: "group",
7539
- writable: true,
7540
7174
  relations: ["marginfi_account", "bank"]
7541
7175
  },
7542
7176
  {
@@ -7858,7 +7492,6 @@ var marginfi_0_1_7_default = {
7858
7492
  accounts: [
7859
7493
  {
7860
7494
  name: "group",
7861
- writable: true,
7862
7495
  relations: ["marginfi_account", "bank"]
7863
7496
  },
7864
7497
  {
@@ -8198,6 +7831,91 @@ var marginfi_0_1_7_default = {
8198
7831
  }
8199
7832
  ]
8200
7833
  },
7834
+ {
7835
+ name: "update_deleverage_withdrawals",
7836
+ docs: [
7837
+ "(delegate_flow_admin only) Update the deleverage daily withdraw outflow with",
7838
+ "aggregated data. The delegate flow admin aggregates",
7839
+ "`DeleverageWithdrawFlowEvent` events off-chain and calls this instruction at intervals."
7840
+ ],
7841
+ discriminator: [56, 3, 181, 118, 27, 247, 207, 227],
7842
+ accounts: [
7843
+ {
7844
+ name: "marginfi_group",
7845
+ writable: true
7846
+ },
7847
+ {
7848
+ name: "delegate_flow_admin",
7849
+ signer: true,
7850
+ relations: ["marginfi_group"]
7851
+ }
7852
+ ],
7853
+ args: [
7854
+ {
7855
+ name: "outflow_usd",
7856
+ type: "u32"
7857
+ },
7858
+ {
7859
+ name: "update_seq",
7860
+ type: "u64"
7861
+ },
7862
+ {
7863
+ name: "event_start_slot",
7864
+ type: "u64"
7865
+ },
7866
+ {
7867
+ name: "event_end_slot",
7868
+ type: "u64"
7869
+ }
7870
+ ]
7871
+ },
7872
+ {
7873
+ name: "update_group_rate_limiter",
7874
+ docs: [
7875
+ "(delegate_flow_admin only) Update the group rate limiter with aggregated",
7876
+ "inflow/outflow. The delegate flow admin aggregates",
7877
+ "`RateLimitFlowEvent` events off-chain, converts to USD, and calls this instruction at",
7878
+ "intervals to update group rate limiter state."
7879
+ ],
7880
+ discriminator: [23, 78, 60, 139, 187, 44, 129, 37],
7881
+ accounts: [
7882
+ {
7883
+ name: "marginfi_group",
7884
+ writable: true
7885
+ },
7886
+ {
7887
+ name: "delegate_flow_admin",
7888
+ signer: true,
7889
+ relations: ["marginfi_group"]
7890
+ }
7891
+ ],
7892
+ args: [
7893
+ {
7894
+ name: "outflow_usd",
7895
+ type: {
7896
+ option: "u64"
7897
+ }
7898
+ },
7899
+ {
7900
+ name: "inflow_usd",
7901
+ type: {
7902
+ option: "u64"
7903
+ }
7904
+ },
7905
+ {
7906
+ name: "update_seq",
7907
+ type: "u64"
7908
+ },
7909
+ {
7910
+ name: "event_start_slot",
7911
+ type: "u64"
7912
+ },
7913
+ {
7914
+ name: "event_end_slot",
7915
+ type: "u64"
7916
+ }
7917
+ ]
7918
+ },
8201
7919
  {
8202
7920
  name: "write_bank_metadata",
8203
7921
  docs: [
@@ -8308,6 +8026,10 @@ var marginfi_0_1_7_default = {
8308
8026
  name: "DeleverageEvent",
8309
8027
  discriminator: [161, 8, 108, 204, 209, 198, 12, 30]
8310
8028
  },
8029
+ {
8030
+ name: "DeleverageWithdrawFlowEvent",
8031
+ discriminator: [109, 90, 139, 200, 10, 204, 84, 176]
8032
+ },
8311
8033
  {
8312
8034
  name: "EditStakedSettingsEvent",
8313
8035
  discriminator: [29, 58, 155, 191, 75, 220, 145, 206]
@@ -8404,6 +8126,10 @@ var marginfi_0_1_7_default = {
8404
8126
  name: "MarginfiGroupCreateEvent",
8405
8127
  discriminator: [233, 125, 61, 14, 98, 240, 136, 253]
8406
8128
  },
8129
+ {
8130
+ name: "RateLimitFlowEvent",
8131
+ discriminator: [229, 5, 73, 200, 0, 107, 105, 109]
8132
+ },
8407
8133
  {
8408
8134
  name: "SetKeeperCloseFlagsEvent",
8409
8135
  discriminator: [193, 230, 93, 128, 117, 87, 96, 21]
@@ -9010,6 +8736,66 @@ var marginfi_0_1_7_default = {
9010
8736
  name: "InvalidRateLimitPrice",
9011
8737
  msg: "Invalid rate limit price: pass oracle or pre-crank cache"
9012
8738
  },
8739
+ {
8740
+ code: 6120,
8741
+ name: "GroupRateLimiterUpdateEmpty",
8742
+ msg: "Group rate limiter admin update must include inflow and/or outflow"
8743
+ },
8744
+ {
8745
+ code: 6121,
8746
+ name: "GroupRateLimiterUpdateInvalidSlotRange",
8747
+ msg: "Group rate limiter admin update slot range is invalid"
8748
+ },
8749
+ {
8750
+ code: 6122,
8751
+ name: "GroupRateLimiterUpdateFutureSlot",
8752
+ msg: "Group rate limiter admin update cannot reference future slots"
8753
+ },
8754
+ {
8755
+ code: 6123,
8756
+ name: "GroupRateLimiterUpdateStale",
8757
+ msg: "Group rate limiter admin update is too stale"
8758
+ },
8759
+ {
8760
+ code: 6124,
8761
+ name: "GroupRateLimiterUpdateOutOfOrderSlot",
8762
+ msg: "Group rate limiter admin update slot progression is out of order"
8763
+ },
8764
+ {
8765
+ code: 6125,
8766
+ name: "GroupRateLimiterUpdateOutOfOrderSeq",
8767
+ msg: "Group rate limiter admin update sequence is out of order"
8768
+ },
8769
+ {
8770
+ code: 6126,
8771
+ name: "DeleverageWithdrawalUpdateEmpty",
8772
+ msg: "Deleverage withdrawal admin update must include outflow"
8773
+ },
8774
+ {
8775
+ code: 6127,
8776
+ name: "DeleverageWithdrawalUpdateInvalidSlotRange",
8777
+ msg: "Deleverage withdrawal admin update slot range is invalid"
8778
+ },
8779
+ {
8780
+ code: 6128,
8781
+ name: "DeleverageWithdrawalUpdateFutureSlot",
8782
+ msg: "Deleverage withdrawal admin update cannot reference future slots"
8783
+ },
8784
+ {
8785
+ code: 6129,
8786
+ name: "DeleverageWithdrawalUpdateStale",
8787
+ msg: "Deleverage withdrawal admin update is too stale"
8788
+ },
8789
+ {
8790
+ code: 6130,
8791
+ name: "DeleverageWithdrawalUpdateOutOfOrderSlot",
8792
+ msg: "Deleverage withdrawal admin update slot progression is out of order"
8793
+ },
8794
+ {
8795
+ code: 6131,
8796
+ name: "DeleverageWithdrawalUpdateOutOfOrderSeq",
8797
+ msg: "Deleverage withdrawal admin update sequence is out of order"
8798
+ },
9013
8799
  {
9014
8800
  code: 6200,
9015
8801
  name: "WrongAssetTagForStandardInstructions",
@@ -9815,7 +9601,7 @@ var marginfi_0_1_7_default = {
9815
9601
  {
9816
9602
  name: "_pad_0",
9817
9603
  type: {
9818
- array: ["u8", 8]
9604
+ array: ["u8", 16]
9819
9605
  }
9820
9606
  },
9821
9607
  {
@@ -9933,8 +9719,10 @@ var marginfi_0_1_7_default = {
9933
9719
  "Liquidate as an additional safeguard, if the liquidation prices stored here were to be",
9934
9720
  "edited between start and end, it would completely break the risk engine. End validates that",
9935
9721
  "the lock is set, panics if not, and removes it - which prevents footguns if the cache was",
9936
- "e.g. accidently set to default. The lock is also removed when a Balance is closed with",
9937
- "repay_all or withdraw_all, since those Balances can be omitted from the risk check at End."
9722
+ "e.g. accidently set to default. The lock is also removed when a Balance is closed via",
9723
+ "withdraw_all, repay_all, or close_balance, but only when the account has",
9724
+ "ACCOUNT_IN_RECEIVERSHIP set, so that operations on unrelated accounts sharing the same",
9725
+ "bank do not interfere with an in-progress liquidation."
9938
9726
  ],
9939
9727
  type: "u8"
9940
9728
  },
@@ -10577,16 +10365,6 @@ var marginfi_0_1_7_default = {
10577
10365
  name: "RateLimitWindow"
10578
10366
  }
10579
10367
  }
10580
- },
10581
- {
10582
- name: "untracked_inflow",
10583
- docs: [
10584
- "Native token inflows pending USD conversion for group rate limiter.",
10585
- "When deposits/repays occur without a valid oracle price, the amount is",
10586
- "recorded here and later applied to the group rate limiter when a valid",
10587
- "price becomes available (e.g., during pulse_bank_price_cache or outflow operations)."
10588
- ],
10589
- type: "i64"
10590
10368
  }
10591
10369
  ]
10592
10370
  }
@@ -10615,6 +10393,41 @@ var marginfi_0_1_7_default = {
10615
10393
  ]
10616
10394
  }
10617
10395
  },
10396
+ {
10397
+ name: "DeleverageWithdrawFlowEvent",
10398
+ docs: [
10399
+ "Emitted for deleverage-only withdraw outflows.",
10400
+ "The delegate flow admin aggregates these off-chain and",
10401
+ "updates the deleverage daily withdraws via `update_deleverage_withdrawals`."
10402
+ ],
10403
+ type: {
10404
+ kind: "struct",
10405
+ fields: [
10406
+ {
10407
+ name: "group",
10408
+ type: "pubkey"
10409
+ },
10410
+ {
10411
+ name: "bank",
10412
+ type: "pubkey"
10413
+ },
10414
+ {
10415
+ name: "mint",
10416
+ type: "pubkey"
10417
+ },
10418
+ {
10419
+ name: "outflow_usd",
10420
+ docs: ["Equity-denominated outflow value in USD, rounded to integer."],
10421
+ type: "u32"
10422
+ },
10423
+ {
10424
+ name: "current_timestamp",
10425
+ docs: ["Unix timestamp when the flow was recorded"],
10426
+ type: "i64"
10427
+ }
10428
+ ]
10429
+ }
10430
+ },
10618
10431
  {
10619
10432
  name: "DriftConfigCompact",
10620
10433
  docs: [
@@ -11923,7 +11736,7 @@ var marginfi_0_1_7_default = {
11923
11736
  "(i.e. no implicit padding). This is important because `Pubkey` has alignment=1 while `u64`",
11924
11737
  "has alignment=8; using plain `repr(C)` would insert padding before the first `u64`."
11925
11738
  ],
11926
- serialization: "bytemuckunsafe",
11739
+ serialization: "bytemuck",
11927
11740
  repr: {
11928
11741
  kind: "c",
11929
11742
  packed: true
@@ -12770,12 +12583,7 @@ var marginfi_0_1_7_default = {
12770
12583
  },
12771
12584
  {
12772
12585
  name: "emissions_destination_account",
12773
- docs: [
12774
- "Set with `update_emissions_destination_account`. Emissions rewards can be withdrawn to the",
12775
- "canonical ATA of this wallet without the user's input (withdraw_emissions_permissionless).",
12776
- "If pubkey default, the user has not opted into this feature, and must claim emissions",
12777
- "manually (withdraw_emissions)."
12778
- ],
12586
+ docs: ["Wallet whose canonical ATA receives off-chain emissions distributions."],
12779
12587
  type: "pubkey"
12780
12588
  },
12781
12589
  {
@@ -13048,7 +12856,7 @@ var marginfi_0_1_7_default = {
13048
12856
  name: "emode_admin",
13049
12857
  docs: [
13050
12858
  "This admin can configure collateral ratios above (but not below) the collateral ratio of",
13051
- "certain banks , e.g. allow SOL to count as 90% collateral when borrowing an LST instead of",
12859
+ "certain banks, e.g. allow SOL to count as 90% collateral when borrowing an LST instead of",
13052
12860
  "the default rate."
13053
12861
  ],
13054
12862
  type: "pubkey"
@@ -13149,6 +12957,40 @@ var marginfi_0_1_7_default = {
13149
12957
  }
13150
12958
  }
13151
12959
  },
12960
+ {
12961
+ name: "rate_limiter_last_admin_update_slot",
12962
+ docs: ["Last slot covered by an admin group rate limiter aggregation update."],
12963
+ type: "u64"
12964
+ },
12965
+ {
12966
+ name: "rate_limiter_last_admin_update_seq",
12967
+ docs: [
12968
+ "Monotonic sequence number for admin group rate limiter updates.",
12969
+ "This is used to enforce strict ordering and prevent duplicate/replayed batches",
12970
+ "when slot ranges overlap or multiple updates happen in the same slot."
12971
+ ],
12972
+ type: "u64"
12973
+ },
12974
+ {
12975
+ name: "deleverage_withdraw_last_admin_update_slot",
12976
+ docs: ["Last slot covered by an admin deleverage withdraw-limit aggregation update."],
12977
+ type: "u64"
12978
+ },
12979
+ {
12980
+ name: "deleverage_withdraw_last_admin_update_seq",
12981
+ docs: ["Monotonic sequence number for admin deleverage withdraw-limit updates."],
12982
+ type: "u64"
12983
+ },
12984
+ {
12985
+ name: "delegate_flow_admin",
12986
+ docs: [
12987
+ "Can modify flow-control status for the group, i.e. update the withdraw caches with flow",
12988
+ "information from banks. Typically this is a hot wallet that lives in e.g. some cron job. If",
12989
+ "compromised, flow control can be effectively disabled until the admin is restored, which",
12990
+ "does not itself compromise any funds, and is merely annoying."
12991
+ ],
12992
+ type: "pubkey"
12993
+ },
13152
12994
  {
13153
12995
  name: "_padding_0",
13154
12996
  type: {
@@ -13156,7 +12998,7 @@ var marginfi_0_1_7_default = {
13156
12998
  {
13157
12999
  array: ["u64", 2]
13158
13000
  },
13159
- 6
13001
+ 2
13160
13002
  ]
13161
13003
  }
13162
13004
  },
@@ -14267,6 +14109,50 @@ var marginfi_0_1_7_default = {
14267
14109
  ]
14268
14110
  }
14269
14111
  },
14112
+ {
14113
+ name: "RateLimitFlowEvent",
14114
+ docs: [
14115
+ "Emitted when a bank-level inflow or outflow is recorded.",
14116
+ "The delegate flow admin aggregates these off-chain and",
14117
+ "updates the group rate limiter via `update_group_rate_limiter`."
14118
+ ],
14119
+ type: {
14120
+ kind: "struct",
14121
+ fields: [
14122
+ {
14123
+ name: "group",
14124
+ type: "pubkey"
14125
+ },
14126
+ {
14127
+ name: "bank",
14128
+ type: "pubkey"
14129
+ },
14130
+ {
14131
+ name: "mint",
14132
+ type: "pubkey"
14133
+ },
14134
+ {
14135
+ name: "flow_direction",
14136
+ docs: ["0 = outflow (withdraw/borrow), 1 = inflow (deposit/repay)"],
14137
+ type: "u8"
14138
+ },
14139
+ {
14140
+ name: "native_amount",
14141
+ docs: ["Amount in native tokens"],
14142
+ type: "u64"
14143
+ },
14144
+ {
14145
+ name: "mint_decimals",
14146
+ type: "u8"
14147
+ },
14148
+ {
14149
+ name: "current_timestamp",
14150
+ docs: ["Unix timestamp when the flow was recorded"],
14151
+ type: "i64"
14152
+ }
14153
+ ]
14154
+ }
14155
+ },
14270
14156
  {
14271
14157
  name: "RateLimitWindow",
14272
14158
  docs: [
@@ -14989,7 +14875,7 @@ var marginfi_0_1_7_default = {
14989
14875
  };
14990
14876
 
14991
14877
  // src/idl/index.ts
14992
- var MARGINFI_IDL = marginfi_0_1_7_default;
14878
+ var MARGINFI_IDL = marginfi_0_1_8_default;
14993
14879
  function decodeInstruction(idl, encoded) {
14994
14880
  const coder = new anchor.BorshInstructionCoder(idl);
14995
14881
  return coder.decode(encoded, "base58");
@@ -15556,7 +15442,6 @@ async function makeKaminoWithdrawIx(mfProgram, accounts, args, remainingAccounts
15556
15442
  bank,
15557
15443
  destinationTokenAccount,
15558
15444
  lendingMarket,
15559
- reserveLiquidityMint,
15560
15445
  lendingMarketAuthority,
15561
15446
  reserveLiquiditySupply,
15562
15447
  reserveCollateralMint,
@@ -15571,7 +15456,6 @@ async function makeKaminoWithdrawIx(mfProgram, accounts, args, remainingAccounts
15571
15456
  bank,
15572
15457
  destinationTokenAccount,
15573
15458
  lendingMarket,
15574
- reserveLiquidityMint,
15575
15459
  lendingMarketAuthority,
15576
15460
  reserveLiquiditySupply,
15577
15461
  reserveCollateralMint,
@@ -15616,14 +15500,11 @@ function makeLendingAccountLiquidateIx(mfiProgram, accounts, args, remainingAcco
15616
15500
  tokenProgram
15617
15501
  }).accountsPartial(optionalAccounts).remainingAccounts(remainingAccounts).instruction();
15618
15502
  }
15619
- function makelendingAccountWithdrawEmissionIx(mfiProgram, accounts) {
15620
- const { marginfiAccount, destinationAccount, bank, tokenProgram, ...optionalAccounts } = accounts;
15621
- return mfiProgram.methods.lendingAccountWithdrawEmissions().accounts({
15622
- marginfiAccount,
15623
- destinationAccount,
15624
- bank,
15625
- tokenProgram
15626
- }).accountsPartial(optionalAccounts).instruction();
15503
+ function makeLendingAccountClearEmissionsIx(mfiProgram, accounts) {
15504
+ return mfiProgram.methods.lendingAccountClearEmissions().accounts({
15505
+ marginfiAccount: accounts.marginfiAccount,
15506
+ bank: accounts.bank
15507
+ }).instruction();
15627
15508
  }
15628
15509
  function makePoolConfigureBankIx(mfiProgram, accounts, args) {
15629
15510
  const { bank, ...optionalAccounts } = accounts;
@@ -15723,7 +15604,7 @@ var instructions = {
15723
15604
  makeInitMarginfiAccountIx,
15724
15605
  makeInitMarginfiAccountPdaIx,
15725
15606
  makeLendingAccountLiquidateIx,
15726
- makelendingAccountWithdrawEmissionIx,
15607
+ makeLendingAccountClearEmissionsIx,
15727
15608
  makePoolAddBankIx,
15728
15609
  makePoolConfigureBankIx,
15729
15610
  makeBeginFlashLoanIx,
@@ -16228,7 +16109,7 @@ function parseEmodeSettingsRaw(emodeSettingsRaw) {
16228
16109
  };
16229
16110
  return emodeSettings;
16230
16111
  }
16231
- function parseBankRaw(address, accountParsed, bankMetadata, mintData) {
16112
+ function parseBankRaw(address, accountParsed, bankMetadata) {
16232
16113
  const flags = accountParsed.flags.toNumber();
16233
16114
  const mint = accountParsed.mint;
16234
16115
  const mintDecimals = accountParsed.mintDecimals;
@@ -16327,8 +16208,6 @@ function parseBankRaw(address, accountParsed, bankMetadata, mintData) {
16327
16208
  borrowingPositionCount,
16328
16209
  emode,
16329
16210
  tokenSymbol,
16330
- mintRate: mintData?.mintRate ?? null,
16331
- mintPrice: mintData?.mintPrice ?? 0,
16332
16211
  kaminoIntegrationAccounts,
16333
16212
  driftIntegrationAccounts,
16334
16213
  solendIntegrationAccounts,
@@ -16369,9 +16248,6 @@ function dtoToBank(bankDto) {
16369
16248
  feesDestinationAccount: bankDto.feesDestinationAccount ? new web3_js.PublicKey(bankDto.feesDestinationAccount) : void 0,
16370
16249
  lendingPositionCount: bankDto.lendingPositionCount ? new BigNumber3__default.default(bankDto.lendingPositionCount) : void 0,
16371
16250
  borrowingPositionCount: bankDto.borrowingPositionCount ? new BigNumber3__default.default(bankDto.borrowingPositionCount) : void 0,
16372
- mintRate: null,
16373
- // TODO: move these out
16374
- mintPrice: 0,
16375
16251
  kaminoIntegrationAccounts: bankDto.kaminoIntegrationAccounts ? {
16376
16252
  kaminoReserve: new web3_js.PublicKey(bankDto.kaminoIntegrationAccounts.kaminoReserve),
16377
16253
  kaminoObligation: new web3_js.PublicKey(bankDto.kaminoIntegrationAccounts.kaminoObligation)
@@ -44156,7 +44032,7 @@ var SEED_RESERVE = "reserve";
44156
44032
  var SEED_RATE_MODEL = "rate_model";
44157
44033
  var SEED_USER_SUPPLY_POSITION = "user_supply_position";
44158
44034
  var SEED_LENDING_REWARDS_RATE_MODEL = "lending_rewards_rate_model";
44159
- function getAllDerivedJupLendAccounts(mint) {
44035
+ function getAllDerivedJupLendAccounts(mint, tokenProgram) {
44160
44036
  const [fTokenMint] = deriveJupLendFTokenMint(mint);
44161
44037
  const [lending] = deriveJupLendLending(mint, fTokenMint);
44162
44038
  const [liquidity] = deriveJupLendLiquidity();
@@ -44166,7 +44042,7 @@ function getAllDerivedJupLendAccounts(mint) {
44166
44042
  supplyTokenReservesLiquidity: deriveJupLendTokenReserve(mint)[0],
44167
44043
  lendingSupplyPositionOnLiquidity: deriveJupLendLiquiditySupplyPositionPda(mint, lending)[0],
44168
44044
  rateModel: deriveJupLendRateModel(mint)[0],
44169
- vault: deriveJupLendLiquidityVaultAta(mint, liquidity),
44045
+ vault: deriveJupLendLiquidityVaultAta(mint, liquidity, tokenProgram),
44170
44046
  liquidity,
44171
44047
  rewardsRateModel: deriveJupLendLendingRewardsRateModel(mint)[0]
44172
44048
  };
@@ -44613,7 +44489,7 @@ var DISCRIMINATORS = {
44613
44489
  LENDING_ACCOUNT_WITHDRAW: Buffer.from([36, 72, 74, 19, 210, 210, 192, 192]),
44614
44490
  LENDING_ACCOUNT_BORROW: Buffer.from([4, 126, 116, 53, 48, 5, 212, 31]),
44615
44491
  LENDING_ACCOUNT_LIQUIDATE: Buffer.from([214, 169, 151, 213, 251, 167, 86, 219]),
44616
- LENDING_ACCOUNT_WITHDRAW_EMISSIONS: Buffer.from([234, 22, 84, 214, 118, 176, 140, 170]),
44492
+ LENDING_ACCOUNT_CLEAR_EMISSIONS: Buffer.from([239, 4, 221, 98, 45, 167, 201, 244]),
44617
44493
  LENDING_POOL_ADD_BANK: Buffer.from([215, 68, 72, 78, 208, 218, 103, 182]),
44618
44494
  LENDING_POOL_CONFIGURE_BANK: Buffer.from([121, 173, 156, 40, 93, 148, 56, 237]),
44619
44495
  LENDING_ACCOUNT_START_FLASHLOAN: Buffer.from([14, 131, 33, 220, 81, 186, 180, 107]),
@@ -44700,7 +44576,7 @@ function makeWithdrawIx2(programId, accounts, args, remainingAccounts = []) {
44700
44576
  const [bankLiquidityVaultAuthority] = deriveBankLiquidityVaultAuthority(programId, accounts.bank);
44701
44577
  const [liquidityVault] = deriveBankLiquidityVault(programId, accounts.bank);
44702
44578
  const keys = [
44703
- { pubkey: accounts.group, isSigner: false, isWritable: true },
44579
+ { pubkey: accounts.group, isSigner: false, isWritable: false },
44704
44580
  { pubkey: accounts.marginfiAccount, isSigner: false, isWritable: true },
44705
44581
  { pubkey: accounts.authority, isSigner: true, isWritable: false },
44706
44582
  { pubkey: accounts.bank, isSigner: false, isWritable: true },
@@ -44856,7 +44732,7 @@ function makeKaminoWithdrawIx2(programId, accounts, args, remainingAccounts = []
44856
44732
  const liquidityVaultAuthority = deriveBankLiquidityVaultAuthority(programId, accounts.bank)[0];
44857
44733
  const liquidityVault = deriveBankLiquidityVault(programId, accounts.bank)[0];
44858
44734
  const keys = [
44859
- { pubkey: accounts.group, isSigner: false, isWritable: true },
44735
+ { pubkey: accounts.group, isSigner: false, isWritable: false },
44860
44736
  { pubkey: accounts.marginfiAccount, isSigner: false, isWritable: true },
44861
44737
  { pubkey: accounts.authority, isSigner: true, isWritable: false },
44862
44738
  { pubkey: accounts.bank, isSigner: false, isWritable: true },
@@ -44876,7 +44752,7 @@ function makeKaminoWithdrawIx2(programId, accounts, args, remainingAccounts = []
44876
44752
  },
44877
44753
  { pubkey: accounts.integrationAcc1, isSigner: false, isWritable: true },
44878
44754
  {
44879
- pubkey: accounts.reserveLiquidityMint,
44755
+ pubkey: accounts.mint,
44880
44756
  isSigner: false,
44881
44757
  isWritable: true
44882
44758
  },
@@ -44963,22 +44839,15 @@ function makeLendingAccountLiquidateIx2(programId, accounts, args, remainingAcco
44963
44839
  ]);
44964
44840
  return new web3_js.TransactionInstruction({ keys, programId, data });
44965
44841
  }
44966
- function makelendingAccountWithdrawEmissionIx2(programId, accounts) {
44842
+ function makeLendingAccountClearEmissionsIx2(programId, accounts) {
44967
44843
  const keys = [
44968
- { pubkey: accounts.group, isSigner: false, isWritable: false },
44969
44844
  { pubkey: accounts.marginfiAccount, isSigner: false, isWritable: true },
44970
- { pubkey: accounts.authority, isSigner: true, isWritable: false },
44971
- { pubkey: accounts.bank, isSigner: false, isWritable: true },
44972
- { pubkey: accounts.emissionsMint, isSigner: false, isWritable: false },
44973
- { pubkey: accounts.emissionsAuth, isSigner: false, isWritable: false },
44974
- { pubkey: accounts.emissionsVault, isSigner: false, isWritable: true },
44975
- { pubkey: accounts.destinationAccount, isSigner: false, isWritable: true },
44976
- { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }
44845
+ { pubkey: accounts.bank, isSigner: false, isWritable: false }
44977
44846
  ];
44978
44847
  return new web3_js.TransactionInstruction({
44979
44848
  keys,
44980
44849
  programId,
44981
- data: DISCRIMINATORS.LENDING_ACCOUNT_WITHDRAW_EMISSIONS
44850
+ data: DISCRIMINATORS.LENDING_ACCOUNT_CLEAR_EMISSIONS
44982
44851
  });
44983
44852
  }
44984
44853
  function makeCloseAccountIx2(programId, accounts) {
@@ -45141,7 +45010,7 @@ function makeDriftWithdrawIx2(programId, accounts, args, remainingAccounts = [])
45141
45010
  const DRIFT_PROGRAM_ID2 = new web3_js.PublicKey("dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH");
45142
45011
  const SYSTEM_PROGRAM_ID2 = new web3_js.PublicKey("11111111111111111111111111111111");
45143
45012
  const keys = [
45144
- { pubkey: accounts.group, isSigner: false, isWritable: true },
45013
+ { pubkey: accounts.group, isSigner: false, isWritable: false },
45145
45014
  { pubkey: accounts.marginfiAccount, isSigner: false, isWritable: true },
45146
45015
  { pubkey: accounts.authority, isSigner: true, isWritable: false },
45147
45016
  { pubkey: accounts.bank, isSigner: false, isWritable: true }
@@ -45276,7 +45145,7 @@ var syncInstructions = {
45276
45145
  makeKaminoWithdrawIx: makeKaminoWithdrawIx2,
45277
45146
  makeBorrowIx: makeBorrowIx2,
45278
45147
  makeLendingAccountLiquidateIx: makeLendingAccountLiquidateIx2,
45279
- makelendingAccountWithdrawEmissionIx: makelendingAccountWithdrawEmissionIx2,
45148
+ makeLendingAccountClearEmissionsIx: makeLendingAccountClearEmissionsIx2,
45280
45149
  makePoolAddBankIx: makePoolAddBankIx2,
45281
45150
  makePoolConfigureBankIx: makePoolConfigureBankIx2,
45282
45151
  makeBeginFlashLoanIx: makeBeginFlashLoanIx2,
@@ -45568,7 +45437,7 @@ async function makeKaminoWithdrawIx3({
45568
45437
  lendingMarket,
45569
45438
  lendingMarketAuthority,
45570
45439
  integrationAcc1: bank.kaminoIntegrationAccounts.kaminoReserve,
45571
- reserveLiquidityMint: bank.mint,
45440
+ mint: bank.mint,
45572
45441
  reserveLiquiditySupply,
45573
45442
  reserveCollateralMint,
45574
45443
  reserveSourceCollateral: reserveDestinationDepositCollateral,
@@ -45592,7 +45461,7 @@ async function makeKaminoWithdrawIx3({
45592
45461
  bank: bank.address,
45593
45462
  destinationTokenAccount: userTokenAtaPk,
45594
45463
  lendingMarket,
45595
- reserveLiquidityMint: bank.mint,
45464
+ mint: bank.mint,
45596
45465
  lendingMarketAuthority,
45597
45466
  reserveLiquiditySupply,
45598
45467
  reserveCollateralMint,
@@ -45913,7 +45782,7 @@ async function makeJuplendWithdrawIx2({
45913
45782
  lendingAdmin,
45914
45783
  rateModel,
45915
45784
  vault,
45916
- liquidity} = getAllDerivedJupLendAccounts(bank.mint);
45785
+ liquidity} = getAllDerivedJupLendAccounts(bank.mint, tokenProgram);
45917
45786
  if (opts.observationBanksOverride) {
45918
45787
  remainingAccounts.push(...opts.observationBanksOverride);
45919
45788
  } else {
@@ -46536,7 +46405,7 @@ async function makeJuplendDepositIx2({
46536
46405
  if (!bank.jupLendIntegrationAccounts) {
46537
46406
  throw new Error("Bank has no JupLend integration accounts");
46538
46407
  }
46539
- const derivedAccounts = getAllDerivedJupLendAccounts(bank.mint);
46408
+ const derivedAccounts = getAllDerivedJupLendAccounts(bank.mint, tokenProgram);
46540
46409
  const {
46541
46410
  fTokenMint,
46542
46411
  lendingAdmin,
@@ -47485,37 +47354,14 @@ async function buildRepayWithCollatFlashloanTx({
47485
47354
  }
47486
47355
 
47487
47356
  // src/services/account/actions/emissions.ts
47488
- async function makeWithdrawEmissionsIx(program, marginfiAccount, banks, mintDatas, bankAddress) {
47357
+ async function makeClearEmissionsIx(program, marginfiAccount, banks, bankAddress) {
47489
47358
  const bank = banks.get(bankAddress.toBase58());
47490
47359
  if (!bank) throw Error(`Bank ${bankAddress.toBase58()} not found`);
47491
- const mintData = mintDatas.get(bankAddress.toBase58());
47492
- if (!mintData) throw Error(`Mint data for bank ${bankAddress.toBase58()} not found`);
47493
- if (!mintData.emissionTokenProgram) {
47494
- throw Error(`Emission token program not found for bank ${bankAddress.toBase58()}`);
47495
- }
47496
- let ixs = [];
47497
- const userAta = getAssociatedTokenAddressSync(
47498
- bank.emissionsMint,
47499
- marginfiAccount.authority,
47500
- true,
47501
- mintData.emissionTokenProgram
47502
- );
47503
- const createAtaIdempotentIx = createAssociatedTokenAccountIdempotentInstruction(
47504
- marginfiAccount.authority,
47505
- userAta,
47506
- marginfiAccount.authority,
47507
- bank.emissionsMint,
47508
- mintData.emissionTokenProgram
47509
- );
47510
- ixs.push(createAtaIdempotentIx);
47511
- const withdrawEmissionsIx = await instructions_default.makelendingAccountWithdrawEmissionIx(program, {
47360
+ const clearEmissionsIx = await instructions_default.makeLendingAccountClearEmissionsIx(program, {
47512
47361
  marginfiAccount: marginfiAccount.address,
47513
- destinationAccount: userAta,
47514
- bank: bank.address,
47515
- tokenProgram: mintData.emissionTokenProgram
47362
+ bank: bank.address
47516
47363
  });
47517
- ixs.push(withdrawEmissionsIx);
47518
- return { instructions: ixs, keys: [] };
47364
+ return { instructions: [clearEmissionsIx], keys: [] };
47519
47365
  }
47520
47366
  async function makeSwapCollateralTx(params) {
47521
47367
  const {
@@ -51801,13 +51647,11 @@ async function fetchBankIntegrationMetadata(options) {
51801
51647
  return bankIntegrationMap;
51802
51648
  }
51803
51649
  var Bank = class _Bank {
51804
- constructor(address, mint, mintDecimals, group, mintRate, mintPrice, assetShareValue, liabilityShareValue, liquidityVault, liquidityVaultBump, liquidityVaultAuthorityBump, insuranceVault, insuranceVaultBump, insuranceVaultAuthorityBump, collectedInsuranceFeesOutstanding, feeVault, feeVaultBump, feeVaultAuthorityBump, collectedGroupFeesOutstanding, lastUpdate, config, totalAssetShares, totalLiabilityShares, emissionsActiveBorrowing, emissionsActiveLending, emissionsRate, emissionsMint, emissionsRemaining, oracleKey, emode, kaminoIntegrationAccounts, driftIntegrationAccounts, solendIntegrationAccounts, jupLendIntegrationAccounts, feesDestinationAccount, lendingPositionCount, borrowingPositionCount, tokenSymbol) {
51650
+ constructor(address, mint, mintDecimals, group, assetShareValue, liabilityShareValue, liquidityVault, liquidityVaultBump, liquidityVaultAuthorityBump, insuranceVault, insuranceVaultBump, insuranceVaultAuthorityBump, collectedInsuranceFeesOutstanding, feeVault, feeVaultBump, feeVaultAuthorityBump, collectedGroupFeesOutstanding, lastUpdate, config, totalAssetShares, totalLiabilityShares, emissionsActiveBorrowing, emissionsActiveLending, emissionsRate, emissionsMint, emissionsRemaining, oracleKey, emode, kaminoIntegrationAccounts, driftIntegrationAccounts, solendIntegrationAccounts, jupLendIntegrationAccounts, feesDestinationAccount, lendingPositionCount, borrowingPositionCount, tokenSymbol) {
51805
51651
  this.address = address;
51806
51652
  this.mint = mint;
51807
51653
  this.mintDecimals = mintDecimals;
51808
51654
  this.group = group;
51809
- this.mintRate = mintRate;
51810
- this.mintPrice = mintPrice;
51811
51655
  this.assetShareValue = assetShareValue;
51812
51656
  this.liabilityShareValue = liabilityShareValue;
51813
51657
  this.liquidityVault = liquidityVault;
@@ -51877,8 +51721,6 @@ var Bank = class _Bank {
51877
51721
  bankType.mint,
51878
51722
  bankType.mintDecimals,
51879
51723
  bankType.group,
51880
- bankType.mintRate,
51881
- bankType.mintPrice,
51882
51724
  bankType.assetShareValue,
51883
51725
  bankType.liabilityShareValue,
51884
51726
  bankType.liquidityVault,
@@ -51920,8 +51762,6 @@ var Bank = class _Bank {
51920
51762
  props.mint,
51921
51763
  props.mintDecimals,
51922
51764
  props.group,
51923
- props.mintRate,
51924
- props.mintPrice,
51925
51765
  props.assetShareValue,
51926
51766
  props.liabilityShareValue,
51927
51767
  props.liquidityVault,
@@ -52648,15 +52488,14 @@ var MarginfiAccount = class _MarginfiAccount {
52648
52488
  *
52649
52489
  * @param program - The Marginfi program instance
52650
52490
  * @param banks - Map of all available banks
52651
- * @param mintDatas - Map of mint data for token programs
52652
- * @param bankAddress - The bank to withdraw emissions from
52491
+ * @param bankAddress - The bank to clear emissions for
52653
52492
  *
52654
- * @returns Promise resolving to InstructionsWrapper containing the withdraw emissions instructions
52493
+ * @returns Promise resolving to InstructionsWrapper containing the clear emissions instructions
52655
52494
  *
52656
- * @see {@link makeWithdrawEmissionsIx} for implementation
52495
+ * @see {@link makeClearEmissionsIx} for implementation
52657
52496
  */
52658
- async makeWithdrawEmissionsIx(program, banks, mintDatas, bankAddress) {
52659
- return makeWithdrawEmissionsIx(program, this, banks, mintDatas, bankAddress);
52497
+ async makeClearEmissionsIx(program, banks, bankAddress) {
52498
+ return makeClearEmissionsIx(program, this, banks, bankAddress);
52660
52499
  }
52661
52500
  /**
52662
52501
  * Creates an instruction to begin a flash loan.
@@ -53339,17 +53178,12 @@ var MarginfiAccountWrapper = class {
53339
53178
  });
53340
53179
  }
53341
53180
  /**
53342
- * Creates a withdraw emissions instruction with auto-injected client data.
53181
+ * Creates a clear emissions instruction with auto-injected client data.
53343
53182
  *
53344
- * @param bankAddress - Bank address to withdraw emissions from
53183
+ * @param bankAddress - Bank address to clear emissions for
53345
53184
  */
53346
- async makeWithdrawEmissionsIx(bankAddress) {
53347
- return this.account.makeWithdrawEmissionsIx(
53348
- this.client.program,
53349
- this.client.bankMap,
53350
- this.client.mintDataByBank,
53351
- bankAddress
53352
- );
53185
+ async makeClearEmissionsIx(bankAddress) {
53186
+ return this.account.makeClearEmissionsIx(this.client.program, this.client.bankMap, bankAddress);
53353
53187
  }
53354
53188
  /**
53355
53189
  * Creates a begin flash loan instruction.
@@ -54535,6 +54369,7 @@ exports.makeBeginFlashLoanIx = makeBeginFlashLoanIx3;
54535
54369
  exports.makeBorrowIx = makeBorrowIx3;
54536
54370
  exports.makeBorrowTx = makeBorrowTx;
54537
54371
  exports.makeBundleTipIx = makeBundleTipIx;
54372
+ exports.makeClearEmissionsIx = makeClearEmissionsIx;
54538
54373
  exports.makeCloseMarginfiAccountIx = makeCloseMarginfiAccountIx;
54539
54374
  exports.makeCloseMarginfiAccountTx = makeCloseMarginfiAccountTx;
54540
54375
  exports.makeCrankSwbFeedIx = makeCrankSwbFeedIx;
@@ -54583,7 +54418,6 @@ exports.makeUpdateDriftMarketIxs = makeUpdateDriftMarketIxs;
54583
54418
  exports.makeUpdateJupLendRateIxs = makeUpdateJupLendRateIxs;
54584
54419
  exports.makeUpdateSwbFeedIx = makeUpdateSwbFeedIx;
54585
54420
  exports.makeVersionedTransaction = makeVersionedTransaction;
54586
- exports.makeWithdrawEmissionsIx = makeWithdrawEmissionsIx;
54587
54421
  exports.makeWithdrawIx = makeWithdrawIx3;
54588
54422
  exports.makeWithdrawTx = makeWithdrawTx;
54589
54423
  exports.makeWrapSolIxs = makeWrapSolIxs;