@quartz-labs/sdk 0.2.0 → 0.3.0

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.
Files changed (53) hide show
  1. package/README.md +9 -1
  2. package/dist/client.d.ts +8 -3
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +43 -11
  5. package/dist/client.js.map +1 -1
  6. package/dist/clientLight.d.ts +1 -1
  7. package/dist/clientLight.d.ts.map +1 -1
  8. package/dist/clientLight.js +7 -3
  9. package/dist/clientLight.js.map +1 -1
  10. package/dist/config/constants.d.ts +1 -9
  11. package/dist/config/constants.d.ts.map +1 -1
  12. package/dist/config/constants.js +1 -9
  13. package/dist/config/constants.js.map +1 -1
  14. package/dist/config/tokens.d.ts +5 -0
  15. package/dist/config/tokens.d.ts.map +1 -0
  16. package/dist/config/tokens.js +37 -0
  17. package/dist/config/tokens.js.map +1 -0
  18. package/dist/index.browser.d.ts +3 -5
  19. package/dist/index.browser.d.ts.map +1 -1
  20. package/dist/index.browser.js +3 -2
  21. package/dist/index.browser.js.map +1 -1
  22. package/dist/index.d.ts +2 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/services/driftClientService.js +2 -2
  27. package/dist/services/driftClientService.js.map +1 -1
  28. package/dist/types/classes/driftUser.class.d.ts +5 -3
  29. package/dist/types/classes/driftUser.class.d.ts.map +1 -1
  30. package/dist/types/classes/driftUser.class.js +23 -12
  31. package/dist/types/classes/driftUser.class.js.map +1 -1
  32. package/dist/types/idl/quartz.d.ts +13 -8
  33. package/dist/types/idl/quartz.d.ts.map +1 -1
  34. package/dist/types/idl/quartz.js +13 -8
  35. package/dist/types/idl/quartz.js.map +1 -1
  36. package/dist/types/interfaces/accountMeta.interface.d.ts +7 -0
  37. package/dist/types/interfaces/accountMeta.interface.d.ts.map +1 -0
  38. package/dist/types/interfaces/accountMeta.interface.js +2 -0
  39. package/dist/types/interfaces/accountMeta.interface.js.map +1 -0
  40. package/dist/types/interfaces/token.interface.d.ts +8 -0
  41. package/dist/types/interfaces/token.interface.d.ts.map +1 -0
  42. package/dist/types/interfaces/token.interface.js +2 -0
  43. package/dist/types/interfaces/token.interface.js.map +1 -0
  44. package/dist/user.d.ts +18 -6
  45. package/dist/user.d.ts.map +1 -1
  46. package/dist/user.js +184 -8
  47. package/dist/user.js.map +1 -1
  48. package/dist/utils/helpers.d.ts +6 -5
  49. package/dist/utils/helpers.d.ts.map +1 -1
  50. package/dist/utils/helpers.js +34 -7
  51. package/dist/utils/helpers.js.map +1 -1
  52. package/dist/utils/jupiter.js.map +1 -1
  53. package/package.json +9 -16
package/README.md CHANGED
@@ -18,11 +18,19 @@ There is currently an issue with dependancy resolutions, so add the following to
18
18
 
19
19
  ```json
20
20
  "resolutions": {
21
- "rpc-websockets": "^9.0.2",
21
+ "rpc-websockets": "^9.0.4",
22
22
  "@solana/web3.js": "^1.95.8"
23
23
  }
24
24
  ```
25
25
 
26
+ If you want to use this SDK in a front-end, note that some Node modules don't work in the browser. Because of this, you'll normally want to import the SDK in your client side code like this:
27
+
28
+ ```javascript
29
+ import * from "@quartz-labs/sdk/browser";
30
+ ```
31
+
32
+ Server-side code can still be imported without the /browser path at the end, but you may need to set up your config so your web app doesn't try to bundle the problematic Node modules with the and client side code.
33
+
26
34
  ## Links
27
35
 
