@haven-fi/solauto-sdk 1.0.834 → 1.0.836
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/switchboardConstants.js +7 -7
- package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/manager/transactionsManager.js +2 -1
- package/package.json +1 -1
- package/src/constants/switchboardConstants.ts +7 -7
- package/src/services/transactions/manager/transactionsManager.ts +4 -1
- package/tests/unit/transactionsManager.ts +44 -1
|
@@ -40,11 +40,11 @@ const tokens = __importStar(require("./tokenConstants"));
|
|
|
40
40
|
exports.SWITCHBOARD_PRICE_FEED_IDS = {
|
|
41
41
|
[spl_token_1.NATIVE_MINT.toString()]: {
|
|
42
42
|
feedId: "4Hmd6PdjVA9auCoScE12iaBogfwS4ZXQ6VZoBeqanwWW",
|
|
43
|
-
feedHash: "
|
|
43
|
+
feedHash: "0x19089ab8a78c2d6e1b0b17ed50db7d99d7a05260160dfdf727746f656e879539",
|
|
44
44
|
},
|
|
45
45
|
[tokens.JUP_SOL]: {
|
|
46
|
-
feedId: "
|
|
47
|
-
feedHash: "
|
|
46
|
+
feedId: "BRCWKZ1PevwTFzBL2MLZM5hMwCNMWE8NYuS6zFPaXZ6y",
|
|
47
|
+
feedHash: "0xd126e3a968e310748ad925d7d728f3e779121b0c26b7d1a3d061cc2da3093005",
|
|
48
48
|
},
|
|
49
49
|
[tokens.JITO_SOL]: {
|
|
50
50
|
feedId: "5htZ4vPKPjAEg8EJv6JHcaCetMM4XehZo8znQvrp6Ur3",
|
|
@@ -55,12 +55,12 @@ exports.SWITCHBOARD_PRICE_FEED_IDS = {
|
|
|
55
55
|
feedHash: "0x74e140c452fe29cced80898a51961ed1410c1fe0efbdc970fe5aac986427419e"
|
|
56
56
|
},
|
|
57
57
|
[tokens.JTO]: {
|
|
58
|
-
feedId: "
|
|
59
|
-
feedHash: "
|
|
58
|
+
feedId: "V9o7SWeCFpGpKbWwVQD9x5RnpUEMh8sUAwqi1XnCReu",
|
|
59
|
+
feedHash: "0x1ac1e88ed90c78e2514aa346ba1c90807d12524089920348f29b725832f4e070"
|
|
60
60
|
},
|
|
61
61
|
[tokens.H_SOL]: {
|
|
62
|
-
feedId: "
|
|
63
|
-
feedHash: "
|
|
62
|
+
feedId: "3zCUYzDhuyZREWgngzJfUt2UzQ5SzKCUK5AdwiB2HYmU",
|
|
63
|
+
feedHash: "0x1b8b079fe96e1749f6418405e91407790689623dee8dc123ae26eb833c9d9bd5",
|
|
64
64
|
},
|
|
65
65
|
[tokens.POPCAT]: {
|
|
66
66
|
feedId: "FTcFqwCjAgv2VMaowQ9XSBcesVzFzZkaju25nKio6bki",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,aAAa,EAKd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAEL,YAAY,EACZ,eAAe,EAEhB,MAAM,UAAU,CAAC;AAGlB,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,EAAE,CAAC;AAEpE,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,SAAS;IAC1D,SAAS,EAAE,CAAC,CAAC;IACb,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,SAAS;IAClD,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IACvB,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1E,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IACzC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACxC,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAM;IACpD,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;gBAEhC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAoB9B,uBAAuB;IAwDrC,OAAO,CAAC,YAAY;YAiCN,aAAa;IAwB3B,SAAS,CAAC,4BAA4B,CACpC,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM;IAcpB,OAAO,CAAC,mBAAmB;IAkBd,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;IAgCtC,OAAO,CAAC,mBAAmB;YA0Bb,eAAe;YAkDf,6BAA6B;YA8D7B,kCAAkC;YAUlC,cAAc;YA0Ed,qBAAqB;
|
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -309,7 +309,8 @@ class TransactionsManager {
|
|
|
309
309
|
const refreshedSets = await this.refreshItemSets(itemSets, attemptNum, prevError, currentIndex);
|
|
310
310
|
itemSet = refreshedSets ? refreshedSets[0] : undefined;
|
|
311
311
|
}
|
|
312
|
-
if (!itemSet ||
|
|
312
|
+
if (!itemSet ||
|
|
313
|
+
!this.shouldProceedToSend(itemSets.slice(currentIndex), attemptNum)) {
|
|
313
314
|
return;
|
|
314
315
|
}
|
|
315
316
|
const tx = await itemSet.getSingleTransaction();
|
package/package.json
CHANGED
|
@@ -10,12 +10,12 @@ interface SwitchboardFeed {
|
|
|
10
10
|
export const SWITCHBOARD_PRICE_FEED_IDS: { [key: string]: SwitchboardFeed } = {
|
|
11
11
|
[NATIVE_MINT.toString()]: {
|
|
12
12
|
feedId: "4Hmd6PdjVA9auCoScE12iaBogfwS4ZXQ6VZoBeqanwWW",
|
|
13
|
-
feedHash: "
|
|
13
|
+
feedHash: "0x19089ab8a78c2d6e1b0b17ed50db7d99d7a05260160dfdf727746f656e879539",
|
|
14
14
|
},
|
|
15
15
|
[tokens.JUP_SOL]: {
|
|
16
|
-
feedId: "
|
|
16
|
+
feedId: "BRCWKZ1PevwTFzBL2MLZM5hMwCNMWE8NYuS6zFPaXZ6y",
|
|
17
17
|
feedHash:
|
|
18
|
-
"
|
|
18
|
+
"0xd126e3a968e310748ad925d7d728f3e779121b0c26b7d1a3d061cc2da3093005",
|
|
19
19
|
},
|
|
20
20
|
[tokens.JITO_SOL]: {
|
|
21
21
|
feedId: "5htZ4vPKPjAEg8EJv6JHcaCetMM4XehZo8znQvrp6Ur3",
|
|
@@ -26,13 +26,13 @@ export const SWITCHBOARD_PRICE_FEED_IDS: { [key: string]: SwitchboardFeed } = {
|
|
|
26
26
|
feedHash: "0x74e140c452fe29cced80898a51961ed1410c1fe0efbdc970fe5aac986427419e"
|
|
27
27
|
},
|
|
28
28
|
[tokens.JTO]: {
|
|
29
|
-
feedId: "
|
|
30
|
-
feedHash: "
|
|
29
|
+
feedId: "V9o7SWeCFpGpKbWwVQD9x5RnpUEMh8sUAwqi1XnCReu",
|
|
30
|
+
feedHash: "0x1ac1e88ed90c78e2514aa346ba1c90807d12524089920348f29b725832f4e070"
|
|
31
31
|
},
|
|
32
32
|
[tokens.H_SOL]: {
|
|
33
|
-
feedId: "
|
|
33
|
+
feedId: "3zCUYzDhuyZREWgngzJfUt2UzQ5SzKCUK5AdwiB2HYmU",
|
|
34
34
|
feedHash:
|
|
35
|
-
"
|
|
35
|
+
"0x1b8b079fe96e1749f6418405e91407790689623dee8dc123ae26eb833c9d9bd5",
|
|
36
36
|
},
|
|
37
37
|
[tokens.POPCAT]: {
|
|
38
38
|
feedId: "FTcFqwCjAgv2VMaowQ9XSBcesVzFzZkaju25nKio6bki",
|
|
@@ -531,7 +531,10 @@ export class TransactionsManager<T extends TxHandler> {
|
|
|
531
531
|
);
|
|
532
532
|
itemSet = refreshedSets ? refreshedSets[0] : undefined;
|
|
533
533
|
}
|
|
534
|
-
if (
|
|
534
|
+
if (
|
|
535
|
+
!itemSet ||
|
|
536
|
+
!this.shouldProceedToSend(itemSets.slice(currentIndex), attemptNum)
|
|
537
|
+
) {
|
|
535
538
|
return;
|
|
536
539
|
}
|
|
537
540
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { expect } from "chai";
|
|
2
2
|
import { describe, it } from "mocha";
|
|
3
|
-
import { TransactionsManager } from "../../src";
|
|
3
|
+
import { TransactionsManager, UPDATE_ORACLE_TX_NAME } from "../../src";
|
|
4
4
|
|
|
5
5
|
function createManager(abortController?: AbortController) {
|
|
6
6
|
return new TransactionsManager({
|
|
@@ -14,6 +14,49 @@ function createManager(abortController?: AbortController) {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
describe("TransactionsManager bundle fallback", () => {
|
|
17
|
+
it("sends a standalone oracle update when later transactions are pending", async () => {
|
|
18
|
+
const manager = createManager();
|
|
19
|
+
const sent: string[] = [];
|
|
20
|
+
const oracleTx = { getInstructions: () => [{}] };
|
|
21
|
+
const oracleSet = {
|
|
22
|
+
items: [{ name: UPDATE_ORACLE_TX_NAME }],
|
|
23
|
+
name: () => UPDATE_ORACLE_TX_NAME,
|
|
24
|
+
getSingleTransaction: async () => oracleTx,
|
|
25
|
+
};
|
|
26
|
+
const rebalanceSet = {
|
|
27
|
+
items: [{ name: "rebalance" }],
|
|
28
|
+
name: () => "rebalance",
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
manager.debugAccounts = async () => {};
|
|
32
|
+
manager.sendTransaction = async (_tx: unknown, name: string) => {
|
|
33
|
+
sent.push(name);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
await manager.processTransactionSet([oracleSet, rebalanceSet], 0);
|
|
37
|
+
|
|
38
|
+
expect(sent).to.deep.equal([UPDATE_ORACLE_TX_NAME]);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("still skips an oracle update when it is the only remaining transaction", async () => {
|
|
42
|
+
const manager = createManager();
|
|
43
|
+
let sends = 0;
|
|
44
|
+
const oracleSet = {
|
|
45
|
+
items: [{ name: UPDATE_ORACLE_TX_NAME }],
|
|
46
|
+
name: () => UPDATE_ORACLE_TX_NAME,
|
|
47
|
+
getSingleTransaction: async () => ({ getInstructions: () => [{}] }),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
manager.debugAccounts = async () => {};
|
|
51
|
+
manager.sendTransaction = async () => {
|
|
52
|
+
sends++;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
await manager.processTransactionSet([oracleSet], 0);
|
|
56
|
+
|
|
57
|
+
expect(sends).to.equal(0);
|
|
58
|
+
});
|
|
59
|
+
|
|
17
60
|
it("retries a failed multi-transaction bundle sequentially", async () => {
|
|
18
61
|
const manager = createManager();
|
|
19
62
|
const calls: string[] = [];
|