@haven-fi/solauto-sdk 1.0.786 → 1.0.787
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/constants/marginfiAccounts.d.ts.map +1 -1
- package/dist/constants/marginfiAccounts.js +22 -7
- package/dist/constants/pythConstants.d.ts +4 -0
- package/dist/constants/pythConstants.d.ts.map +1 -1
- package/dist/constants/pythConstants.js +22 -8
- package/dist/constants/switchboardConstants.js +17 -7
- package/dist/constants/tokenConstants.d.ts +1 -0
- package/dist/constants/tokenConstants.d.ts.map +1 -1
- package/dist/constants/tokenConstants.js +8 -1
- package/dist/utils/instructionUtils.d.ts +1 -1
- package/dist/utils/instructionUtils.d.ts.map +1 -1
- package/dist/utils/instructionUtils.js +2 -2
- package/dist/utils/marginfi/general.d.ts.map +1 -1
- package/dist/utils/marginfi/general.js +2 -19
- package/dist/utils/priceUtils.js +17 -7
- package/dist/utils/switchboardUtils.js +17 -7
- package/local/createTokenAccounts.ts +1 -1
- package/local/txSandbox.ts +1 -1
- package/local/updateSolautoLUT.ts +2 -0
- package/package.json +1 -1
- package/src/constants/marginfiAccounts.ts +5 -0
- package/src/constants/pythConstants.ts +6 -0
- package/src/constants/tokenConstants.ts +7 -0
- package/src/generated/types/solautoAction.ts +1 -1
- package/src/generated/types/tokenBalanceAmount.ts +1 -1
- package/src/utils/instructionUtils.ts +2 -3
- package/src/utils/marginfi/general.ts +3 -24
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiAccounts.d.ts","sourceRoot":"","sources":["../../src/constants/marginfiAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAetC,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;CAC7D,CAAC;
|
1
|
+
{"version":3,"file":"marginfiAccounts.d.ts","sourceRoot":"","sources":["../../src/constants/marginfiAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAetC,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;CAC7D,CAAC;AAqLF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,SAAS,GACxB,uBAAuB,CA4BzB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,WAKrD"}
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
15
15
|
}) : function(o, v) {
|
16
16
|
o["default"] = v;
|
17
17
|
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
};
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
36
|
exports.getMarginfiAccounts = getMarginfiAccounts;
|
27
37
|
exports.isMarginfiProgram = isMarginfiProgram;
|
@@ -148,6 +158,11 @@ const MARGINFI_PROD_ACCOUNTS = {
|
|
148
158
|
liquidityVault: "4kT3EXc5dDVndUU9mV6EH3Jh3CSEvpcCZjuMkwqrtxUy",
|
149
159
|
vaultAuthority: "9gNrvvZ9RuTyRWooiEEypwcXU6kyXW8yWuhXU8tWUH5L",
|
150
160
|
},
|
161
|
+
[tokens.PUMP]: {
|
162
|
+
bank: "61Qx9kgWo9RVtPHf8Rku6gbaUtcnzgkpAuifQBUcMRVK",
|
163
|
+
liquidityVault: "6FxnrCaJNHLyrFy6EPtqFjoUK5iRxDQbaVo1bA69nDhH",
|
164
|
+
vaultAuthority: "6VL2QW6sy8cjxL24xHL7eFbnUSi35DMJd8AzRwssSs9y"
|
165
|
+
}
|
151
166
|
},
|
152
167
|
["DQ2jqDJw9uzTwttf6h6r217BQ7kws3jZbJXDkfbCJa1q"]: {
|
153
168
|
[tokens.POPCAT]: {
|
@@ -20,5 +20,9 @@ export declare const PYTH_PRICE_FEED_IDS: {
|
|
20
20
|
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB: string;
|
21
21
|
DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263: string;
|
22
22
|
EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm: string;
|
23
|
+
pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn: string;
|
24
|
+
};
|
25
|
+
export declare const PYTH_ORACLE_ACCOUNTS: {
|
26
|
+
pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn: string;
|
23
27
|
};
|
24
28
|
//# sourceMappingURL=pythConstants.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pythConstants.d.ts","sourceRoot":"","sources":["../../src/constants/pythConstants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAE7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,mBAAmB
|
1
|
+
{"version":3,"file":"pythConstants.d.ts","sourceRoot":"","sources":["../../src/constants/pythConstants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAE7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAqC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAEhC,CAAC"}
|
@@ -15,15 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
15
15
|
}) : function(o, v) {
|
16
16
|
o["default"] = v;
|
17
17
|
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
};
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.PYTH_PRICE_FEED_IDS = exports.MARGINFI_SPONSORED_SHARD_ID = exports.PYTH_SPONSORED_SHARD_ID = exports.PYTH_PUSH_PROGRAM = void 0;
|
36
|
+
exports.PYTH_ORACLE_ACCOUNTS = exports.PYTH_PRICE_FEED_IDS = exports.MARGINFI_SPONSORED_SHARD_ID = exports.PYTH_SPONSORED_SHARD_ID = exports.PYTH_PUSH_PROGRAM = void 0;
|
27
37
|
const spl_token_1 = require("@solana/spl-token");
|
28
38
|
const tokens = __importStar(require("./tokenConstants"));
|
29
39
|
const web3_js_1 = require("@solana/web3.js");
|
@@ -49,4 +59,8 @@ exports.PYTH_PRICE_FEED_IDS = {
|
|
49
59
|
[tokens.USDT]: "0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
50
60
|
[tokens.BONK]: "0x72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419",
|
51
61
|
[tokens.WIF]: "0x4ca4beeca86f0d164160323817a4e42b10010a724c2217c6ee41b54cd4cc61fc",
|
62
|
+
[tokens.PUMP]: "0x7a01fca212788bba7c5bf8c9efd576a8a722f070d2c17596ff7bb609b8d5c3b9",
|
63
|
+
};
|
64
|
+
exports.PYTH_ORACLE_ACCOUNTS = {
|
65
|
+
[tokens.PUMP]: "HMm3GPbdnqGwbkTnUUqCFsH8AMHDdEC3Lg8gcPD3HJSH",
|
52
66
|
};
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
15
15
|
}) : function(o, v) {
|
16
16
|
o["default"] = v;
|
17
17
|
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
};
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
36
|
exports.SWITCHBOARD_PRICE_FEED_IDS = void 0;
|
27
37
|
const tokens = __importStar(require("./tokenConstants"));
|
@@ -20,6 +20,7 @@ export declare const POPCAT = "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr";
|
|
20
20
|
export declare const RETARDIO = "6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx";
|
21
21
|
export declare const BILLY = "3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump";
|
22
22
|
export declare const HMTR = "7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2";
|
23
|
+
export declare const PUMP = "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn";
|
23
24
|
export declare const ALL_SUPPORTED_TOKENS: string[];
|
24
25
|
export interface TokenInfo {
|
25
26
|
ticker: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tokenConstants.d.ts","sourceRoot":"","sources":["../../src/constants/tokenConstants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,QAAQ,iDAAiD,CAAC;AACvE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,OAAO,gDAAgD,CAAC;AACrE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,MAAM,iDAAiD,CAAC;AACrE,eAAO,MAAM,QAAQ,iDAAiD,CAAC;AACvE,eAAO,MAAM,KAAK,iDAAiD,CAAC;AACpE,eAAO,MAAM,IAAI,iDAAiD,CAAC;
|
1
|
+
{"version":3,"file":"tokenConstants.d.ts","sourceRoot":"","sources":["../../src/constants/tokenConstants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,QAAQ,iDAAiD,CAAC;AACvE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,KAAK,gDAAgD,CAAC;AACnE,eAAO,MAAM,OAAO,gDAAgD,CAAC;AACrE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,GAAG,gDAAgD,CAAC;AACjE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,GAAG,iDAAiD,CAAC;AAClE,eAAO,MAAM,MAAM,iDAAiD,CAAC;AACrE,eAAO,MAAM,QAAQ,iDAAiD,CAAC;AACvE,eAAO,MAAM,KAAK,iDAAiD,CAAC;AACpE,eAAO,MAAM,IAAI,iDAAiD,CAAC;AACnE,eAAO,MAAM,IAAI,gDAAgD,CAAC;AAElE,eAAO,MAAM,oBAAoB,UAyBhC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,UAAU,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAyIlD,CAAC;AAEF,eAAO,MAAM,WAAW;;;;CAIvB,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.MAJORS_PRIO = exports.TOKEN_INFO = exports.ALL_SUPPORTED_TOKENS = exports.HMTR = exports.BILLY = exports.RETARDIO = exports.POPCAT = exports.WIF = exports.BONK = exports.USDT = exports.USDC = exports.PYTH = exports.HNT = exports.WETH = exports.WBTC = exports.JLP = exports.JTO = exports.JUP = exports.JUP_SOL = exports.H_SOL = exports.INF = exports.M_SOL = exports.LST = exports.JITO_SOL = exports.B_SOL = void 0;
|
3
|
+
exports.MAJORS_PRIO = exports.TOKEN_INFO = exports.ALL_SUPPORTED_TOKENS = exports.PUMP = exports.HMTR = exports.BILLY = exports.RETARDIO = exports.POPCAT = exports.WIF = exports.BONK = exports.USDT = exports.USDC = exports.PYTH = exports.HNT = exports.WETH = exports.WBTC = exports.JLP = exports.JTO = exports.JUP = exports.JUP_SOL = exports.H_SOL = exports.INF = exports.M_SOL = exports.LST = exports.JITO_SOL = exports.B_SOL = void 0;
|
4
4
|
const spl_token_1 = require("@solana/spl-token");
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
6
6
|
// When adding token ensure a price feed is provided in pythConstants.ts & the token is in TOKEN_INFO
|
@@ -26,6 +26,7 @@ exports.POPCAT = "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr";
|
|
26
26
|
exports.RETARDIO = "6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx";
|
27
27
|
exports.BILLY = "3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump";
|
28
28
|
exports.HMTR = "7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2";
|
29
|
+
exports.PUMP = "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn";
|
29
30
|
exports.ALL_SUPPORTED_TOKENS = [
|
30
31
|
spl_token_1.NATIVE_MINT.toString(),
|
31
32
|
exports.B_SOL,
|
@@ -50,6 +51,7 @@ exports.ALL_SUPPORTED_TOKENS = [
|
|
50
51
|
exports.RETARDIO,
|
51
52
|
exports.BILLY,
|
52
53
|
exports.HMTR,
|
54
|
+
exports.PUMP,
|
53
55
|
];
|
54
56
|
exports.TOKEN_INFO = {
|
55
57
|
[web3_js_1.PublicKey.default.toString()]: {
|
@@ -183,6 +185,11 @@ exports.TOKEN_INFO = {
|
|
183
185
|
decimals: 0,
|
184
186
|
isMeme: true,
|
185
187
|
},
|
188
|
+
[exports.PUMP]: {
|
189
|
+
ticker: "PUMP",
|
190
|
+
name: "Pump.fun",
|
191
|
+
decimals: 6,
|
192
|
+
}
|
186
193
|
};
|
187
194
|
exports.MAJORS_PRIO = {
|
188
195
|
[exports.WBTC]: 0,
|
@@ -10,6 +10,6 @@ export declare function deposit(client: SolautoClient, baseUnitAmount: bigint):
|
|
10
10
|
export declare function borrow(client: SolautoClient, baseUnitAmount: bigint): TransactionItem;
|
11
11
|
export declare function withdraw(client: SolautoClient, amount: "All" | bigint): TransactionItem;
|
12
12
|
export declare function repay(client: SolautoClient, amount: "All" | bigint): TransactionItem;
|
13
|
-
export declare function rebalance(client: SolautoClient, targetLiqUtilizationRateBps?: number, bpsDistanceFromRebalance?: number
|
13
|
+
export declare function rebalance(client: SolautoClient, targetLiqUtilizationRateBps?: number, bpsDistanceFromRebalance?: number): TransactionItem;
|
14
14
|
export declare function swapThenDeposit(client: SolautoClient, depositMint: PublicKey, depositAmountBaseUnit: bigint): TransactionItem[];
|
15
15
|
//# sourceMappingURL=instructionUtils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,EACxB,YAAY,CAAC,EAAE,YAAY,mBAQ5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,mBAOzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC,EAC5D,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,mBAY1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,mBAOrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUpE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAWnE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAerE;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAclE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,wBAAwB,CAAC,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,EACxB,YAAY,CAAC,EAAE,YAAY,mBAQ5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,mBAOzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC,EAC5D,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,mBAY1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,mBAOrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUpE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAWnE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAerE;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAclE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,wBAAwB,CAAC,EAAE,MAAM,mBAalC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,SAAS,EACtB,qBAAqB,EAAE,MAAM,qBAyC9B"}
|
@@ -77,8 +77,8 @@ function repay(client, amount) {
|
|
77
77
|
}),
|
78
78
|
}), "repay");
|
79
79
|
}
|
80
|
-
function rebalance(client, targetLiqUtilizationRateBps, bpsDistanceFromRebalance
|
81
|
-
return new services_1.TransactionItem(async (attemptNum, prevError) => await new services_1.RebalanceTxBuilder(client, targetLiqUtilizationRateBps,
|
80
|
+
function rebalance(client, targetLiqUtilizationRateBps, bpsDistanceFromRebalance) {
|
81
|
+
return new services_1.TransactionItem(async (attemptNum, prevError) => await new services_1.RebalanceTxBuilder(client, targetLiqUtilizationRateBps, attemptNum > 2 && prevError instanceof services_1.TransactionTooLargeError, bpsDistanceFromRebalance).buildRebalanceTx(attemptNum), "rebalance", true);
|
82
82
|
}
|
83
83
|
function swapThenDeposit(client, depositMint, depositAmountBaseUnit) {
|
84
84
|
return [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAKhF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAGL,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,IAAI,EAIJ,eAAe,EAGhB,MAAM,6BAA6B,CAAC;
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAKhF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAGL,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,IAAI,EAIJ,eAAe,EAGhB,MAAM,6BAA6B,CAAC;AAMrC,wBAAgB,4BAA4B,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CActE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,UAAU,OASxE;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,uBAAuB,GACvC,OAAO,CAAC,SAAS,EAAE,CAAC,CAyBtB;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;;;;;GAanE;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,sBAOtC;AAED,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAyB1B;AAED,wBAAsB,0CAA0C,CAC9D,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,EAAE,CAAC,CAWxB;AAED,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,WASpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAW3E"}
|
@@ -17,7 +17,6 @@ const constants_1 = require("../../constants");
|
|
17
17
|
const marginfi_1 = require("../../externalSdks/marginfi");
|
18
18
|
const numberUtils_1 = require("../numberUtils");
|
19
19
|
const accountUtils_1 = require("../accountUtils");
|
20
|
-
const pythUtils_1 = require("../pythUtils");
|
21
20
|
const solanaUtils_1 = require("../solanaUtils");
|
22
21
|
function createDynamicMarginfiProgram(env) {
|
23
22
|
return {
|
@@ -45,16 +44,7 @@ async function getAllBankRelatedAccounts(umi, bankAccountsMap) {
|
|
45
44
|
const banks = Object.values(bankAccountsMap).flatMap((group) => Object.values(group).map((accounts) => accounts.bank));
|
46
45
|
const banksData = await (0, marginfi_1.safeFetchAllBank)(umi, banks.map((x) => (0, umi_1.publicKey)(x)));
|
47
46
|
const oracles = banksData
|
48
|
-
.map((bank) =>
|
49
|
-
const oracleKey = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(bank.config.oracleKeys[0]);
|
50
|
-
return bank.config.oracleSetup === marginfi_1.OracleSetup.PythPushOracle
|
51
|
-
? [
|
52
|
-
(0, pythUtils_1.getPythPushOracleAddress)(oracleKey, constants_1.PYTH_SPONSORED_SHARD_ID),
|
53
|
-
(0, pythUtils_1.getPythPushOracleAddress)(oracleKey, constants_1.MARGINFI_SPONSORED_SHARD_ID),
|
54
|
-
]
|
55
|
-
: [oracleKey];
|
56
|
-
})
|
57
|
-
.flat()
|
47
|
+
.map((bank) => (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(bank.config.oracleKeys[0]))
|
58
48
|
.map((x) => x.toString());
|
59
49
|
const otherAccounts = Object.entries(bankAccountsMap).flatMap(([groupName, tokenMap]) => Object.values(tokenMap).flatMap((accounts) => [
|
60
50
|
groupName,
|
@@ -82,14 +72,7 @@ async function getMarginfiPriceOracle(umi, bank) {
|
|
82
72
|
if (!bank.data) {
|
83
73
|
bank.data = await (0, marginfi_1.fetchBank)(umi, (0, umi_web3js_adapters_1.fromWeb3JsPublicKey)(bank.pk));
|
84
74
|
}
|
85
|
-
|
86
|
-
const priceOracle = bank.data.config.oracleSetup === marginfi_1.OracleSetup.PythPushOracle
|
87
|
-
? await (0, pythUtils_1.getMostUpToDatePythOracle)(umi, [
|
88
|
-
(0, pythUtils_1.getPythPushOracleAddress)(oracleKey, constants_1.PYTH_SPONSORED_SHARD_ID),
|
89
|
-
(0, pythUtils_1.getPythPushOracleAddress)(oracleKey, constants_1.MARGINFI_SPONSORED_SHARD_ID),
|
90
|
-
])
|
91
|
-
: oracleKey;
|
92
|
-
return priceOracle;
|
75
|
+
return (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(bank.data.config.oracleKeys[0]);
|
93
76
|
}
|
94
77
|
function findMarginfiAccounts(bank) {
|
95
78
|
const search = (bankAccounts) => {
|
package/dist/utils/priceUtils.js
CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
15
15
|
}) : function(o, v) {
|
16
16
|
o["default"] = v;
|
17
17
|
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
};
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
36
|
exports.fetchTokenPrices = fetchTokenPrices;
|
27
37
|
exports.getPythPrices = getPythPrices;
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
15
15
|
}) : function(o, v) {
|
16
16
|
o["default"] = v;
|
17
17
|
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
};
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
37
|
};
|
package/local/txSandbox.ts
CHANGED
@@ -48,7 +48,7 @@ export async function main() {
|
|
48
48
|
|
49
49
|
await client.initializeExistingSolautoPosition({
|
50
50
|
positionId: 1,
|
51
|
-
authority: new PublicKey("
|
51
|
+
authority: new PublicKey("7rujyCAvZYsd3kmfhEN6YmsRLpobtzsqrsZAKv5Mgkob"),
|
52
52
|
// lpUserAccount: new PublicKey(
|
53
53
|
// "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
|
54
54
|
// ),
|
@@ -7,6 +7,7 @@ import {
|
|
7
7
|
SWITCHBOARD_PRICE_FEED_IDS,
|
8
8
|
ALL_SUPPORTED_TOKENS,
|
9
9
|
getTokenAccounts,
|
10
|
+
PYTH_ORACLE_ACCOUNTS,
|
10
11
|
} from "../src";
|
11
12
|
import { updateLookupTable } from "./shared";
|
12
13
|
|
@@ -30,6 +31,7 @@ export async function updateSolautoLut(additionalAccounts?: string[]) {
|
|
30
31
|
...solautoManagerTokenAccounts.map((x) => x.toString()),
|
31
32
|
...solautoFeeWalletTokenAccounts.map((x) => x.toString()),
|
32
33
|
...Object.values(SWITCHBOARD_PRICE_FEED_IDS).map((x) => x.feedId),
|
34
|
+
...Object.values(PYTH_ORACLE_ACCOUNTS),
|
33
35
|
...(additionalAccounts ?? []),
|
34
36
|
],
|
35
37
|
LOOKUP_TABLE_ADDRESS
|
package/package.json
CHANGED
@@ -138,6 +138,11 @@ const MARGINFI_PROD_ACCOUNTS: MarginfiBankAccountsMap = {
|
|
138
138
|
liquidityVault: "4kT3EXc5dDVndUU9mV6EH3Jh3CSEvpcCZjuMkwqrtxUy",
|
139
139
|
vaultAuthority: "9gNrvvZ9RuTyRWooiEEypwcXU6kyXW8yWuhXU8tWUH5L",
|
140
140
|
},
|
141
|
+
[tokens.PUMP]: {
|
142
|
+
bank: "61Qx9kgWo9RVtPHf8Rku6gbaUtcnzgkpAuifQBUcMRVK",
|
143
|
+
liquidityVault: "6FxnrCaJNHLyrFy6EPtqFjoUK5iRxDQbaVo1bA69nDhH",
|
144
|
+
vaultAuthority: "6VL2QW6sy8cjxL24xHL7eFbnUSi35DMJd8AzRwssSs9y"
|
145
|
+
}
|
141
146
|
},
|
142
147
|
["DQ2jqDJw9uzTwttf6h6r217BQ7kws3jZbJXDkfbCJa1q"]: {
|
143
148
|
[tokens.POPCAT]: {
|
@@ -45,4 +45,10 @@ export const PYTH_PRICE_FEED_IDS = {
|
|
45
45
|
"0x72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419",
|
46
46
|
[tokens.WIF]:
|
47
47
|
"0x4ca4beeca86f0d164160323817a4e42b10010a724c2217c6ee41b54cd4cc61fc",
|
48
|
+
[tokens.PUMP]:
|
49
|
+
"0x7a01fca212788bba7c5bf8c9efd576a8a722f070d2c17596ff7bb609b8d5c3b9",
|
50
|
+
};
|
51
|
+
|
52
|
+
export const PYTH_ORACLE_ACCOUNTS = {
|
53
|
+
[tokens.PUMP]: "HMm3GPbdnqGwbkTnUUqCFsH8AMHDdEC3Lg8gcPD3HJSH",
|
48
54
|
};
|
@@ -24,6 +24,7 @@ export const POPCAT = "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr";
|
|
24
24
|
export const RETARDIO = "6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx";
|
25
25
|
export const BILLY = "3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump";
|
26
26
|
export const HMTR = "7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2";
|
27
|
+
export const PUMP = "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn";
|
27
28
|
|
28
29
|
export const ALL_SUPPORTED_TOKENS = [
|
29
30
|
NATIVE_MINT.toString(),
|
@@ -49,6 +50,7 @@ export const ALL_SUPPORTED_TOKENS = [
|
|
49
50
|
RETARDIO,
|
50
51
|
BILLY,
|
51
52
|
HMTR,
|
53
|
+
PUMP,
|
52
54
|
];
|
53
55
|
|
54
56
|
export interface TokenInfo {
|
@@ -193,6 +195,11 @@ export const TOKEN_INFO: { [key: string]: TokenInfo } = {
|
|
193
195
|
decimals: 0,
|
194
196
|
isMeme: true,
|
195
197
|
},
|
198
|
+
[PUMP]: {
|
199
|
+
ticker: "PUMP",
|
200
|
+
name: "Pump.fun",
|
201
|
+
decimals: 6,
|
202
|
+
}
|
196
203
|
};
|
197
204
|
|
198
205
|
export const MAJORS_PRIO = {
|
@@ -90,7 +90,7 @@ export function solautoAction<K extends SolautoActionArgs['__kind']>(
|
|
90
90
|
data?: any
|
91
91
|
): Extract<SolautoActionArgs, { __kind: K }> {
|
92
92
|
return Array.isArray(data)
|
93
|
-
? { __kind: kind, fields: data }
|
93
|
+
? { __kind: kind, fields: data } as Extract<SolautoActionArgs, { __kind: K }>
|
94
94
|
: { __kind: kind, ...(data ?? {}) };
|
95
95
|
}
|
96
96
|
export function isSolautoAction<K extends SolautoAction['__kind']>(
|
@@ -56,7 +56,7 @@ export function tokenBalanceAmount<K extends TokenBalanceAmountArgs['__kind']>(
|
|
56
56
|
data?: any
|
57
57
|
): Extract<TokenBalanceAmountArgs, { __kind: K }> {
|
58
58
|
return Array.isArray(data)
|
59
|
-
? { __kind: kind, fields: data }
|
59
|
+
? { __kind: kind, fields: data } as Extract<TokenBalanceAmountArgs, { __kind: K }>
|
60
60
|
: { __kind: kind, ...(data ?? {}) };
|
61
61
|
}
|
62
62
|
export function isTokenBalanceAmount<K extends TokenBalanceAmount['__kind']>(
|
@@ -125,15 +125,14 @@ export function repay(client: SolautoClient, amount: "All" | bigint) {
|
|
125
125
|
export function rebalance(
|
126
126
|
client: SolautoClient,
|
127
127
|
targetLiqUtilizationRateBps?: number,
|
128
|
-
bpsDistanceFromRebalance?: number
|
129
|
-
optimizeSize?: boolean
|
128
|
+
bpsDistanceFromRebalance?: number
|
130
129
|
) {
|
131
130
|
return new TransactionItem(
|
132
131
|
async (attemptNum, prevError) =>
|
133
132
|
await new RebalanceTxBuilder(
|
134
133
|
client,
|
135
134
|
targetLiqUtilizationRateBps,
|
136
|
-
|
135
|
+
attemptNum > 2 && prevError instanceof TransactionTooLargeError,
|
137
136
|
bpsDistanceFromRebalance
|
138
137
|
).buildRebalanceTx(attemptNum),
|
139
138
|
"rebalance",
|
@@ -23,10 +23,7 @@ import {
|
|
23
23
|
} from "../../externalSdks/marginfi";
|
24
24
|
import { bytesToI80F48, fromBaseUnit, toBps } from "../numberUtils";
|
25
25
|
import { getTokenAccountData } from "../accountUtils";
|
26
|
-
import {
|
27
|
-
getMostUpToDatePythOracle,
|
28
|
-
getPythPushOracleAddress,
|
29
|
-
} from "../pythUtils";
|
26
|
+
import { getPythPushOracleAddress } from "../pythUtils";
|
30
27
|
import { getAccountMeta } from "../solanaUtils";
|
31
28
|
|
32
29
|
export function createDynamicMarginfiProgram(env?: ProgramEnv): Program {
|
@@ -69,16 +66,7 @@ export async function getAllBankRelatedAccounts(
|
|
69
66
|
);
|
70
67
|
|
71
68
|
const oracles = banksData
|
72
|
-
.map((bank) =>
|
73
|
-
const oracleKey = toWeb3JsPublicKey(bank.config.oracleKeys[0]);
|
74
|
-
return bank.config.oracleSetup === OracleSetup.PythPushOracle
|
75
|
-
? [
|
76
|
-
getPythPushOracleAddress(oracleKey, PYTH_SPONSORED_SHARD_ID),
|
77
|
-
getPythPushOracleAddress(oracleKey, MARGINFI_SPONSORED_SHARD_ID),
|
78
|
-
]
|
79
|
-
: [oracleKey];
|
80
|
-
})
|
81
|
-
.flat()
|
69
|
+
.map((bank) => toWeb3JsPublicKey(bank.config.oracleKeys[0]))
|
82
70
|
.map((x) => x.toString());
|
83
71
|
|
84
72
|
const otherAccounts = Object.entries(bankAccountsMap).flatMap(
|
@@ -118,16 +106,7 @@ export async function getMarginfiPriceOracle(
|
|
118
106
|
bank.data = await fetchBank(umi, fromWeb3JsPublicKey(bank.pk!));
|
119
107
|
}
|
120
108
|
|
121
|
-
|
122
|
-
const priceOracle =
|
123
|
-
bank.data.config.oracleSetup === OracleSetup.PythPushOracle
|
124
|
-
? await getMostUpToDatePythOracle(umi, [
|
125
|
-
getPythPushOracleAddress(oracleKey, PYTH_SPONSORED_SHARD_ID),
|
126
|
-
getPythPushOracleAddress(oracleKey, MARGINFI_SPONSORED_SHARD_ID),
|
127
|
-
])
|
128
|
-
: oracleKey;
|
129
|
-
|
130
|
-
return priceOracle;
|
109
|
+
return toWeb3JsPublicKey(bank.data.config.oracleKeys[0]);
|
131
110
|
}
|
132
111
|
|
133
112
|
interface AllMarginfiAssetAccounts extends MarginfiAssetAccounts {
|