@0dotxyz/p0-ts-sdk 2.8.0-alpha.3 → 2.8.0-alpha.5
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 +238 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -4
- package/dist/index.d.ts +28 -4
- package/dist/index.js +236 -41
- package/dist/index.js.map +1 -1
- package/dist/instructions.cjs +10 -0
- package/dist/instructions.cjs.map +1 -1
- package/dist/instructions.d.cts +26 -1
- package/dist/instructions.d.ts +26 -1
- package/dist/instructions.js +10 -0
- package/dist/instructions.js.map +1 -1
- package/dist/{types-pwKFfkCG.d.ts → types-3H0oa4o0.d.ts} +95 -24
- package/dist/{types-poGnrQyp.d.cts → types-BCAMIXgz.d.cts} +95 -24
- package/dist/vendor.cjs +37 -19
- package/dist/vendor.cjs.map +1 -1
- package/dist/vendor.d.cts +1 -1
- package/dist/vendor.d.ts +1 -1
- package/dist/vendor.js +29 -11
- package/dist/vendor.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -706,12 +706,12 @@ function makeBundleTipIx(feePayer, bundleTip = 1e5) {
|
|
|
706
706
|
return bundleTipInstruction;
|
|
707
707
|
}
|
|
708
708
|
|
|
709
|
-
// src/idl/marginfi_0.1.
|
|
710
|
-
var
|
|
709
|
+
// src/idl/marginfi_0.1.11.json
|
|
710
|
+
var marginfi_0_1_11_default = {
|
|
711
711
|
address: "MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA",
|
|
712
712
|
metadata: {
|
|
713
713
|
name: "marginfi",
|
|
714
|
-
version: "0.1.
|
|
714
|
+
version: "0.1.11",
|
|
715
715
|
spec: "0.1.0",
|
|
716
716
|
description: "Borrow Lending Prime Broker"
|
|
717
717
|
},
|
|
@@ -8122,6 +8122,53 @@ var marginfi_0_1_10_default = {
|
|
|
8122
8122
|
}
|
|
8123
8123
|
]
|
|
8124
8124
|
},
|
|
8125
|
+
{
|
|
8126
|
+
name: "lending_pool_configure_bank_oracle_scope",
|
|
8127
|
+
docs: [
|
|
8128
|
+
"(admin only) Point a bank at a Scope feed entry.",
|
|
8129
|
+
"* oracle - the feed's `OraclePrices` account",
|
|
8130
|
+
"* entry_index - which of the 512 entries in that account prices this bank"
|
|
8131
|
+
],
|
|
8132
|
+
discriminator: [
|
|
8133
|
+
134,
|
|
8134
|
+
228,
|
|
8135
|
+
127,
|
|
8136
|
+
3,
|
|
8137
|
+
117,
|
|
8138
|
+
132,
|
|
8139
|
+
85,
|
|
8140
|
+
146
|
|
8141
|
+
],
|
|
8142
|
+
accounts: [
|
|
8143
|
+
{
|
|
8144
|
+
name: "group",
|
|
8145
|
+
relations: [
|
|
8146
|
+
"bank"
|
|
8147
|
+
]
|
|
8148
|
+
},
|
|
8149
|
+
{
|
|
8150
|
+
name: "admin",
|
|
8151
|
+
signer: true,
|
|
8152
|
+
relations: [
|
|
8153
|
+
"group"
|
|
8154
|
+
]
|
|
8155
|
+
},
|
|
8156
|
+
{
|
|
8157
|
+
name: "bank",
|
|
8158
|
+
writable: true
|
|
8159
|
+
}
|
|
8160
|
+
],
|
|
8161
|
+
args: [
|
|
8162
|
+
{
|
|
8163
|
+
name: "oracle",
|
|
8164
|
+
type: "pubkey"
|
|
8165
|
+
},
|
|
8166
|
+
{
|
|
8167
|
+
name: "entry_index",
|
|
8168
|
+
type: "u16"
|
|
8169
|
+
}
|
|
8170
|
+
]
|
|
8171
|
+
},
|
|
8125
8172
|
{
|
|
8126
8173
|
name: "lending_pool_emissions_deposit",
|
|
8127
8174
|
docs: [
|
|
@@ -8594,19 +8641,19 @@ var marginfi_0_1_10_default = {
|
|
|
8594
8641
|
]
|
|
8595
8642
|
},
|
|
8596
8643
|
{
|
|
8597
|
-
name: "
|
|
8644
|
+
name: "lending_pool_set_oracle_price",
|
|
8598
8645
|
docs: [
|
|
8599
8646
|
"(admin only)"
|
|
8600
8647
|
],
|
|
8601
8648
|
discriminator: [
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
127,
|
|
8605
|
-
127,
|
|
8606
|
-
60,
|
|
8649
|
+
234,
|
|
8650
|
+
244,
|
|
8607
8651
|
37,
|
|
8608
|
-
|
|
8609
|
-
|
|
8652
|
+
65,
|
|
8653
|
+
101,
|
|
8654
|
+
255,
|
|
8655
|
+
217,
|
|
8656
|
+
160
|
|
8610
8657
|
],
|
|
8611
8658
|
accounts: [
|
|
8612
8659
|
{
|
|
@@ -8635,6 +8682,10 @@ var marginfi_0_1_10_default = {
|
|
|
8635
8682
|
name: "WrappedI80F48"
|
|
8636
8683
|
}
|
|
8637
8684
|
}
|
|
8685
|
+
},
|
|
8686
|
+
{
|
|
8687
|
+
name: "setup",
|
|
8688
|
+
type: "u8"
|
|
8638
8689
|
}
|
|
8639
8690
|
]
|
|
8640
8691
|
},
|
|
@@ -12013,16 +12064,16 @@ var marginfi_0_1_10_default = {
|
|
|
12013
12064
|
]
|
|
12014
12065
|
},
|
|
12015
12066
|
{
|
|
12016
|
-
name: "
|
|
12067
|
+
name: "LendingPoolBankSetOraclePriceEvent",
|
|
12017
12068
|
discriminator: [
|
|
12018
|
-
|
|
12019
|
-
|
|
12020
|
-
|
|
12021
|
-
|
|
12022
|
-
|
|
12023
|
-
|
|
12024
|
-
|
|
12025
|
-
|
|
12069
|
+
92,
|
|
12070
|
+
180,
|
|
12071
|
+
117,
|
|
12072
|
+
175,
|
|
12073
|
+
131,
|
|
12074
|
+
24,
|
|
12075
|
+
159,
|
|
12076
|
+
141
|
|
12026
12077
|
]
|
|
12027
12078
|
},
|
|
12028
12079
|
{
|
|
@@ -12858,8 +12909,8 @@ var marginfi_0_1_10_default = {
|
|
|
12858
12909
|
},
|
|
12859
12910
|
{
|
|
12860
12911
|
code: 6132,
|
|
12861
|
-
name: "
|
|
12862
|
-
msg: "Use
|
|
12912
|
+
name: "UseSetOraclePrice",
|
|
12913
|
+
msg: "Use set_oracle_price instead"
|
|
12863
12914
|
},
|
|
12864
12915
|
{
|
|
12865
12916
|
code: 6133,
|
|
@@ -12876,6 +12927,26 @@ var marginfi_0_1_10_default = {
|
|
|
12876
12927
|
name: "SlippageTooHigh",
|
|
12877
12928
|
msg: "Max slippage exceeds the allowed cap"
|
|
12878
12929
|
},
|
|
12930
|
+
{
|
|
12931
|
+
code: 6136,
|
|
12932
|
+
name: "MarinadeStateValidationFailed",
|
|
12933
|
+
msg: "Marinade state validation failed"
|
|
12934
|
+
},
|
|
12935
|
+
{
|
|
12936
|
+
code: 6137,
|
|
12937
|
+
name: "ExponentVaultValidationFailed",
|
|
12938
|
+
msg: "Exponent vault validation failed"
|
|
12939
|
+
},
|
|
12940
|
+
{
|
|
12941
|
+
code: 6138,
|
|
12942
|
+
name: "InvalidPtStartPrice",
|
|
12943
|
+
msg: "PT start price must be in (0, 1]"
|
|
12944
|
+
},
|
|
12945
|
+
{
|
|
12946
|
+
code: 6139,
|
|
12947
|
+
name: "StakePoolStale",
|
|
12948
|
+
msg: "Stake pool balance has not been updated recently enough"
|
|
12949
|
+
},
|
|
12879
12950
|
{
|
|
12880
12951
|
code: 6200,
|
|
12881
12952
|
name: "WrongAssetTagForStandardInstructions",
|
|
@@ -14376,9 +14447,9 @@ var marginfi_0_1_10_default = {
|
|
|
14376
14447
|
{
|
|
14377
14448
|
name: "scope_entry_index",
|
|
14378
14449
|
docs: [
|
|
14379
|
-
"Entry index into the Scope OraclePrices price list. Only read when",
|
|
14380
|
-
"oracle_setup == OracleSetup::Scope
|
|
14381
|
-
"Occupies what was previously _padding0
|
|
14450
|
+
"Entry index into the Scope `OraclePrices` price list. Only read when",
|
|
14451
|
+
"`oracle_setup == OracleSetup::Scope`; ignored (and zero) for every other setup.",
|
|
14452
|
+
"Occupies what was previously `_padding0`, so the layout is unchanged."
|
|
14382
14453
|
],
|
|
14383
14454
|
type: "u16"
|
|
14384
14455
|
},
|
|
@@ -17357,7 +17428,7 @@ var marginfi_0_1_10_default = {
|
|
|
17357
17428
|
}
|
|
17358
17429
|
},
|
|
17359
17430
|
{
|
|
17360
|
-
name: "
|
|
17431
|
+
name: "LendingPoolBankSetOraclePriceEvent",
|
|
17361
17432
|
type: {
|
|
17362
17433
|
kind: "struct",
|
|
17363
17434
|
fields: [
|
|
@@ -20852,7 +20923,7 @@ var marginfi_0_1_10_default = {
|
|
|
20852
20923
|
};
|
|
20853
20924
|
|
|
20854
20925
|
// src/idl/index.ts
|
|
20855
|
-
var MARGINFI_IDL =
|
|
20926
|
+
var MARGINFI_IDL = marginfi_0_1_11_default;
|
|
20856
20927
|
|
|
20857
20928
|
// src/services/bank/types/bank.types.ts
|
|
20858
20929
|
var RiskTier = /* @__PURE__ */ ((RiskTier3) => {
|
|
@@ -21764,6 +21835,14 @@ async function makeLendingPoolConfigureBankOracleIx(mfProgram, accounts, args, r
|
|
|
21764
21835
|
bank
|
|
21765
21836
|
}).accountsPartial(optionalAccounts).remainingAccounts(remainingAccounts).instruction();
|
|
21766
21837
|
}
|
|
21838
|
+
async function makeLendingPoolConfigureBankOracleScopeIx(mfProgram, accounts, args) {
|
|
21839
|
+
const { bank, ...optionalAccounts } = accounts;
|
|
21840
|
+
return mfProgram.methods.lendingPoolConfigureBankOracleScope(args.oracle, args.entryIndex).accounts({ bank }).accountsPartial(optionalAccounts).remainingAccounts([{ pubkey: args.oracle, isSigner: false, isWritable: false }]).instruction();
|
|
21841
|
+
}
|
|
21842
|
+
async function makeLendingPoolSetOraclePriceIx(mfProgram, accounts, args, remainingAccounts = []) {
|
|
21843
|
+
const { bank, ...optionalAccounts } = accounts;
|
|
21844
|
+
return mfProgram.methods.lendingPoolSetOraclePrice(args.price, args.setup).accounts({ bank }).accountsPartial(optionalAccounts).remainingAccounts(remainingAccounts).instruction();
|
|
21845
|
+
}
|
|
21767
21846
|
async function makePoolAddPermissionlessStakedBankIx(mfProgram, accounts, remainingAccounts = [], args) {
|
|
21768
21847
|
const {
|
|
21769
21848
|
stakedSettings,
|
|
@@ -21836,6 +21915,8 @@ var instructions = {
|
|
|
21836
21915
|
makeCloseAccountIx,
|
|
21837
21916
|
makePoolAddPermissionlessStakedBankIx,
|
|
21838
21917
|
makeLendingPoolConfigureBankOracleIx,
|
|
21918
|
+
makeLendingPoolConfigureBankOracleScopeIx,
|
|
21919
|
+
makeLendingPoolSetOraclePriceIx,
|
|
21839
21920
|
makePulseHealthIx
|
|
21840
21921
|
};
|
|
21841
21922
|
var instructions_default = instructions;
|
|
@@ -52052,6 +52133,11 @@ function encodeU8(value) {
|
|
|
52052
52133
|
buf.writeUInt8(value, 0);
|
|
52053
52134
|
return buf;
|
|
52054
52135
|
}
|
|
52136
|
+
function encodeU16(value) {
|
|
52137
|
+
const buf = Buffer.alloc(2);
|
|
52138
|
+
buf.writeUInt16LE(value, 0);
|
|
52139
|
+
return buf;
|
|
52140
|
+
}
|
|
52055
52141
|
function encodeBool(value) {
|
|
52056
52142
|
const buf = Buffer.alloc(1);
|
|
52057
52143
|
buf.writeUInt8(value ? 1 : 0, 0);
|
|
@@ -52090,6 +52176,7 @@ var DISCRIMINATORS = {
|
|
|
52090
52176
|
MARGINFI_ACCOUNT_CLOSE: Buffer.from([186, 221, 93, 34, 50, 97, 194, 241]),
|
|
52091
52177
|
LENDING_POOL_ADD_BANK_PERMISSIONLESS: Buffer.from([127, 187, 121, 34, 187, 167, 238, 102]),
|
|
52092
52178
|
LENDING_POOL_CONFIGURE_BANK_ORACLE: Buffer.from([209, 82, 255, 171, 124, 21, 71, 81]),
|
|
52179
|
+
LENDING_POOL_CONFIGURE_BANK_ORACLE_SCOPE: Buffer.from([134, 228, 127, 3, 117, 132, 85, 146]),
|
|
52093
52180
|
LENDING_ACCOUNT_PULSE_HEALTH: Buffer.from([186, 52, 117, 97, 34, 74, 39, 253]),
|
|
52094
52181
|
LENDING_ACCOUNT_SORT_BALANCES: Buffer.from([187, 194, 110, 84, 82, 170, 204, 9]),
|
|
52095
52182
|
DRIFT_DEPOSIT: Buffer.from([252, 63, 250, 201, 98, 55, 130, 12]),
|
|
@@ -52525,6 +52612,24 @@ function makeLendingPoolConfigureBankOracleIx2(programId, accounts, args, remain
|
|
|
52525
52612
|
data
|
|
52526
52613
|
});
|
|
52527
52614
|
}
|
|
52615
|
+
function makeLendingPoolConfigureBankOracleScopeIx2(programId, accounts, args) {
|
|
52616
|
+
const keys = [
|
|
52617
|
+
{ pubkey: accounts.group, isSigner: false, isWritable: false },
|
|
52618
|
+
{ pubkey: accounts.admin, isSigner: true, isWritable: false },
|
|
52619
|
+
{ pubkey: accounts.bank, isSigner: false, isWritable: true },
|
|
52620
|
+
{ pubkey: args.oracle, isSigner: false, isWritable: false }
|
|
52621
|
+
];
|
|
52622
|
+
const data = Buffer.concat([
|
|
52623
|
+
DISCRIMINATORS.LENDING_POOL_CONFIGURE_BANK_ORACLE_SCOPE,
|
|
52624
|
+
encodePublicKey(args.oracle),
|
|
52625
|
+
encodeU16(args.entryIndex)
|
|
52626
|
+
]);
|
|
52627
|
+
return new web3_js.TransactionInstruction({
|
|
52628
|
+
keys,
|
|
52629
|
+
programId,
|
|
52630
|
+
data
|
|
52631
|
+
});
|
|
52632
|
+
}
|
|
52528
52633
|
function makePoolAddBankIx2(programId, accounts, args) {
|
|
52529
52634
|
const keys = [
|
|
52530
52635
|
{ pubkey: accounts.marginfiGroup, isSigner: false, isWritable: true },
|
|
@@ -52744,6 +52849,7 @@ var syncInstructions = {
|
|
|
52744
52849
|
makeCloseAccountIx: makeCloseAccountIx2,
|
|
52745
52850
|
makePoolAddPermissionlessStakedBankIx: makePoolAddPermissionlessStakedBankIx2,
|
|
52746
52851
|
makeLendingPoolConfigureBankOracleIx: makeLendingPoolConfigureBankOracleIx2,
|
|
52852
|
+
makeLendingPoolConfigureBankOracleScopeIx: makeLendingPoolConfigureBankOracleScopeIx2,
|
|
52747
52853
|
makePulseHealthIx: makePulseHealthIx3
|
|
52748
52854
|
};
|
|
52749
52855
|
var sync_instructions_default = syncInstructions;
|
|
@@ -75271,10 +75377,15 @@ function decodeScopePriceAtIndex(data, entryIndex) {
|
|
|
75271
75377
|
}
|
|
75272
75378
|
new web3_js.PublicKey("MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD");
|
|
75273
75379
|
var MARINADE_STATE_DISCRIMINATOR = Buffer.from([216, 146, 107, 94, 104, 75, 182, 177]);
|
|
75274
|
-
var
|
|
75275
|
-
var
|
|
75276
|
-
var
|
|
75277
|
-
var
|
|
75380
|
+
var DELAYED_UNSTAKE_COOLING_DOWN_OFFSET = 226;
|
|
75381
|
+
var TOTAL_ACTIVE_BALANCE_OFFSET = 376;
|
|
75382
|
+
var AVAILABLE_RESERVE_BALANCE_OFFSET = 496;
|
|
75383
|
+
var MSOL_SUPPLY_OFFSET = 504;
|
|
75384
|
+
var CIRCULATING_TICKET_BALANCE_OFFSET = 528;
|
|
75385
|
+
var EMERGENCY_COOLING_DOWN_OFFSET = 568;
|
|
75386
|
+
var MARINADE_STATE_MIN_SIZE = EMERGENCY_COOLING_DOWN_OFFSET + 8;
|
|
75387
|
+
var U64_MAX = (1n << 64n) - 1n;
|
|
75388
|
+
var MAX_MSOL_SOL_RATE = 3;
|
|
75278
75389
|
function decodeMarinadeState(data) {
|
|
75279
75390
|
if (data.length < MARINADE_STATE_MIN_SIZE) {
|
|
75280
75391
|
throw new Error(`Invalid Marinade State account size: ${data.length}`);
|
|
@@ -75282,8 +75393,21 @@ function decodeMarinadeState(data) {
|
|
|
75282
75393
|
if (!data.subarray(0, 8).equals(MARINADE_STATE_DISCRIMINATOR)) {
|
|
75283
75394
|
throw new Error("Invalid Marinade State discriminator");
|
|
75284
75395
|
}
|
|
75285
|
-
const
|
|
75286
|
-
const
|
|
75396
|
+
const delayedUnstakeCoolingDown = data.readBigUInt64LE(DELAYED_UNSTAKE_COOLING_DOWN_OFFSET);
|
|
75397
|
+
const totalActiveBalance = data.readBigUInt64LE(TOTAL_ACTIVE_BALANCE_OFFSET);
|
|
75398
|
+
const availableReserveBalance = data.readBigUInt64LE(AVAILABLE_RESERVE_BALANCE_OFFSET);
|
|
75399
|
+
const msolSupply = data.readBigUInt64LE(MSOL_SUPPLY_OFFSET);
|
|
75400
|
+
const circulatingTicketBalance = data.readBigUInt64LE(CIRCULATING_TICKET_BALANCE_OFFSET);
|
|
75401
|
+
const emergencyCoolingDown = data.readBigUInt64LE(EMERGENCY_COOLING_DOWN_OFFSET);
|
|
75402
|
+
if (msolSupply === 0n) {
|
|
75403
|
+
throw new Error("Marinade State has zero mSOL supply");
|
|
75404
|
+
}
|
|
75405
|
+
const underControl = totalActiveBalance + delayedUnstakeCoolingDown + emergencyCoolingDown + availableReserveBalance;
|
|
75406
|
+
if (underControl > U64_MAX) {
|
|
75407
|
+
throw new Error("Marinade virtual staked balance overflow");
|
|
75408
|
+
}
|
|
75409
|
+
const totalVirtualStakedLamports = underControl > circulatingTicketBalance ? underControl - circulatingTicketBalance : 0n;
|
|
75410
|
+
const msolPrice = new BigNumber3__default.default(totalVirtualStakedLamports.toString()).div(msolSupply.toString());
|
|
75287
75411
|
if (!msolPrice.gt(0) || msolPrice.gte(MAX_MSOL_SOL_RATE)) {
|
|
75288
75412
|
throw new Error(`Marinade mSOL/SOL rate out of bounds: ${msolPrice.toString()}`);
|
|
75289
75413
|
}
|
|
@@ -75302,7 +75426,7 @@ var ACCOUNT_TYPE_STAKE_POOL = 1;
|
|
|
75302
75426
|
var TOTAL_LAMPORTS_OFFSET = 258;
|
|
75303
75427
|
var POOL_TOKEN_SUPPLY_OFFSET = 266;
|
|
75304
75428
|
var LAST_UPDATE_EPOCH_OFFSET = 274;
|
|
75305
|
-
var MAX_LST_SOL_RATE =
|
|
75429
|
+
var MAX_LST_SOL_RATE = 3;
|
|
75306
75430
|
function decodeStakePool(data) {
|
|
75307
75431
|
if (data.length < LAST_UPDATE_EPOCH_OFFSET + 8) {
|
|
75308
75432
|
throw new Error(`Invalid StakePool account size: ${data.length}`);
|
|
@@ -81940,13 +82064,13 @@ var fetchMultipleBanks = async (program, opts) => {
|
|
|
81940
82064
|
}
|
|
81941
82065
|
return bankDatas;
|
|
81942
82066
|
};
|
|
81943
|
-
var
|
|
82067
|
+
var U64_MAX2 = new BigNumber3__default.default("18446744073709551615");
|
|
81944
82068
|
var DRIFT_SCALED_BALANCE_DECIMALS = 9;
|
|
81945
82069
|
function isDepositLimitActive(bank) {
|
|
81946
|
-
return !bank.config.depositLimit.eq(
|
|
82070
|
+
return !bank.config.depositLimit.eq(U64_MAX2);
|
|
81947
82071
|
}
|
|
81948
82072
|
function isBorrowLimitActive(bank) {
|
|
81949
|
-
return !bank.config.borrowLimit.eq(
|
|
82073
|
+
return !bank.config.borrowLimit.eq(U64_MAX2);
|
|
81950
82074
|
}
|
|
81951
82075
|
function getEffectiveDepositLimit(bank) {
|
|
81952
82076
|
const limit = bank.config.depositLimit;
|
|
@@ -82060,12 +82184,12 @@ function computeRemainingCapacity(bank) {
|
|
|
82060
82184
|
const remainingCapacity = isDepositLimitActive(bank) ? BigNumber3__default.default.max(
|
|
82061
82185
|
0,
|
|
82062
82186
|
getEffectiveDepositLimit(bank).minus(totalDeposits).minus(1).integerValue(BigNumber3__default.default.ROUND_FLOOR)
|
|
82063
|
-
) :
|
|
82187
|
+
) : U64_MAX2;
|
|
82064
82188
|
const totalBorrows = getTotalLiabilityQuantity(bank);
|
|
82065
82189
|
const remainingBorrowCapacity = isBorrowLimitActive(bank) ? BigNumber3__default.default.max(
|
|
82066
82190
|
0,
|
|
82067
82191
|
bank.config.borrowLimit.minus(totalBorrows).minus(1).integerValue(BigNumber3__default.default.ROUND_FLOOR)
|
|
82068
|
-
) :
|
|
82192
|
+
) : U64_MAX2;
|
|
82069
82193
|
const projectionSeconds = computeAccrualProjectionSeconds(bank);
|
|
82070
82194
|
const { lendingRate, borrowingRate } = computeInterestRates(bank);
|
|
82071
82195
|
const projectedLendingInterest = lendingRate.times(projectionSeconds).dividedBy(SECONDS_PER_YEAR).times(totalDeposits);
|
|
@@ -82314,10 +82438,21 @@ async function addOracleToBanksIx({
|
|
|
82314
82438
|
bankAddress,
|
|
82315
82439
|
feedId,
|
|
82316
82440
|
oracleKey,
|
|
82441
|
+
oracleAccounts,
|
|
82317
82442
|
setup,
|
|
82318
82443
|
groupAddress,
|
|
82319
82444
|
adminAddress
|
|
82320
82445
|
}) {
|
|
82446
|
+
if (setup === "Scope" /* Scope */ || setup === "PTPyth" /* PTPyth */ || setup === "PTFixed" /* PTFixed */) {
|
|
82447
|
+
throw new Error(
|
|
82448
|
+
`${setup} must be configured with ${setup === "Scope" /* Scope */ ? "configureScopeOracleIx" : "setOraclePriceIx"}`
|
|
82449
|
+
);
|
|
82450
|
+
}
|
|
82451
|
+
const resolvedOracleAccounts = oracleAccounts ?? (oracleKey ? [oracleKey] : []);
|
|
82452
|
+
const expectedAccountCount = setup === "PythMSOL" /* PythMSOL */ || setup === "PythLST" /* PythLST */ ? 2 : setup === "KaminoMSOL" /* KaminoMSOL */ || setup === "JuplendMSOL" /* JuplendMSOL */ || setup === "KaminoLST" /* KaminoLST */ || setup === "JuplendLST" /* JuplendLST */ ? 3 : void 0;
|
|
82453
|
+
if (expectedAccountCount !== void 0 && resolvedOracleAccounts.length !== expectedAccountCount) {
|
|
82454
|
+
throw new Error(`${setup} requires ${expectedAccountCount} ordered oracle accounts`);
|
|
82455
|
+
}
|
|
82321
82456
|
const ix = await instructions_default.makeLendingPoolConfigureBankOracleIx(
|
|
82322
82457
|
program,
|
|
82323
82458
|
{
|
|
@@ -82329,7 +82464,67 @@ async function addOracleToBanksIx({
|
|
|
82329
82464
|
setup: serializeOracleSetupToIndex(setup),
|
|
82330
82465
|
feedId
|
|
82331
82466
|
},
|
|
82332
|
-
|
|
82467
|
+
resolvedOracleAccounts.map((pubkey) => ({
|
|
82468
|
+
isSigner: false,
|
|
82469
|
+
isWritable: false,
|
|
82470
|
+
pubkey
|
|
82471
|
+
}))
|
|
82472
|
+
);
|
|
82473
|
+
return {
|
|
82474
|
+
instructions: [ix],
|
|
82475
|
+
keys: []
|
|
82476
|
+
};
|
|
82477
|
+
}
|
|
82478
|
+
async function setOraclePriceIx({
|
|
82479
|
+
program,
|
|
82480
|
+
bankAddress,
|
|
82481
|
+
price,
|
|
82482
|
+
setup,
|
|
82483
|
+
oracleAccounts = [],
|
|
82484
|
+
groupAddress,
|
|
82485
|
+
adminAddress
|
|
82486
|
+
}) {
|
|
82487
|
+
const expectedAccountCount = setup === "PTPyth" /* PTPyth */ ? 2 : setup === "PTFixed" /* PTFixed */ ? 1 : void 0;
|
|
82488
|
+
if (expectedAccountCount !== void 0 && oracleAccounts.length !== expectedAccountCount) {
|
|
82489
|
+
throw new Error(`${setup} requires ${expectedAccountCount} ordered oracle accounts`);
|
|
82490
|
+
}
|
|
82491
|
+
const ix = await instructions_default.makeLendingPoolSetOraclePriceIx(
|
|
82492
|
+
program,
|
|
82493
|
+
{
|
|
82494
|
+
bank: bankAddress,
|
|
82495
|
+
group: groupAddress,
|
|
82496
|
+
admin: adminAddress
|
|
82497
|
+
},
|
|
82498
|
+
{
|
|
82499
|
+
price: bigNumberToWrappedI80F48(price),
|
|
82500
|
+
setup: serializeOracleSetupToIndex(setup)
|
|
82501
|
+
},
|
|
82502
|
+
oracleAccounts.map((pubkey) => ({ isSigner: false, isWritable: false, pubkey }))
|
|
82503
|
+
);
|
|
82504
|
+
return {
|
|
82505
|
+
instructions: [ix],
|
|
82506
|
+
keys: []
|
|
82507
|
+
};
|
|
82508
|
+
}
|
|
82509
|
+
async function configureScopeOracleIx({
|
|
82510
|
+
program,
|
|
82511
|
+
bankAddress,
|
|
82512
|
+
oracle,
|
|
82513
|
+
entryIndex,
|
|
82514
|
+
groupAddress,
|
|
82515
|
+
adminAddress
|
|
82516
|
+
}) {
|
|
82517
|
+
const ix = await instructions_default.makeLendingPoolConfigureBankOracleScopeIx(
|
|
82518
|
+
program,
|
|
82519
|
+
{
|
|
82520
|
+
bank: bankAddress,
|
|
82521
|
+
group: groupAddress,
|
|
82522
|
+
admin: adminAddress
|
|
82523
|
+
},
|
|
82524
|
+
{
|
|
82525
|
+
oracle,
|
|
82526
|
+
entryIndex
|
|
82527
|
+
}
|
|
82333
82528
|
);
|
|
82334
82529
|
return {
|
|
82335
82530
|
instructions: [ix],
|
|
@@ -85653,7 +85848,7 @@ exports.TransactionBuildingError = TransactionBuildingError;
|
|
|
85653
85848
|
exports.TransactionBuildingErrorCode = TransactionBuildingErrorCode;
|
|
85654
85849
|
exports.TransactionConfigMap = TransactionConfigMap;
|
|
85655
85850
|
exports.TransactionType = TransactionType;
|
|
85656
|
-
exports.U64_MAX =
|
|
85851
|
+
exports.U64_MAX = U64_MAX2;
|
|
85657
85852
|
exports.USDC_DECIMALS = USDC_DECIMALS;
|
|
85658
85853
|
exports.USDC_MINT = USDC_MINT;
|
|
85659
85854
|
exports.USDT_MINT = USDT_MINT;
|
|
@@ -85753,6 +85948,7 @@ exports.computeUsdValue = computeUsdValue;
|
|
|
85753
85948
|
exports.computeUtilizationRate = computeUtilizationRate;
|
|
85754
85949
|
exports.computeV0TxSize = computeV0TxSize;
|
|
85755
85950
|
exports.computeVenueAvailableLiquidity = computeVenueAvailableLiquidity;
|
|
85951
|
+
exports.configureScopeOracleIx = configureScopeOracleIx;
|
|
85756
85952
|
exports.convertVoteAccCoeffsToBankCoeffs = convertVoteAccCoeffsToBankCoeffs;
|
|
85757
85953
|
exports.createActiveEmodePairFromPairs = createActiveEmodePairFromPairs;
|
|
85758
85954
|
exports.createEmptyBalance = createEmptyBalance;
|
|
@@ -86016,6 +86212,7 @@ exports.serializeOracleSetupToIndex = serializeOracleSetupToIndex;
|
|
|
86016
86212
|
exports.serializeRiskTier = serializeRiskTier;
|
|
86017
86213
|
exports.serializeSwapEngineRequest = serializeSwapEngineRequest;
|
|
86018
86214
|
exports.serializeSwapEngineResult = serializeSwapEngineResult;
|
|
86215
|
+
exports.setOraclePriceIx = setOraclePriceIx;
|
|
86019
86216
|
exports.sharedBridgeLegContext = sharedBridgeLegContext;
|
|
86020
86217
|
exports.shortenAddress = shortenAddress;
|
|
86021
86218
|
exports.simulateAccountHealthCache = simulateAccountHealthCache;
|