@haven-fi/solauto-sdk 1.0.302 → 1.0.303
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/clients/solautoMarginfiClient.d.ts.map +1 -1
- package/dist/clients/solautoMarginfiClient.js +2 -2
- package/dist/utils/generalUtils.d.ts.map +1 -1
- package/dist/utils/generalUtils.js +6 -0
- package/dist/utils/marginfiUtils.d.ts.map +1 -1
- package/dist/utils/marginfiUtils.js +0 -4
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +5 -3
- package/src/utils/generalUtils.ts +9 -4
- package/src/utils/marginfiUtils.ts +0 -9
- package/tests/transactions/solautoMarginfi.ts +28 -26
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAOtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAOtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAkE1C,8BAA8B;IA2CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IA2BvE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IAgFrB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CA+ClE"}
|
@@ -39,9 +39,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
39
39
|
const marginfiAccountData = !args.new
|
40
40
|
? await (0, marginfi_sdk_1.safeFetchMarginfiAccount)(this.umi, (0, umi_1.publicKey)(this.marginfiAccountPk), { commitment: "confirmed" })
|
41
41
|
: null;
|
42
|
-
this.marginfiGroup = new web3_js_1.PublicKey(marginfiAccountData
|
42
|
+
this.marginfiGroup = new web3_js_1.PublicKey((marginfiAccountData
|
43
43
|
? marginfiAccountData.group.toString()
|
44
|
-
:
|
44
|
+
: args.marginfiGroup) ?? marginfiAccounts_1.DEFAULT_MARGINFI_GROUP);
|
45
45
|
this.marginfiSupplyAccounts =
|
46
46
|
marginfiAccounts_1.MARGINFI_ACCOUNTS[this.marginfiGroup.toString()][this.supplyMint.toString()];
|
47
47
|
this.marginfiDebtAccounts =
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAEf,GAAG,EACH,SAAS,IAAI,YAAY,EAC1B,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI/C;AACD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU1E;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAS1D;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,qBAwCrD;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,EAAE,qBAkCnB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GACzC,MAAM,GAAG,SAAS,CAKpB;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EACvD,OAAO,GAAE,MAAU,EACnB,KAAK,GAAE,MAAY,EACnB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,CAAC,CAAC,CA8BZ"}
|
@@ -97,6 +97,9 @@ async function fetchTokenPrices(conn, mints) {
|
|
97
97
|
return prices;
|
98
98
|
}
|
99
99
|
async function getPythPrices(mints) {
|
100
|
+
if (mints.length === 0) {
|
101
|
+
return [];
|
102
|
+
}
|
100
103
|
const priceFeedIds = mints.map((mint) => pythConstants_1.PYTH_PRICE_FEED_IDS[mint.toString()]);
|
101
104
|
const getReq = async () => await fetch(`https://hermes.pyth.network/v2/updates/price/latest?${priceFeedIds.map((x) => `ids%5B%5D=${x}`).join("&")}`);
|
102
105
|
const prices = await retryWithExponentialBackoff(async () => {
|
@@ -122,6 +125,9 @@ async function getPythPrices(mints) {
|
|
122
125
|
return prices;
|
123
126
|
}
|
124
127
|
async function getSwitchboardPrices(conn, mints) {
|
128
|
+
if (mints.length === 0) {
|
129
|
+
return [];
|
130
|
+
}
|
125
131
|
const dummyWallet = {
|
126
132
|
publicKey: new web3_js_1.PublicKey("11111111111111111111111111111111"),
|
127
133
|
signTransaction: async (tx) => tx,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwC3B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAuDA;AAgED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,
|
1
|
+
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwC3B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAuDA;AAgED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAsLpC;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB3B"}
|
@@ -207,10 +207,6 @@ async function getMarginfiAccountPositionState(conn, umi, protocolAccount, margi
|
|
207
207
|
if (supplyBank === null) {
|
208
208
|
return undefined;
|
209
209
|
}
|
210
|
-
if (!(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(supplyBank.group).equals(new web3_js_1.PublicKey(marginfiAccounts_1.DEFAULT_MARGINFI_GROUP))) {
|
211
|
-
// Temporarily disabled for now
|
212
|
-
return undefined;
|
213
|
-
}
|
214
210
|
if (!supplyUsage) {
|
215
211
|
supplyUsage = await getTokenUsage(conn, supplyBank, true, 0, livePositionUpdates?.supplyAdjustment);
|
216
212
|
}
|
package/package.json
CHANGED
@@ -104,7 +104,9 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
104
104
|
} else {
|
105
105
|
this.marginfiAccountSeedIdx = generateRandomU64();
|
106
106
|
this.marginfiAccount = this.solautoPositionData
|
107
|
-
? toWeb3JsPublicKey(
|
107
|
+
? toWeb3JsPublicKey(
|
108
|
+
this.solautoPositionData.position.protocolUserAccount
|
109
|
+
)
|
108
110
|
: getMarginfiAccountPDA(
|
109
111
|
this.solautoPosition,
|
110
112
|
this.marginfiAccountSeedIdx,
|
@@ -124,9 +126,9 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
124
126
|
)
|
125
127
|
: null;
|
126
128
|
this.marginfiGroup = new PublicKey(
|
127
|
-
marginfiAccountData
|
129
|
+
(marginfiAccountData
|
128
130
|
? marginfiAccountData.group.toString()
|
129
|
-
:
|
131
|
+
: args.marginfiGroup) ?? DEFAULT_MARGINFI_GROUP
|
130
132
|
);
|
131
133
|
|
132
134
|
this.marginfiSupplyAccounts =
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import {
|
2
2
|
Connection,
|
3
|
-
Keypair,
|
4
3
|
PublicKey,
|
5
4
|
Transaction,
|
6
5
|
VersionedTransaction,
|
@@ -15,11 +14,9 @@ import { PYTH_PRICE_FEED_IDS } from "../constants/pythConstants";
|
|
15
14
|
import { fromBaseUnit, toBaseUnit } from "./numberUtils";
|
16
15
|
import { PRICES } from "../constants/solautoConstants";
|
17
16
|
import {
|
18
|
-
getProgramId,
|
19
17
|
PullFeed,
|
20
|
-
SwitchboardPermission,
|
21
18
|
} from "@switchboard-xyz/on-demand";
|
22
|
-
import { AnchorProvider, Idl, Program
|
19
|
+
import { AnchorProvider, Idl, Program } from "@coral-xyz/anchor";
|
23
20
|
import switchboardIdl from "../idls/switchboard.json";
|
24
21
|
import { SWITCHBOARD_PRICE_FEED_IDS } from "../constants/switchboardConstants";
|
25
22
|
|
@@ -125,6 +122,10 @@ export async function fetchTokenPrices(
|
|
125
122
|
}
|
126
123
|
|
127
124
|
export async function getPythPrices(mints: PublicKey[]) {
|
125
|
+
if (mints.length === 0) {
|
126
|
+
return [];
|
127
|
+
}
|
128
|
+
|
128
129
|
const priceFeedIds = mints.map(
|
129
130
|
(mint) => PYTH_PRICE_FEED_IDS[mint.toString()]
|
130
131
|
);
|
@@ -166,6 +167,10 @@ export async function getSwitchboardPrices(
|
|
166
167
|
conn: Connection,
|
167
168
|
mints: PublicKey[]
|
168
169
|
) {
|
170
|
+
if (mints.length === 0) {
|
171
|
+
return [];
|
172
|
+
}
|
173
|
+
|
169
174
|
const dummyWallet = {
|
170
175
|
publicKey: new PublicKey("11111111111111111111111111111111"),
|
171
176
|
signTransaction: async <T extends Transaction | VersionedTransaction>(
|
@@ -391,15 +391,6 @@ export async function getMarginfiAccountPositionState(
|
|
391
391
|
return undefined;
|
392
392
|
}
|
393
393
|
|
394
|
-
if (
|
395
|
-
!toWeb3JsPublicKey(supplyBank.group).equals(
|
396
|
-
new PublicKey(DEFAULT_MARGINFI_GROUP)
|
397
|
-
)
|
398
|
-
) {
|
399
|
-
// Temporarily disabled for now
|
400
|
-
return undefined;
|
401
|
-
}
|
402
|
-
|
403
394
|
if (!supplyUsage) {
|
404
395
|
supplyUsage = await getTokenUsage(
|
405
396
|
conn,
|
@@ -34,7 +34,7 @@ describe("Solauto Marginfi tests", async () => {
|
|
34
34
|
|
35
35
|
const payForTransactions = false;
|
36
36
|
const testProgram = true;
|
37
|
-
const positionId =
|
37
|
+
const positionId = 3;
|
38
38
|
|
39
39
|
it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
|
40
40
|
const client = new SolautoMarginfiClient(
|
@@ -44,23 +44,25 @@ describe("Solauto Marginfi tests", async () => {
|
|
44
44
|
);
|
45
45
|
|
46
46
|
const supply = NATIVE_MINT;
|
47
|
-
const supplyDecimals =
|
47
|
+
const supplyDecimals = 6;
|
48
48
|
const debtDecimals = 6;
|
49
49
|
|
50
50
|
await client.initialize({
|
51
51
|
signer,
|
52
52
|
positionId,
|
53
53
|
authority: new PublicKey("rC5dMP5dmSsfQ66rynzfFzuc122Eex9h1RJHVDkeH6D"),
|
54
|
+
// new: true,
|
54
55
|
// marginfiAccount: new PublicKey(
|
55
56
|
// "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
|
56
57
|
// ),
|
57
|
-
|
58
|
-
|
58
|
+
marginfiGroup: new PublicKey("G1rt3EpQ43K3bY457rhukQGRAo2QxydFAGRKqnjKzyr5"),
|
59
|
+
supplyMint: new PublicKey("3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump"),
|
60
|
+
debtMint: new PublicKey(USDC),
|
59
61
|
});
|
60
62
|
|
61
63
|
const transactionItems: TransactionItem[] = [];
|
62
64
|
const settingParams: SolautoSettingsParametersInpArgs = {
|
63
|
-
boostToBps:
|
65
|
+
boostToBps: 6900,
|
64
66
|
boostGap: 50,
|
65
67
|
repayToBps: 7000,
|
66
68
|
repayGap: 50,
|
@@ -68,27 +70,27 @@ describe("Solauto Marginfi tests", async () => {
|
|
68
70
|
targetBoostToBps: none(),
|
69
71
|
};
|
70
72
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
73
|
+
if (client.solautoPositionData === null) {
|
74
|
+
transactionItems.push(
|
75
|
+
new TransactionItem(async () => {
|
76
|
+
return {
|
77
|
+
tx: client.openPosition(settingParams),
|
78
|
+
};
|
79
|
+
}, "open position")
|
80
|
+
);
|
81
|
+
|
82
|
+
// const initialSupplyUsd = 150;
|
83
|
+
transactionItems.push(
|
84
|
+
new TransactionItem(async () => {
|
85
|
+
// const [supplyPrice] = await fetchTokenPrices(client.connection, [supply]);
|
86
|
+
return {
|
87
|
+
tx: client.protocolInteraction(
|
88
|
+
solautoAction("Deposit", [toBaseUnit(200, supplyDecimals)])
|
89
|
+
),
|
90
|
+
};
|
91
|
+
}, "deposit")
|
92
|
+
);
|
93
|
+
}
|
92
94
|
|
93
95
|
// const maxLtvBps = client.solautoPositionState!.maxLtvBps;
|
94
96
|
// const liqThresholdBps = client.solautoPositionState!.liqThresholdBps;
|