28
36
  Website and waitlist: [quartzpay.io](https://quartzpay.io/)
package/dist/client.d.ts CHANGED
@@ -3,16 +3,21 @@ import { type Quartz } from "./types/idl/quartz.js";
3
3
  import { Program } from "@coral-xyz/anchor";
4
4
  import type { PublicKey, Connection, AddressLookupTableAccount, MessageCompiledInstruction } from "@solana/web3.js";
5
5
  import { QuartzUser } from "./user.js";
6
- import { QuartzClientLight } from "./clientLight.js";
7
- export declare class QuartzClient extends QuartzClientLight {
6
+ import type { TransactionInstruction } from "@solana/web3.js";
7
+ export declare class QuartzClient {
8
+ private connection;
9
+ private program;
10
+ private quartzLookupTable;
8
11
  private driftClient;
9
- constructor(connection: Connection, program: Program<Quartz>, quartzAddressTable: AddressLookupTableAccount, driftClient: DriftClient, oracles: Map<string, PublicKey>);
12
+ constructor(connection: Connection, program: Program<Quartz>, quartzAddressTable: AddressLookupTableAccount, driftClient: DriftClient);
10
13
  static fetchClient(connection: Connection): Promise<QuartzClient>;
14
+ getAllQuartzAccountOwnerPubkeys(): Promise<PublicKey[]>;
11
15
  getQuartzAccount(owner: PublicKey): Promise<QuartzUser>;
12
16
  getMultipleQuartzAccounts(owners: PublicKey[]): Promise<(QuartzUser | null)[]>;
13
17
  getDepositRate(spotMarketIndex: number): Promise<import("bn.js")>;
14
18
  getBorrowRate(spotMarketIndex: number): Promise<import("bn.js")>;
15
19
  private getSpotMarketAccount;
16
20
  listenForInstruction(instructionName: string, onInstruction: (instruction: MessageCompiledInstruction, accountKeys: PublicKey[]) => void): Promise<void>;
21
+ makeInitQuartzUserIxs(owner: PublicKey): Promise<TransactionInstruction[]>;
17
22
  }
18
23
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAyC,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,0BAA0B,EAAS,MAAM,iBAAiB,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,YAAa,SAAQ,iBAAiB;IAC/C,OAAO,CAAC,WAAW,CAAc;gBAG7B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,EAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;WAMf,WAAW,CAC3B,UAAU,EAAE,UAAU;IAuBb,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBvD,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAoC9E,cAAc,CAAC,eAAe,EAAE,MAAM;IAMtC,aAAa,CAAC,eAAe,EAAE,MAAM;YAMpC,oBAAoB;IAMrB,oBAAoB,CAC7B,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,CAAC,WAAW,EAAE,0BAA0B,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI;CA4BjG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAyC,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,0BAA0B,EAAS,MAAM,iBAAiB,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,qBAAa,YAAY;IACrB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,WAAW,CAAc;gBAG7B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,EAC7C,WAAW,EAAE,WAAW;WAQR,WAAW,CAC3B,UAAU,EAAE,UAAU;IAqBb,+BAA+B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAMvD,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBvD,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAmC9E,cAAc,CAAC,eAAe,EAAE,MAAM;IAMtC,aAAa,CAAC,eAAe,EAAE,MAAM;YAMpC,oBAAoB;IAMrB,oBAAoB,CAC7B,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,CAAC,WAAW,EAAE,0BAA0B,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI;IAgCjF,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;CA2B1F"}
package/dist/client.js CHANGED
@@ -1,17 +1,21 @@
1
- import { calculateBorrowRate, calculateDepositRate, fetchUserAccountsUsingKeys as fetchDriftAccountsUsingKeys } from "@drift-labs/sdk";
1
+ import { calculateBorrowRate, calculateDepositRate, DRIFT_PROGRAM_ID, fetchUserAccountsUsingKeys as fetchDriftAccountsUsingKeys } from "@drift-labs/sdk";
2
2
  import { QUARTZ_ADDRESS_TABLE, QUARTZ_PROGRAM_ID } from "./config/constants.js";
3
3
  import { IDL } from "./types/idl/quartz.js";
4
4
  import { AnchorProvider, BorshInstructionCoder, Program, setProvider } from "@coral-xyz/anchor";
5
5
  import { QuartzUser } from "./user.js";
6
- import { getDriftUserPublicKey, getVaultPublicKey } from "./utils/helpers.js";
6
+ import { getDriftStatePublicKey, getDriftUserPublicKey, getDriftUserStatsPublicKey, getVaultPublicKey } from "./utils/helpers.js";
7
7
  import { DriftClientService } from "./services/driftClientService.js";
8
- import { Keypair, } from "@solana/web3.js";
8
+ import { Keypair, SystemProgram, SYSVAR_RENT_PUBKEY, } from "@solana/web3.js";
9
9
  import { DummyWallet } from "./types/classes/dummyWallet.class.js";
10
- import { QuartzClientLight } from "./clientLight.js";
11
- export class QuartzClient extends QuartzClientLight {
10
+ export class QuartzClient {
11
+ connection;
12
+ program;
13
+ quartzLookupTable;
12
14
  driftClient;
13
- constructor(connection, program, quartzAddressTable, driftClient, oracles) {
14
- super(connection, program, quartzAddressTable, oracles);
15
+ constructor(connection, program, quartzAddressTable, driftClient) {
16
+ this.connection = connection;
17
+ this.program = program;
18
+ this.quartzLookupTable = quartzAddressTable;
15
19
  this.driftClient = driftClient;
16
20
  }
17
21
  static async fetchClient(connection) {
@@ -23,8 +27,10 @@ export class QuartzClient extends QuartzClientLight {
23
27
  if (!quartzLookupTable)
24
28
  throw Error("Address Lookup Table account not found");
25
29
  const driftClient = await DriftClientService.getDriftClient(connection);
26
- const oracles = await QuartzClient.fetchOracles(connection, wallet);
27
- return new QuartzClient(connection, program, quartzLookupTable, driftClient, oracles);
30
+ return new QuartzClient(connection, program, quartzLookupTable, driftClient);
31
+ }
32
+ async getAllQuartzAccountOwnerPubkeys() {
33
+ return (await this.program.account.vault.all()).map((vault) => vault.account.owner);
28
34
  }
29
35
  async getQuartzAccount(owner) {
30
36
  const vault = getVaultPublicKey(owner);
@@ -32,7 +38,7 @@ export class QuartzClient extends QuartzClientLight {
32
38
  const [driftUserAccount] = await fetchDriftAccountsUsingKeys(this.connection, this.driftClient.program, [getDriftUserPublicKey(vault)]);
33
39
  if (!driftUserAccount)
34
40
  throw Error("Drift user not found");
35
- return new QuartzUser(owner, this.connection, this.program, this.quartzLookupTable, this.oracles, this.driftClient, driftUserAccount);
41
+ return new QuartzUser(owner, this.connection, this.program, this.quartzLookupTable, this.driftClient, driftUserAccount);
36
42
  }
37
43
  async getMultipleQuartzAccounts(owners) {
38
44
  if (owners.length === 0)
@@ -54,7 +60,7 @@ export class QuartzClient extends QuartzClientLight {
54
60
  return null;
55
61
  if (owners[index] === undefined)
56
62
  throw Error("Missing pubkey in owners array");
57
- return new QuartzUser(owners[index], this.connection, this.program, this.quartzLookupTable, this.oracles, this.driftClient, driftUser);
63
+ return new QuartzUser(owners[index], this.connection, this.program, this.quartzLookupTable, this.driftClient, driftUser);
58
64
  });
59
65
  }
60
66
  async getDepositRate(spotMarketIndex) {
@@ -97,5 +103,31 @@ export class QuartzClient extends QuartzClientLight {
97
103
  }
98
104
  }, "confirmed");
99
105
  }
106
+ // --- Instructions ---
107
+ async makeInitQuartzUserIxs(owner) {
108
+ const vault = getVaultPublicKey(owner);
109
+ const ix_initUser = await this.program.methods
110
+ .initUser()
111
+ .accounts({
112
+ vault: vault,
113
+ owner: owner,
114
+ systemProgram: SystemProgram.programId,
115
+ })
116
+ .instruction();
117
+ const ix_initVaultDriftAccount = await this.program.methods
118
+ .initDriftAccount()
119
+ .accounts({
120
+ vault: vault,
121
+ owner: owner,
122
+ driftUser: getDriftUserPublicKey(vault),
123
+ driftUserStats: getDriftUserStatsPublicKey(vault),
124
+ driftState: getDriftStatePublicKey(),
125
+ driftProgram: DRIFT_PROGRAM_ID,
126
+ rent: SYSVAR_RENT_PUBKEY,
127
+ systemProgram: SystemProgram.programId,
128
+ })
129
+ .instruction();
130
+ return [ix_initUser, ix_initVaultDriftAccount];
131
+ }
100
132
  }
101
133
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { Connection, TransactionInstruction } from "@solana/web3.js";
3
3
  import { type Quartz } from "./types/idl/quartz.js";
4
4
  import type { AddressLookupTableAccount } from "@solana/web3.js";
5
5
  import type { PublicKey } from "@solana/web3.js";
6
- import { QuartzUserLight } from "./userLight.js";
6
+ import { QuartzUserLight } from "./userLights.js";
7
7
  import { DummyWallet } from "./types/classes/dummyWallet.class.js";
8
8
  export declare class QuartzClientLight {
9
9
  protected connection: Connection;
@@ -1 +1 @@
1
- {"version":3,"file":"clientLight.d.ts","sourceRoot":"","sources":["../src/clientLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAe,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAInE,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACvD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAGtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,EAC7C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;WAQf,gBAAgB,CAChC,UAAU,EAAE,UAAU;qBAqBH,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAWlE,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA4B1E,+BAA+B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAM7D,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe;CASnE"}
1
+ {"version":3,"file":"clientLight.d.ts","sourceRoot":"","sources":["../src/clientLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAe,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAInE,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACvD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAGtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,EAC7C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;WAQf,gBAAgB,CAChC,UAAU,EAAE,UAAU;qBAqBH,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAWlE,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA4B1E,+BAA+B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAM7D,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe;CASnE"}
@@ -1,11 +1,15 @@
1
1
  import { AnchorProvider, Program, setProvider } from "@coral-xyz/anchor";
2
2
  import { IDL } from "./types/idl/quartz.js";
3
- import { getDriftUserPublicKey, getVaultPublicKey, getDriftUserStatsPublicKey, getDriftStatePublicKey } from "./utils/helpers.js";
3
+ import { getDriftUserPublicKey, getVaultPublicKey } from "./utils/helpers.js";
4
+ import { getDriftUserStatsPublicKey } from "./utils/helpers.js";
4
5
  import { Keypair, SystemProgram } from "@solana/web3.js";
5
6
  import { SYSVAR_RENT_PUBKEY } from "@solana/web3.js";
6
- import { QuartzUserLight } from "./userLight.js";
7
+ import { DRIFT_PROGRAM_ID } from "@drift-labs/sdk";
8
+ import { getDriftStatePublicKey } from "./utils/helpers.js";
9
+ import { QuartzUserLight } from "./userLights.js";
10
+ import { QUARTZ_ADDRESS_TABLE } from "./config/constants.js";
7
11
  import { DummyWallet } from "./types/classes/dummyWallet.class.js";
8
- import { QUARTZ_PROGRAM_ID, DRIFT_PROGRAM_ID, QUARTZ_ADDRESS_TABLE } from "./config/constants.js";
12
+ import { QUARTZ_PROGRAM_ID } from "./config/constants.js";
9
13
  import { PythSolanaReceiver } from "@pythnetwork/pyth-solana-receiver";
10
14
  export class QuartzClientLight {
11
15
  connection;
@@ -1 +1 @@
1
- {"version":3,"file":"clientLight.js","sourceRoot":"","sources":["../src/clientLight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientLight.js","sourceRoot":"","sources":["../src/clientLight.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,6 @@ import { PublicKey } from "@solana/web3.js";
2
2
  export declare const QUARTZ_PROGRAM_ID: PublicKey;
3
3
  export declare const QUARTZ_ADDRESS_TABLE: PublicKey;
4
4
  export declare const DRIFT_PROGRAM_ID: PublicKey;
5
+ export declare const PYTH_ORACLE_PROGRAM_ID: PublicKey;
5
6
  export declare const QUARTZ_HEALTH_BUFFER = 10;
6
- export declare const USDC_MINT: PublicKey;
7
- export declare const WSOL_MINT: PublicKey;
8
- export declare const DRIFT_MARKET_INDEX_USDC = 0;
9
- export declare const DRIFT_MARKET_INDEX_SOL = 1;
10
- export declare const SUPPORTED_DRIFT_MARKETS: readonly [0, 1];
11
- export declare const DRIFT_ORACLE_1: PublicKey;
12
- export declare const DRIFT_ORACLE_2: PublicKey;
13
- export declare const DRIFT_SPOT_MARKET_SOL: PublicKey;
14
- export declare const DRIFT_SPOT_MARKET_USDC: PublicKey;
15
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAAgE,CAAC;AAC/F,eAAO,MAAM,oBAAoB,WAAgE,CAAC;AAElG,eAAO,MAAM,gBAAgB,WAA+D,CAAC;AAE7F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,SAAS,WAAgE,CAAC;AACvF,eAAO,MAAM,SAAS,WAA+D,CAAC;AAEtF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,iBAA6D,CAAC;AAElG,eAAO,MAAM,cAAc,WAAgE,CAAC;AAC5F,eAAO,MAAM,cAAc,WAAgE,CAAC;AAC5F,eAAO,MAAM,qBAAqB,WAAgE,CAAC;AACnG,eAAO,MAAM,sBAAsB,WAAgE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,WAAgE,CAAC;AAC/F,eAAO,MAAM,oBAAoB,WAAgE,CAAC;AAElG,eAAO,MAAM,gBAAgB,WAA+D,CAAC;AAC7F,eAAO,MAAM,sBAAsB,WAA+D,CAAC;AAEnG,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
@@ -2,14 +2,6 @@ import { PublicKey } from "@solana/web3.js";
2
2
  export const QUARTZ_PROGRAM_ID = new PublicKey("6JjHXLheGSNvvexgzMthEcgjkcirDrGduc3HAKB2P1v2");
3
3
  export const QUARTZ_ADDRESS_TABLE = new PublicKey("96BmeKKVGX3LKYSKo3FCEom1YpNY11kCnGscKq6ouxLx");
4
4
  export const DRIFT_PROGRAM_ID = new PublicKey("dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH");
5
+ export const PYTH_ORACLE_PROGRAM_ID = new PublicKey("pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT");
5
6
  export const QUARTZ_HEALTH_BUFFER = 10;
6
- export const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
7
- export const WSOL_MINT = new PublicKey("So11111111111111111111111111111111111111112");
8
- export const DRIFT_MARKET_INDEX_USDC = 0;
9
- export const DRIFT_MARKET_INDEX_SOL = 1;
10
- export const SUPPORTED_DRIFT_MARKETS = [DRIFT_MARKET_INDEX_USDC, DRIFT_MARKET_INDEX_SOL];
11
- export const DRIFT_ORACLE_1 = new PublicKey("En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce");
12
- export const DRIFT_ORACLE_2 = new PublicKey("BAtFj4kQttZRVep3UZS2aZRDixkGYgWsbqTBVDbnSsPF");
13
- export const DRIFT_SPOT_MARKET_SOL = new PublicKey("3x85u7SWkmmr7YQGYhtjARgxwegTLJgkSLRprfXod6rh");
14
- export const DRIFT_SPOT_MARKET_USDC = new PublicKey("6gMq3mRCKf8aP3ttTyYhuijVZ2LGi14oDsBbkgubfLB3");
15
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;AAEtF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,uBAAuB,EAAE,sBAAsB,CAAU,CAAC;AAElG,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Token } from "../types/interfaces/token.interface.js";
2
+ export declare const MarketIndex: readonly [1, 0, 5, 22, 28];
3
+ export type MarketIndex = (typeof MarketIndex)[number];
4
+ export declare const TOKENS: Record<MarketIndex, Token>;
5
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/config/tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAEpE,eAAO,MAAM,WAAW,4BAEd,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CA+B7C,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export const MarketIndex = [
3
+ 1, 0, 5, 22, 28
4
+ ];
5
+ export const TOKENS = {
6
+ 1: {
7
+ name: "SOL",
8
+ mint: new PublicKey("So11111111111111111111111111111111111111112"),
9
+ pythPriceFeedId: "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
10
+ decimalPrecision: 9,
11
+ },
12
+ 0: {
13
+ name: "USDC",
14
+ mint: new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
15
+ pythPriceFeedId: "0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
16
+ decimalPrecision: 6,
17
+ },
18
+ 5: {
19
+ name: "USDT",
20
+ mint: new PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),
21
+ pythPriceFeedId: "0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
22
+ decimalPrecision: 6,
23
+ },
24
+ 22: {
25
+ name: "PYUSD",
26
+ mint: new PublicKey("2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo"),
27
+ pythPriceFeedId: "0xc1da1b73d7f01e7ddd54b3766cf7fcd644395ad14f70aa706ec5384c59e76692",
28
+ decimalPrecision: 6,
29
+ },
30
+ 28: {
31
+ name: "USDS",
32
+ mint: new PublicKey("USDSwr9ApdHk5bvJKMjzff41FfuX8bSxdKcR81vTwcA"),
33
+ pythPriceFeedId: "0x77f0971af11cc8bac224917275c1bf55f2319ed5c654a1ca955c82fa2d297ea1",
34
+ decimalPrecision: 6,
35
+ }
36
+ };
37
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/config/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;CACT,CAAC;AAGX,MAAM,CAAC,MAAM,MAAM,GAA+B;IAC9C,CAAC,EAAE;QACC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAI,SAAS,CAAC,6CAA6C,CAAC;QAClE,eAAe,EAAE,oEAAoE;QACrF,gBAAgB,EAAE,CAAC;KACtB;IACD,CAAC,EAAE;QACC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;QACnE,eAAe,EAAE,oEAAoE;QACrF,gBAAgB,EAAE,CAAC;KACtB;IACD,CAAC,EAAE;QACC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;QACnE,eAAe,EAAE,oEAAoE;QACrF,gBAAgB,EAAE,CAAC;KACtB;IACD,EAAE,EAAE;QACA,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;QACnE,eAAe,EAAE,oEAAoE;QACrF,gBAAgB,EAAE,CAAC;KACtB;IACD,EAAE,EAAE;QACA,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,SAAS,CAAC,6CAA6C,CAAC;QAClE,eAAe,EAAE,oEAAoE;QACrF,gBAAgB,EAAE,CAAC;KACtB;CACJ,CAAC"}
@@ -1,8 +1,6 @@
1
- export type { BN } from "bn.js";
2
- export { QuartzClientLight } from "./clientLight.js";
3
- export { QuartzUserLight } from "./userLight.js";
1
+ import BN from "bn.js";
2
+ export { BN };
4
3
  export * from "./config/constants.js";
4
+ export * from "./config/tokens.js";
5
5
  export * from "./utils/helpers.js";
6
- import type { Wallet } from "@coral-xyz/anchor/dist/cjs/provider.js";
7
- export type { Wallet };
8
6
  //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AACrE,YAAY,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,EAAE,EAAE,CAAC;AACd,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1,5 +1,6 @@
1
- export { QuartzClientLight } from "./clientLight.js";
2
- export { QuartzUserLight } from "./userLight.js";
1
+ import BN from "bn.js";
2
+ export { BN };
3
3
  export * from "./config/constants.js";
4
+ export * from "./config/tokens.js";
4
5
  export * from "./utils/helpers.js";
5
6
  //# sourceMappingURL=index.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,EAAE,EAAE,CAAC;AACd,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- export type { BN } from "bn.js";
1
+ export * from "./index.browser.js";
2
+ export { DummyWallet } from "./types/classes/dummyWallet.class.js";
2
3
  export { QuartzClient } from "./client.js";
3
4
  export { QuartzUser } from "./user.js";
4
- export * from "./config/constants.js";
5
- export * from "./utils/helpers.js";
6
- export { Wallet } from "@coral-xyz/anchor";
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
+ export * from "./index.browser.js";
2
+ export { DummyWallet } from "./types/classes/dummyWallet.class.js";
1
3
  export { QuartzClient } from "./client.js";
2
4
  export { QuartzUser } from "./user.js";
3
- export * from "./config/constants.js";
4
- export * from "./utils/helpers.js";
5
- export { Wallet } from "@coral-xyz/anchor";
6
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { DriftClient, Wallet } from "@drift-labs/sdk";
2
2
  import { Keypair } from "@solana/web3.js";
3
- import { SUPPORTED_DRIFT_MARKETS } from "../config/constants.js";
3
+ import { MarketIndex, } from "../config/tokens.js";
4
4
  export class DriftClientService {
5
5
  static instance;
6
6
  driftClient;
@@ -13,7 +13,7 @@ export class DriftClientService {
13
13
  env: 'mainnet-beta',
14
14
  userStats: false,
15
15
  perpMarketIndexes: [],
16
- spotMarketIndexes: [...SUPPORTED_DRIFT_MARKETS],
16
+ spotMarketIndexes: [...MarketIndex],
17
17
  accountSubscription: {
18
18
  type: 'websocket',
19
19
  commitment: "confirmed"
@@ -1 +1 @@
1
- {"version":3,"file":"driftClientService.js","sourceRoot":"","sources":["../../src/services/driftClientService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,kBAAkB;IACnB,MAAM,CAAC,QAAQ,CAAqB;IACpC,WAAW,CAAc;IACzB,sBAAsB,CAAmB;IAEjD,YACI,UAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YAC/B,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,cAAc;YACnB,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,CAAC,GAAG,uBAAuB,CAAC;YAC/C,mBAAmB,EAAE;gBACjB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,WAAW;aAC1B;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAsB;QACrD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAC/B,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACzD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnD,CAAC;CACJ"}
1
+ {"version":3,"file":"driftClientService.js","sourceRoot":"","sources":["../../src/services/driftClientService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,GAAG,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,kBAAkB;IACnB,MAAM,CAAC,QAAQ,CAAqB;IACpC,WAAW,CAAc;IACzB,sBAAsB,CAAmB;IAEjD,YACI,UAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YAC/B,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,cAAc;YACnB,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,CAAC,GAAG,WAAW,CAAC;YACnC,mBAAmB,EAAE;gBACjB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,WAAW;aAC1B;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAsB;QACrD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAC/B,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACzD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnD,CAAC;CACJ"}
@@ -1,14 +1,16 @@
1
1
  import { BN, type DriftClient, type MarginCategory, type UserAccount } from "@drift-labs/sdk";
2
- import type { Connection, PublicKey } from "@solana/web3.js";
2
+ import type { PublicKey } from "@solana/web3.js";
3
+ import type { AccountMeta } from "../interfaces/accountMeta.interface.js";
4
+ import type { MarketIndex } from "../../config/tokens.js";
3
5
  export declare class DriftUser {
4
6
  private authority;
5
- private connection;
6
7
  private driftClient;
7
8
  private userAccount;
8
9
  pubkey: PublicKey;
9
10
  statsPubkey: PublicKey;
10
- constructor(authority: PublicKey, connection: Connection, driftClient: DriftClient, userAccount: UserAccount);
11
+ constructor(authority: PublicKey, driftClient: DriftClient, userAccount: UserAccount);
11
12
  getDriftUserAccount(): UserAccount;
13
+ getRemainingAccounts(marketIndex: MarketIndex): AccountMeta[];
12
14
  getHealth(): number;
13
15
  getTokenAmount(marketIndex: number): BN;
14
16
  getWithdrawalLimit(marketIndex: number, reduceOnly?: boolean, adjustForAutoRepayLimit?: boolean): BN;
@@ -1 +1 @@
1
- {"version":3,"file":"driftUser.class.d.ts","sourceRoot":"","sources":["../../../src/types/classes/driftUser.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,EAAE,EAAiT,KAAK,WAAW,EAA0J,KAAK,cAAc,EAAsL,KAAK,WAAW,EAA0D,MAAM,iBAAiB,CAAC;AACn0B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI7D,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,WAAW,CAA0B;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;gBAGvB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EAC9B,WAAW,EAAE,WAAW;IAWlB,mBAAmB,IAAI,WAAW;IAK/B,SAAS,IAAI,MAAM;IAyBnB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,EAAE;IAuB1C,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,uBAAuB,UAAQ,GAAG,EAAE;IAiFzG,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,uBAAuB;IA2D5B,OAAO,CAAC,iBAAiB;IASlB,uBAAuB,CAChC,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,UAAQ,EACd,iBAAiB,UAAO,GACtB,EAAE;IAWF,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mCAAmC;IA+L3C,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,gBAAgB;IAiFxB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,2BAA2B;IAsMnC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;IAKlB,+BAA+B,IAAI,EAAE;IAc5C,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,sCAAsC;IAqH9C,OAAO,CAAC,2BAA2B;CAkBtC"}
1
+ {"version":3,"file":"driftUser.class.d.ts","sourceRoot":"","sources":["../../../src/types/classes/driftUser.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,EAAE,EAAiT,KAAK,WAAW,EAA0J,KAAK,cAAc,EAAsL,KAAK,WAAW,EAA0D,MAAM,iBAAiB,CAAC;AACn0B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,WAAW,CAA0B;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;gBAGvB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EAC9B,WAAW,EAAE,WAAW;IAUlB,mBAAmB,IAAI,WAAW;IAKlC,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE;IAe1D,SAAS,IAAI,MAAM;IAyBnB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,EAAE;IAuB1C,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,uBAAuB,UAAQ,GAAG,EAAE;IA2EzG,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,uBAAuB;IA2D5B,OAAO,CAAC,iBAAiB;IASlB,uBAAuB,CAChC,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,UAAQ,EACd,iBAAiB,UAAO,GACtB,EAAE;IAWF,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mCAAmC;IA+L3C,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,gBAAgB;IAiFxB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,2BAA2B;IAsMnC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;IAKlB,+BAA+B,IAAI,EAAE;IAc5C,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,sCAAsC;IAqH9C,OAAO,CAAC,2BAA2B;CAkBtC"}
@@ -3,14 +3,12 @@ import { getDriftUserPublicKey, getDriftUserStatsPublicKey } from "../../utils/h
3
3
  import { QUARTZ_HEALTH_BUFFER } from "../../config/constants.js";
4
4
  export class DriftUser {
5
5
  authority;
6
- connection;
7
6
  driftClient;
8
7
  userAccount;
9
8
  pubkey;
10
9
  statsPubkey;
11
- constructor(authority, connection, driftClient, userAccount) {
10
+ constructor(authority, driftClient, userAccount) {
12
11
  this.authority = authority;
13
- this.connection = connection;
14
12
  this.driftClient = driftClient;
15
13
  this.pubkey = getDriftUserPublicKey(this.authority);
16
14
  this.statsPubkey = getDriftUserStatsPublicKey(this.authority);
@@ -21,6 +19,19 @@ export class DriftUser {
21
19
  throw new Error("DriftUser not initialized");
22
20
  return this.userAccount;
23
21
  }
22
+ getRemainingAccounts(marketIndex) {
23
+ const remainingAccounts = this.driftClient.getRemainingAccounts({
24
+ userAccounts: [this.getDriftUserAccount()],
25
+ useMarketLastSlotCache: true,
26
+ writableSpotMarketIndexes: [marketIndex],
27
+ readableSpotMarketIndexes: [QUOTE_SPOT_MARKET_INDEX]
28
+ });
29
+ const spotMarketAccount = this.driftClient.getSpotMarketAccount(marketIndex);
30
+ if (!spotMarketAccount)
31
+ throw new Error("Spot market not found");
32
+ this.driftClient.addTokenMintToRemainingAccounts(spotMarketAccount, remainingAccounts);
33
+ return remainingAccounts;
34
+ }
24
35
  getHealth() {
25
36
  if (this.isBeingLiquidated())
26
37
  return 0;
@@ -53,7 +64,7 @@ export class DriftUser {
53
64
  throw new Error("Spot market not found");
54
65
  // eslint-disable-next-line prefer-const
55
66
  let { borrowLimit, withdrawLimit } = calculateWithdrawLimit(spotMarket, nowTs);
56
- const freeCollateral = this.getFreeCollateral("Initial");
67
+ const freeCollateral = this.getFreeCollateral("Initial", adjustForAutoRepayLimit);
57
68
  const initialMarginRequirement = this.getMarginRequirement('Initial', undefined, false, true);
58
69
  const oracleData = this.driftClient.getOracleDataForSpotMarket(marketIndex);
59
70
  const precisionIncrease = TEN.pow(new BN(spotMarket.decimals - 6));
@@ -79,22 +90,22 @@ export class DriftUser {
79
90
  const freeCollatAfterWithdraw = userDepositAmount.gt(ZERO)
80
91
  ? freeCollateral.sub(weightedAssetValue)
81
92
  : freeCollateral;
82
- const borrowLimitScale = adjustForAutoRepayLimit
83
- ? new BN(100 - QUARTZ_HEALTH_BUFFER)
84
- : new BN(100);
85
93
  const maxLiabilityAllowed = freeCollatAfterWithdraw
86
94
  .mul(MARGIN_PRECISION)
87
95
  .div(new BN(spotMarket.initialLiabilityWeight))
88
96
  .mul(PRICE_PRECISION)
89
97
  .div(oracleData.price)
90
- .mul(precisionIncrease)
91
- .mul(borrowLimitScale)
92
- .div(new BN(100));
98
+ .mul(precisionIncrease);
93
99
  const maxBorrowValue = BN.min(maxWithdrawValue.add(maxLiabilityAllowed), borrowLimit.abs());
94
100
  return BN.max(maxBorrowValue, ZERO);
95
101
  }
96
- getFreeCollateral(marginCategory = 'Initial') {
97
- const totalCollateral = this.getTotalCollateralValue(marginCategory, true);
102
+ getFreeCollateral(marginCategory = 'Initial', adjustForAutoRepayLimit = false) {
103
+ const borrowLimitScale = adjustForAutoRepayLimit
104
+ ? new BN(100 - QUARTZ_HEALTH_BUFFER)
105
+ : new BN(100);
106
+ const totalCollateral = this.getTotalCollateralValue(marginCategory, true)
107
+ .mul(borrowLimitScale)
108
+ .div(new BN(100));
98
109
  const marginRequirement = marginCategory === 'Initial'
99
110
  ? this.getMarginRequirement('Initial', undefined, false, true)
100
111
  : this.getMaintenanceMarginRequirement();