@hawksightco/hawk-sdk 1.1.3 → 1.1.4-8.11

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 (99) hide show
  1. package/dist/src/addresses.d.ts +2 -1
  2. package/dist/src/addresses.d.ts.map +1 -1
  3. package/dist/src/addresses.js +3 -1
  4. package/dist/src/anchor.d.ts +113 -2
  5. package/dist/src/anchor.d.ts.map +1 -1
  6. package/dist/src/anchor.js +33 -1
  7. package/dist/src/classes/Atomicity.d.ts +34 -0
  8. package/dist/src/classes/Atomicity.d.ts.map +1 -0
  9. package/dist/src/classes/Atomicity.js +110 -0
  10. package/dist/src/classes/CreateTxMetadata.d.ts +16 -1
  11. package/dist/src/classes/CreateTxMetadata.d.ts.map +1 -1
  12. package/dist/src/classes/CreateTxMetadata.js +115 -6
  13. package/dist/src/classes/General.d.ts +16 -1
  14. package/dist/src/classes/General.d.ts.map +1 -1
  15. package/dist/src/classes/General.js +32 -0
  16. package/dist/src/classes/HawkAPI.d.ts +29 -0
  17. package/dist/src/classes/HawkAPI.d.ts.map +1 -1
  18. package/dist/src/classes/HawkAPI.js +35 -0
  19. package/dist/src/classes/JupiterAlts.d.ts +37 -0
  20. package/dist/src/classes/JupiterAlts.d.ts.map +1 -0
  21. package/dist/src/classes/JupiterAlts.js +104 -0
  22. package/dist/src/classes/JupiterSwap.d.ts +19 -0
  23. package/dist/src/classes/JupiterSwap.d.ts.map +1 -0
  24. package/dist/src/classes/JupiterSwap.js +37 -0
  25. package/dist/src/classes/Logging.d.ts +13 -0
  26. package/dist/src/classes/Logging.d.ts.map +1 -0
  27. package/dist/src/classes/Logging.js +51 -0
  28. package/dist/src/classes/MultiTransaction.d.ts +75 -0
  29. package/dist/src/classes/MultiTransaction.d.ts.map +1 -0
  30. package/dist/src/classes/MultiTransaction.js +286 -0
  31. package/dist/src/classes/SimpleIxGenerator.d.ts +24 -0
  32. package/dist/src/classes/SimpleIxGenerator.d.ts.map +1 -0
  33. package/dist/src/classes/SimpleIxGenerator.js +29 -0
  34. package/dist/src/classes/Transaction.d.ts +42 -13
  35. package/dist/src/classes/Transaction.d.ts.map +1 -1
  36. package/dist/src/classes/Transaction.js +37 -15
  37. package/dist/src/classes/Transaction2.d.ts +107 -0
  38. package/dist/src/classes/Transaction2.d.ts.map +1 -0
  39. package/dist/src/classes/Transaction2.js +239 -0
  40. package/dist/src/classes/Transaction3.d.ts +165 -0
  41. package/dist/src/classes/Transaction3.d.ts.map +1 -0
  42. package/dist/src/classes/Transaction3.js +406 -0
  43. package/dist/src/classes/TransactionBatchExecute.d.ts +163 -0
  44. package/dist/src/classes/TransactionBatchExecute.d.ts.map +1 -0
  45. package/dist/src/classes/TransactionBatchExecute.js +456 -0
  46. package/dist/src/classes/TransactionBatchExecute2.d.ts +99 -0
  47. package/dist/src/classes/TransactionBatchExecute2.d.ts.map +1 -0
  48. package/dist/src/classes/TransactionBatchExecute2.js +347 -0
  49. package/dist/src/classes/Transactions.d.ts +51 -2
  50. package/dist/src/classes/Transactions.d.ts.map +1 -1
  51. package/dist/src/classes/Transactions.js +320 -54
  52. package/dist/src/classes/TxGenerator.d.ts +29 -2
  53. package/dist/src/classes/TxGenerator.d.ts.map +1 -1
  54. package/dist/src/classes/TxGenerator.js +121 -5
  55. package/dist/src/classes/TxGeneratorAutomations.d.ts +23 -2
  56. package/dist/src/classes/TxGeneratorAutomations.d.ts.map +1 -1
  57. package/dist/src/classes/TxGeneratorAutomations.js +72 -0
  58. package/dist/src/classes/Util.d.ts +22 -0
  59. package/dist/src/classes/Util.d.ts.map +1 -1
  60. package/dist/src/classes/Util.js +33 -0
  61. package/dist/src/functions.d.ts +61 -4
  62. package/dist/src/functions.d.ts.map +1 -1
  63. package/dist/src/functions.js +237 -3
  64. package/dist/src/hawksight.d.ts +13 -1
  65. package/dist/src/hawksight.d.ts.map +1 -1
  66. package/dist/src/hawksight.js +51 -1
  67. package/dist/src/hsToMeteora.d.ts +7 -1
  68. package/dist/src/hsToMeteora.d.ts.map +1 -1
  69. package/dist/src/hsToMeteora.js +542 -30
  70. package/dist/src/idl/iyf-extension-idl.d.ts +6599 -4221
  71. package/dist/src/idl/iyf-extension-idl.d.ts.map +1 -1
  72. package/dist/src/idl/iyf-extension-idl.js +6632 -4260
  73. package/dist/src/idl/iyf-main-idl.d.ts +244 -5
  74. package/dist/src/idl/iyf-main-idl.d.ts.map +1 -1
  75. package/dist/src/idl/iyf-main-idl.js +244 -5
  76. package/dist/src/idl/meteora-idl.d.ts +5251 -0
  77. package/dist/src/idl/meteora-idl.d.ts.map +1 -0
  78. package/dist/src/idl/meteora-idl.js +5252 -0
  79. package/dist/src/index.d.ts +2 -0
  80. package/dist/src/index.d.ts.map +1 -1
  81. package/dist/src/index.js +4 -1
  82. package/dist/src/ixGenerator/IyfExtensionIxGenerator.d.ts +26 -0
  83. package/dist/src/ixGenerator/IyfExtensionIxGenerator.d.ts.map +1 -0
  84. package/dist/src/ixGenerator/IyfExtensionIxGenerator.js +71 -0
  85. package/dist/src/ixGenerator/IyfMainIxGenerator.d.ts +71 -0
  86. package/dist/src/ixGenerator/IyfMainIxGenerator.d.ts.map +1 -0
  87. package/dist/src/ixGenerator/IyfMainIxGenerator.js +218 -0
  88. package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.d.ts +49 -0
  89. package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.d.ts.map +1 -0
  90. package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.js +272 -0
  91. package/dist/src/meteora.d.ts +230 -2
  92. package/dist/src/meteora.d.ts.map +1 -1
  93. package/dist/src/meteora.js +708 -15
  94. package/dist/src/orca.d.ts +0 -1
  95. package/dist/src/orca.d.ts.map +1 -1
  96. package/dist/src/types.d.ts +61 -15
  97. package/dist/src/types.d.ts.map +1 -1
  98. package/dist/src/types.js +31 -5
  99. package/package.json +2 -2
@@ -1,4 +1,3 @@
1
- /// <reference types="@meteora-ag/dlmm/node_modules/@solana/web3.js" />
2
1
  import * as web3 from "@solana/web3.js";
3
2
  export declare const GLOBAL_ALT: string[];
4
3
  export declare const IYF_MAIN: web3.PublicKey;
@@ -11,8 +10,10 @@ export declare const SITE_FEE_OWNER: web3.PublicKey;
11
10
  export declare const USDC_FARM: web3.PublicKey;
12
11
  export declare const SOME_METEORA_DLMM_POOL: web3.PublicKey;
13
12
  export declare const METEORA_DLMM_PROGRAM: web3.PublicKey;
13
+ export declare const METEORA_EVENT_AUTHORITY: web3.PublicKey;
14
14
  export declare const COMPUTE_BUDGET: web3.PublicKey;
15
15
  export declare const HS_AUTHORITY: web3.PublicKey;
16
16
  export declare const ORCA_WHIRLPOOL_PROGRAM: web3.PublicKey;
17
17
  export declare const WSOL_MINT: web3.PublicKey;
18
+ export declare const JUPITER_PROGRAM: web3.PublicKey;
18
19
  //# sourceMappingURL=addresses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/addresses.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAExC,eAAO,MAAM,UAAU,UAYtB,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAqE,CAAC;AAC3F,eAAO,MAAM,aAAa,gBAAqE,CAAC;AAChG,eAAO,MAAM,YAAY,gBAAqE,CAAC;AAC/F,eAAO,MAAM,YAAY,gBAAqE,CAAC;AAC/F,eAAO,MAAM,gBAAgB,gBAAoE,CAAC;AAClG,eAAO,MAAM,wBAAwB,gBAAqE,CAAC;AAC3G,eAAO,MAAM,cAAc,gBAAqE,CAAC;AACjG,eAAO,MAAM,SAAS,gBAAqE,CAAC;AAC5F,eAAO,MAAM,sBAAsB,gBAAqE,CAAC;AACzG,eAAO,MAAM,oBAAoB,gBAAoE,CAAC;AACtG,eAAO,MAAM,cAAc,gBAAoE,CAAC;AAChG,eAAO,MAAM,YAAY,gBAAoE,CAAC;AAC9F,eAAO,MAAM,sBAAsB,gBAAoE,CAAC;AACxG,eAAO,MAAM,SAAS,gBAAoE,CAAC"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAExC,eAAO,MAAM,UAAU,UAYtB,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAqE,CAAC;AAC3F,eAAO,MAAM,aAAa,gBAAqE,CAAC;AAChG,eAAO,MAAM,YAAY,gBAAqE,CAAC;AAC/F,eAAO,MAAM,YAAY,gBAAqE,CAAC;AAC/F,eAAO,MAAM,gBAAgB,gBAAoE,CAAC;AAClG,eAAO,MAAM,wBAAwB,gBAAqE,CAAC;AAC3G,eAAO,MAAM,cAAc,gBAAqE,CAAC;AACjG,eAAO,MAAM,SAAS,gBAAqE,CAAC;AAC5F,eAAO,MAAM,sBAAsB,gBAAqE,CAAC;AACzG,eAAO,MAAM,oBAAoB,gBAAoE,CAAC;AACtG,eAAO,MAAM,uBAAuB,gBAAqE,CAAC;AAC1G,eAAO,MAAM,cAAc,gBAAoE,CAAC;AAChG,eAAO,MAAM,YAAY,gBAAoE,CAAC;AAC9F,eAAO,MAAM,sBAAsB,gBAAoE,CAAC;AACxG,eAAO,MAAM,SAAS,gBAAoE,CAAC;AAC3F,eAAO,MAAM,eAAe,gBAAoE,CAAC"}
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.WSOL_MINT = exports.ORCA_WHIRLPOOL_PROGRAM = exports.HS_AUTHORITY = exports.COMPUTE_BUDGET = exports.METEORA_DLMM_PROGRAM = exports.SOME_METEORA_DLMM_POOL = exports.USDC_FARM = exports.SITE_FEE_OWNER = exports.ASSOCIATED_TOKEN_PROGRAM = exports.TOKEN_PROGRAM_ID = exports.STABLEMINT_2 = exports.STABLEMINT_1 = exports.IYF_EXTENSION = exports.IYF_MAIN = exports.GLOBAL_ALT = void 0;
26
+ exports.JUPITER_PROGRAM = exports.WSOL_MINT = exports.ORCA_WHIRLPOOL_PROGRAM = exports.HS_AUTHORITY = exports.COMPUTE_BUDGET = exports.METEORA_EVENT_AUTHORITY = exports.METEORA_DLMM_PROGRAM = exports.SOME_METEORA_DLMM_POOL = exports.USDC_FARM = exports.SITE_FEE_OWNER = exports.ASSOCIATED_TOKEN_PROGRAM = exports.TOKEN_PROGRAM_ID = exports.STABLEMINT_2 = exports.STABLEMINT_1 = exports.IYF_EXTENSION = exports.IYF_MAIN = exports.GLOBAL_ALT = void 0;
27
27
  const web3 = __importStar(require("@solana/web3.js"));
28
28
  exports.GLOBAL_ALT = [
29
29
  "AC3t5k5PUTJirxGEHgGGQStafu1vXkvddPyqVNDrRQDt",
@@ -48,7 +48,9 @@ exports.SITE_FEE_OWNER = new web3.PublicKey("4K3a2ucXiGvuMJMPNneRDyzmNp6i4RdzXJm
48
48
  exports.USDC_FARM = new web3.PublicKey("7jLQhREMxXjKdpwVuN6gwsWt3BNfAg9WqbepffPbi4ww");
49
49
  exports.SOME_METEORA_DLMM_POOL = new web3.PublicKey("7eexH14UjhNxJe6zTT3f1Vb1E8iACsBMVaWheDEmxdT2");
50
50
  exports.METEORA_DLMM_PROGRAM = new web3.PublicKey("LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo");
51
+ exports.METEORA_EVENT_AUTHORITY = new web3.PublicKey("D1ZN9Wj1fRSUQfCjhvnu1hqDMT7hzjzBBpi12nVniYD6");
51
52
  exports.COMPUTE_BUDGET = new web3.PublicKey("ComputeBudget111111111111111111111111111111");
52
53
  exports.HS_AUTHORITY = new web3.PublicKey("dche7M2764e8AxNihBdn7uffVzZvTBNeL8x4LZg5E2c");
53
54
  exports.ORCA_WHIRLPOOL_PROGRAM = new web3.PublicKey("whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc");
54
55
  exports.WSOL_MINT = new web3.PublicKey("So11111111111111111111111111111111111111112");
56
+ exports.JUPITER_PROGRAM = new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");
@@ -1,9 +1,118 @@
1
- /// <reference types="@meteora-ag/dlmm/node_modules/@solana/web3.js" />
2
1
  import * as web3 from "@solana/web3.js";
3
2
  import * as anchor from "@coral-xyz/anchor";
4
3
  import { IndexYieldFarming } from "./idl/iyf-main-idl";
5
- import { IyfExtension } from "./idl/iyf-extension-idl";
4
+ import { IyfExtension as IyfExtensionNew } from "./idl/iyf-extension-idl";
6
5
  import { Whirlpool } from "./idl/orca-idl";
6
+ import { LbClmm } from "./idl/meteora-idl";
7
+ type IdlInstruction = {
8
+ name: string;
9
+ docs?: string[];
10
+ accounts: IdlAccountItem[];
11
+ args: IdlField[];
12
+ returns?: IdlType;
13
+ };
14
+ type IdlAccountItem = IdlAccount | IdlAccounts;
15
+ type IdlAccount = {
16
+ name: string;
17
+ isMut: boolean;
18
+ isSigner: boolean;
19
+ isOptional?: boolean;
20
+ docs?: string[];
21
+ relations?: string[];
22
+ pda?: IdlPda;
23
+ };
24
+ type IdlPda = {
25
+ seeds: IdlSeed[];
26
+ programId?: IdlSeed;
27
+ };
28
+ type IdlSeed = any;
29
+ type IdlAccounts = {
30
+ name: string;
31
+ docs?: string[];
32
+ accounts: IdlAccountItem[];
33
+ };
34
+ type IdlField = {
35
+ name: string;
36
+ docs?: string[];
37
+ type: IdlType;
38
+ };
39
+ type IdlType = "bool" | "u8" | "i8" | "u16" | "i16" | "u32" | "i32" | "f32" | "u64" | "i64" | "f64" | "u128" | "i128" | "u256" | "i256" | "bytes" | "string" | "publicKey" | IdlTypeDefined | IdlTypeOption | IdlTypeCOption | IdlTypeVec | IdlTypeArray;
40
+ type IdlTypeDefined = {
41
+ defined: string;
42
+ };
43
+ type IdlTypeOption = {
44
+ option: IdlType;
45
+ };
46
+ type IdlTypeCOption = {
47
+ coption: IdlType;
48
+ };
49
+ type IdlTypeVec = {
50
+ vec: IdlType;
51
+ };
52
+ type IdlTypeArray = {
53
+ array: [idlType: IdlType, size: number];
54
+ };
55
+ type IdlAccountDef = {
56
+ name: string;
57
+ docs?: string[];
58
+ type: IdlTypeDefTyStruct;
59
+ };
60
+ type IdlTypeDefTyStruct = {
61
+ kind: "struct";
62
+ fields: IdlTypeDefStruct;
63
+ };
64
+ type IdlTypeDefStruct = Array<IdlField>;
65
+ type IdlTypeDef = {
66
+ name: string;
67
+ docs?: string[];
68
+ type: IdlTypeDefTy;
69
+ };
70
+ type IdlTypeDefTy = IdlTypeDefTyEnum | IdlTypeDefTyStruct | IdlTypeDefTyAlias;
71
+ type IdlTypeDefTyEnum = {
72
+ kind: "enum";
73
+ variants: IdlEnumVariant[];
74
+ };
75
+ type IdlEnumVariant = {
76
+ name: string;
77
+ fields?: IdlEnumFields;
78
+ };
79
+ type IdlTypeDefTyAlias = {
80
+ kind: "alias";
81
+ value: IdlType;
82
+ };
83
+ type IdlEnumFields = IdlEnumFieldsNamed | IdlEnumFieldsTuple;
84
+ type IdlEnumFieldsNamed = IdlField[];
85
+ type IdlEnumFieldsTuple = IdlType[];
86
+ type Instruction<I extends number> = {
87
+ name: IyfExtensionNew["instructions"][I]["name"];
88
+ accounts: IyfExtensionNew["instructions"][I]["accounts"];
89
+ args: IyfExtensionNew["instructions"][I]["args"];
90
+ } & IdlInstruction;
91
+ type GenerateInstructions<T extends any[], I extends number[] = []> = I["length"] extends T["length"] ? [] : [
92
+ Instruction<I["length"]>,
93
+ ...GenerateInstructions<T, [...I, I["length"]]>
94
+ ];
95
+ type FilteredInstructions = GenerateInstructions<IyfExtensionNew["instructions"]>;
96
+ type FindMatchingType<Name, Types extends any[]> = Types extends Array<infer T> ? T extends {
97
+ name: Name;
98
+ type: infer Type;
99
+ } ? Type : never : never;
100
+ type Account<I extends number> = {
101
+ name: unknown extends IyfExtensionNew["accounts"][I]["name"] ? never : IyfExtensionNew["accounts"][I]["name"];
102
+ type: unknown extends IyfExtensionNew["accounts"][I]["name"] ? never : FindMatchingType<IyfExtensionNew["accounts"][I]["name"], IyfExtensionNew["types"]>;
103
+ } & IdlAccountDef;
104
+ type GenerateAccounts<T extends any[], I extends number[] = []> = I["length"] extends T["length"] ? [] : [
105
+ Account<I["length"]>,
106
+ ...GenerateAccounts<T, [...I, I["length"]]>
107
+ ];
108
+ type FilteredAccounts = GenerateAccounts<IyfExtensionNew["accounts"]>;
109
+ export type IyfExtension = {
110
+ "version": string;
111
+ "name": string;
112
+ "instructions": FilteredInstructions;
113
+ "accounts": FilteredAccounts;
114
+ "types": IyfExtensionNew["types"] & Array<IdlTypeDef>;
115
+ };
7
116
  export declare class Anchor {
8
117
  connection: web3.Connection;
9
118
  private static _instance;
@@ -11,8 +120,10 @@ export declare class Anchor {
11
120
  iyfMain: anchor.Program<IndexYieldFarming>;
12
121
  iyfExtension: anchor.Program<IyfExtension>;
13
122
  orcaProgram: anchor.Program<Whirlpool>;
123
+ meteoraProgram: anchor.Program<LbClmm>;
14
124
  private constructor();
15
125
  static initialize(connection: web3.Connection): void;
16
126
  static instance(): Anchor;
17
127
  }
128
+ export {};
18
129
  //# sourceMappingURL=anchor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAmB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAwB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAqB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ9D,qBAAa,MAAM;IASR,UAAU,EAAE,IAAI,CAAC,UAAU;IAPpC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IACjC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO;IASP,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;IAI7C,MAAM,CAAC,QAAQ,IAAI,MAAM;CAO1B"}
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ const anchor = __importStar(require("@coral-xyz/anchor"));
32
32
  const iyf_main_idl_1 = require("./idl/iyf-main-idl");
33
33
  const iyf_extension_idl_1 = require("./idl/iyf-extension-idl");
34
34
  const orca_idl_1 = require("./idl/orca-idl");
35
+ const meteora_idl_1 = require("./idl/meteora-idl");
35
36
  const nodewallet_1 = __importDefault(require("@coral-xyz/anchor/dist/cjs/nodewallet"));
36
37
  const addresses_1 = require("./addresses");
37
38
  class Anchor {
@@ -39,8 +40,39 @@ class Anchor {
39
40
  this.connection = connection;
40
41
  this.provider = new anchor.AnchorProvider(connection, new nodewallet_1.default(web3.Keypair.generate()), {});
41
42
  this.iyfMain = new anchor.Program(iyf_main_idl_1.IDL, addresses_1.IYF_MAIN, this.provider);
42
- this.iyfExtension = new anchor.Program(iyf_extension_idl_1.IDL, addresses_1.IYF_EXTENSION, this.provider);
43
+ const p = iyf_extension_idl_1.IDL.instructions.map(instruction => {
44
+ return {
45
+ name: instruction.name,
46
+ accounts: [instruction.accounts.map(account => {
47
+ return {
48
+ name: account.name,
49
+ isMut: "writable" in account ? account.writable : false,
50
+ isSigner: "signer" in account ? account.signer : false,
51
+ };
52
+ })],
53
+ args: instruction.args,
54
+ };
55
+ });
56
+ const IyfExtension = {
57
+ version: iyf_extension_idl_1.IDL.metadata.version,
58
+ name: iyf_extension_idl_1.IDL.metadata.name,
59
+ instructions: iyf_extension_idl_1.IDL.instructions.map((instruction, index) => {
60
+ return {
61
+ name: instruction.name,
62
+ accounts: instruction.accounts.map(account => {
63
+ return {
64
+ name: account.name,
65
+ isMut: "writable" in account ? account.writable : false,
66
+ isSigner: "signer" in account ? account.signer : false,
67
+ };
68
+ }),
69
+ args: instruction.args,
70
+ };
71
+ }),
72
+ };
73
+ this.iyfExtension = new anchor.Program(IyfExtension, addresses_1.IYF_EXTENSION, this.provider);
43
74
  this.orcaProgram = new anchor.Program(orca_idl_1.IDL, addresses_1.ORCA_WHIRLPOOL_PROGRAM, this.provider);
75
+ this.meteoraProgram = new anchor.Program(meteora_idl_1.IDL, addresses_1.METEORA_DLMM_PROGRAM, this.provider);
44
76
  }
45
77
  static initialize(connection) {
46
78
  Anchor._instance = new Anchor(connection);
@@ -0,0 +1,34 @@
1
+ import * as web3 from '@solana/web3.js';
2
+ import { DummySigners, TransactionBatchExecute } from "./TransactionBatchExecute";
3
+ import { SimpleIxGenerator } from './SimpleIxGenerator';
4
+ import { JupiterAlts } from './JupiterAlts';
5
+ export declare class Atomicity extends TransactionBatchExecute {
6
+ private ixGenerator;
7
+ /**
8
+ * User wallet
9
+ */
10
+ private userWallet?;
11
+ constructor(lookupTableAddresses: web3.PublicKey[], instructions: web3.TransactionInstruction[], payer: web3.Keypair, connection: web3.Connection, signers: web3.Keypair[] | undefined, jupiterAlts: JupiterAlts, ixGenerator: SimpleIxGenerator);
12
+ /**
13
+ * Set user wallet
14
+ */
15
+ setUserWallet(userWallet: web3.PublicKey): void;
16
+ /**
17
+ * Check whether instruction is an atomicity instruction
18
+ * @param ix
19
+ */
20
+ private isAtomicityIx;
21
+ /**
22
+ * Builds a batch of executable transaction instructions
23
+ */
24
+ buildBatch(): Promise<web3.TransactionInstruction[][]>;
25
+ /**
26
+ * Split transactions
27
+ *
28
+ * @param simulationIxs
29
+ * @param dummySigners
30
+ * @returns
31
+ */
32
+ protected splitToTransactions(simulationIxs: web3.TransactionInstruction[], dummySigners: DummySigners): Promise<web3.TransactionInstruction[][]>;
33
+ }
34
+ //# sourceMappingURL=Atomicity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Atomicity.d.ts","sourceRoot":"","sources":["../../../src/classes/Atomicity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,SAAU,SAAQ,uBAAuB;IAclD,OAAO,CAAC,WAAW;IAZrB;;OAEG;IACH,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAGlC,oBAAoB,EAAE,IAAI,CAAC,SAAS,EAAE,EACtC,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAC3C,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,OAAO,4BAAqB,EAC5B,WAAW,EAAE,WAAW,EAChB,WAAW,EAAE,iBAAiB;IAYxC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS;IAIxC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;IA4B5D;;;;;;OAMG;cACa,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;CAiDxJ"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Atomicity = void 0;
13
+ const TransactionBatchExecute_1 = require("./TransactionBatchExecute");
14
+ const functions_1 = require("../functions");
15
+ class Atomicity extends TransactionBatchExecute_1.TransactionBatchExecute {
16
+ constructor(lookupTableAddresses, instructions, payer, connection, signers = [], jupiterAlts, ixGenerator) {
17
+ super(lookupTableAddresses, instructions, payer, connection, signers, jupiterAlts);
18
+ this.ixGenerator = ixGenerator;
19
+ }
20
+ /**
21
+ * Set user wallet
22
+ */
23
+ setUserWallet(userWallet) {
24
+ this.userWallet = userWallet;
25
+ }
26
+ /**
27
+ * Check whether instruction is an atomicity instruction
28
+ * @param ix
29
+ */
30
+ isAtomicityIx(ix) {
31
+ return ix.data.length >= 8 && (0, functions_1.sighashMatch)(ix.data, "setTransactionSlot") || (0, functions_1.sighashMatch)(ix.data, "verifyTransactionSlot");
32
+ }
33
+ /**
34
+ * Builds a batch of executable transaction instructions
35
+ */
36
+ buildBatch() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ // Download address lookup table from given cluster
39
+ yield this.downloadAlts();
40
+ // Generate dummy instructions for batch calculation
41
+ const [simulationIxs, dummySigners] = this.generateSimulationIxs();
42
+ // Split simulation ixs
43
+ const dummyBatches = yield this.splitToTransactions(simulationIxs, dummySigners);
44
+ // Batch of actual instructions
45
+ const batch = [];
46
+ let index = 0;
47
+ for (const dummyIxs of dummyBatches) {
48
+ const currentBatch = [];
49
+ for (const dummyIx of dummyIxs) {
50
+ if (this.isAtomicityIx(dummyIx)) {
51
+ currentBatch.push(dummyIx);
52
+ }
53
+ else {
54
+ currentBatch.push(this.instructions[index++]);
55
+ }
56
+ }
57
+ batch.push(currentBatch);
58
+ }
59
+ return batch;
60
+ });
61
+ }
62
+ /**
63
+ * Split transactions
64
+ *
65
+ * @param simulationIxs
66
+ * @param dummySigners
67
+ * @returns
68
+ */
69
+ splitToTransactions(simulationIxs, dummySigners) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ // Fetch latest blockhash required to calculate transaction size
72
+ const latestBlockhash = yield this.connection.getLatestBlockhash();
73
+ // User wallet must be set
74
+ if (this.userWallet === undefined) {
75
+ throw new Error(`Atomicity.userWallet is not set`);
76
+ }
77
+ // Generate set transaction slot instruction
78
+ const setTransactionSlotIx = yield this.ixGenerator.iyfMain.setTransactionSlot(this.connection, { userWallet: this.userWallet });
79
+ // Generate verify transaction slot instruction
80
+ const verifyTransactionSlotIx = yield this.ixGenerator.iyfMain.verifyTransactionSlot(this.connection, { userWallet: this.userWallet });
81
+ // Run simulation
82
+ let batch = [];
83
+ let result = [];
84
+ let postIx;
85
+ for (const ix of simulationIxs) {
86
+ // Include dummy ix to transaction
87
+ batch.push(ix);
88
+ // Include setTransactionSlot instruction if result batch is still zero
89
+ if (result.length === 0) {
90
+ postIx = setTransactionSlotIx;
91
+ }
92
+ else {
93
+ postIx = verifyTransactionSlotIx;
94
+ }
95
+ // Calculate transaction size
96
+ const txSize = this.calculateTransactionSize(latestBlockhash, [...batch, postIx], dummySigners);
97
+ if (txSize > this.MAX_SIZE) {
98
+ batch.pop();
99
+ result.push([...batch, postIx]);
100
+ batch = [ix];
101
+ }
102
+ }
103
+ if (batch.length > 0 && simulationIxs.length !== 0) {
104
+ result.push([...batch, postIx]);
105
+ }
106
+ return result;
107
+ });
108
+ }
109
+ }
110
+ exports.Atomicity = Atomicity;
@@ -1,4 +1,3 @@
1
- /// <reference types="@meteora-ag/dlmm/node_modules/@solana/web3.js" />
2
1
  import * as web3 from "@solana/web3.js";
3
2
  import { TransactionMetadata, TransactionMetadataResponse } from "../types";
4
3
  import { GeneralUtility } from "./GeneralUtility";
@@ -47,6 +46,21 @@ export declare class CreateTxMetadata {
47
46
  * @returns A promise that resolves to the address lookup table account or null if it does not exist.
48
47
  */
49
48
  getAlt(alt: string): Promise<web3.AddressLookupTableAccount | null>;
49
+ /**
50
+ * Store address lookup table in the object
51
+ *
52
+ * @param alt
53
+ * @param account
54
+ */
55
+ storeAlt(alt: string, account: web3.AddressLookupTableAccount): void;
56
+ /**
57
+ * String to address lookup table. Can input multiple address lookup table addresses
58
+ *
59
+ * @param connection
60
+ * @param alts
61
+ * @returns
62
+ */
63
+ stringToAlt(alts: string[]): Promise<web3.AddressLookupTableAccount[]>;
50
64
  /**
51
65
  * Asynchronously creates transaction metadata based on the provided transaction parameters and network state.
52
66
  * This includes constructing a transaction with given instructions, calculating fees, and optionally handling priority fees.
@@ -64,5 +78,6 @@ export declare class CreateTxMetadata {
64
78
  * @throws Error if there is an issue in constructing the transaction or during simulation which includes logs of errors.
65
79
  */
66
80
  createTxMetadata(generalUtility: GeneralUtility, connection: web3.Connection, payer: string, data: TransactionMetadataResponse): Promise<TransactionMetadata>;
81
+ createTxMetadata2(generalUtility: GeneralUtility, connection: web3.Connection, payer: string, data: TransactionMetadataResponse): Promise<TransactionMetadata[]>;
67
82
  }
68
83
  //# sourceMappingURL=CreateTxMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateTxMetadata.d.ts","sourceRoot":"","sources":["../../../src/classes/CreateTxMetadata.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,qBAAa,gBAAgB;IAE3B,OAAO;IAEP,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;IAEzC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAmB;IAE3C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,IAAI,gBAAgB;IAOnC,OAAO,CAAC,IAAI,CAaV;IAEF;;OAEG;IACG,IAAI;IAIV;;OAEG;IACG,UAAU;IAUhB;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;IAcvG;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAIzE;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CACpB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,mBAAmB,CAAC;CAyDhC"}
1
+ {"version":3,"file":"CreateTxMetadata.d.ts","sourceRoot":"","sources":["../../../src/classes/CreateTxMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;;GAGG;AACH,qBAAa,gBAAgB;IAE3B,OAAO;IAEP,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;IAEzC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAmB;IAE3C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,IAAI,gBAAgB;IAOnC,OAAO,CAAC,IAAI,CAaV;IAEF;;OAEG;IACG,IAAI;IAIV;;OAEG;IACG,UAAU;IAUhB;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;IAcvG;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAIzE;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB;IAI7D;;;;;;OAMG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IA8B5C;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CACpB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,mBAAmB,CAAC;IA8DzB,iBAAiB,CACrB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAuElC"}
@@ -35,6 +35,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.CreateTxMetadata = void 0;
36
36
  const web3 = __importStar(require("@solana/web3.js"));
37
37
  const Transaction_1 = require("./Transaction");
38
+ const Logging_1 = require("./Logging");
39
+ const TransactionBatchExecute2_1 = require("./TransactionBatchExecute2");
38
40
  /**
39
41
  * The CreateTxMetadata class is responsible for creating and managing transaction metadata,
40
42
  * including handling address lookup tables and constructing transactions with the necessary parameters.
@@ -132,6 +134,55 @@ class CreateTxMetadata {
132
134
  return this.alts[alt];
133
135
  });
134
136
  }
137
+ /**
138
+ * Store address lookup table in the object
139
+ *
140
+ * @param alt
141
+ * @param account
142
+ */
143
+ storeAlt(alt, account) {
144
+ this.alts[alt] = account;
145
+ }
146
+ /**
147
+ * String to address lookup table. Can input multiple address lookup table addresses
148
+ *
149
+ * @param connection
150
+ * @param alts
151
+ * @returns
152
+ */
153
+ stringToAlt(alts) {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ var _a, _b;
156
+ const _alts = [];
157
+ const notExist = [];
158
+ alts.map((key, index) => {
159
+ const alt = this.alts[key];
160
+ if (!!alt) {
161
+ _alts.push(alt);
162
+ }
163
+ else {
164
+ notExist.push(index);
165
+ }
166
+ });
167
+ if (notExist.length === 0) {
168
+ return _alts;
169
+ }
170
+ const pubkeys = notExist.map(index => new web3.PublicKey(alts[index]));
171
+ const accountInfos = yield this.connection.getMultipleAccountsInfo(pubkeys);
172
+ for (let i = 0; i < accountInfos.length; i++) {
173
+ if (((_a = accountInfos[i]) === null || _a === void 0 ? void 0 : _a.data) && ((_b = accountInfos[i]) === null || _b === void 0 ? void 0 : _b.owner.toString()) === "AddressLookupTab1e1111111111111111111111111") {
174
+ const key = pubkeys[i].toString();
175
+ const alt = new web3.AddressLookupTableAccount({
176
+ key: pubkeys[i],
177
+ state: web3.AddressLookupTableAccount.deserialize(accountInfos[i].data)
178
+ });
179
+ this.alts[key] = alt;
180
+ _alts.push(alt);
181
+ }
182
+ }
183
+ return _alts;
184
+ });
185
+ }
135
186
  /**
136
187
  * Asynchronously creates transaction metadata based on the provided transaction parameters and network state.
137
188
  * This includes constructing a transaction with given instructions, calculating fees, and optionally handling priority fees.
@@ -152,12 +203,12 @@ class CreateTxMetadata {
152
203
  return __awaiter(this, void 0, void 0, function* () {
153
204
  // Retrieve address lookup table accounts
154
205
  const alts = [];
155
- console.log(`createTxMetadata`);
206
+ (0, Logging_1.Log)(`createTxMetadata`);
156
207
  const mainStartTime = new Date().getTime() / 1000;
157
208
  // Find jup alts
158
209
  let startTime = mainStartTime;
159
210
  const jupAlts = yield generalUtility.findAltWithTxPost({ transaction: data });
160
- console.log(`createTxMetadata: Checkpoint: (jupAlts) ${(new Date().getTime() / 1000) - startTime}`);
211
+ (0, Logging_1.Log)(`createTxMetadata: Checkpoint: (jupAlts) ${(new Date().getTime() / 1000) - startTime}`);
161
212
  startTime = new Date().getTime() / 1000;
162
213
  for (const alt of data.addressLookupTableAddresses) {
163
214
  const _alt = yield this.getAlt(alt);
@@ -175,21 +226,26 @@ class CreateTxMetadata {
175
226
  alts.push(_alt);
176
227
  }
177
228
  else {
178
- alts.push(yield this.loadSingleAlt(alt, connection));
229
+ try {
230
+ alts.push(yield this.loadSingleAlt(alt, connection));
231
+ }
232
+ catch (_a) {
233
+ console.error(`The ALT from Jupiter: ${alt} does not exist onchain. Skipping.`);
234
+ }
179
235
  }
180
236
  }
181
237
  }
182
238
  else {
183
239
  console.error(jupAlts.data);
184
240
  }
185
- console.log(`createTxMetadata: Checkpoint: (jupAlts after loop) ${(new Date().getTime() / 1000) - startTime}`);
241
+ (0, Logging_1.Log)(`createTxMetadata: Checkpoint: (jupAlts after loop) ${(new Date().getTime() / 1000) - startTime}`);
186
242
  // Get the recent blockhash
187
243
  startTime = new Date().getTime() / 1000;
188
244
  const latestBlockhash = yield connection.getLatestBlockhash();
189
- console.log(`createTxMetadata: Checkpoint: (latestBlockhash) ${(new Date().getTime() / 1000) - startTime}`);
245
+ (0, Logging_1.Log)(`createTxMetadata: Checkpoint: (latestBlockhash) ${(new Date().getTime() / 1000) - startTime}`);
190
246
  // Create initial transaction instance
191
247
  const transaction = new Transaction_1.Transaction(data, new web3.PublicKey(payer), latestBlockhash, alts, generalUtility);
192
- console.log(`createTxMetadata: Elapsed time: ${(new Date().getTime() / 1000) - mainStartTime}`);
248
+ (0, Logging_1.Log)(`createTxMetadata: Elapsed time: ${(new Date().getTime() / 1000) - mainStartTime}`);
193
249
  // Return transaction metadata
194
250
  return {
195
251
  description: data.description,
@@ -198,5 +254,58 @@ class CreateTxMetadata {
198
254
  };
199
255
  });
200
256
  }
257
+ createTxMetadata2(generalUtility, connection, payer, data) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ // Retrieve address lookup table accounts
260
+ const alts = [];
261
+ (0, Logging_1.Log)(`createTxMetadata2`);
262
+ const mainStartTime = new Date().getTime() / 1000;
263
+ // Get the recent blockhash
264
+ let startTime = mainStartTime;
265
+ const latestBlockhash = yield connection.getLatestBlockhash();
266
+ (0, Logging_1.Log)(`createTxMetadata2: Checkpoint: (latestBlockhash) ${(new Date().getTime() / 1000) - startTime}`);
267
+ startTime = new Date().getTime() / 1000;
268
+ const batchExecute = new TransactionBatchExecute2_1.TransactionBatchExecute2(data.addressLookupTableAddresses.map(p => new web3.PublicKey(p)), data.mainInstructions.map(ix => {
269
+ const keys = ix.accounts.map(meta => {
270
+ return {
271
+ pubkey: new web3.PublicKey(meta.pubkey),
272
+ isSigner: meta.isSigner,
273
+ isWritable: meta.isWritable,
274
+ };
275
+ });
276
+ return {
277
+ keys,
278
+ programId: new web3.PublicKey(ix.programId),
279
+ data: Buffer.from(ix.data, 'base64'),
280
+ };
281
+ }), connection, this, latestBlockhash, new web3.PublicKey(payer));
282
+ (0, Logging_1.Log)(`createTxMetadata2: Checkpoint: Create 'batchExecute' instance ${(new Date().getTime() / 1000) - startTime}`);
283
+ startTime = new Date().getTime() / 1000;
284
+ const batch = yield batchExecute.buildBatch();
285
+ (0, Logging_1.Log)(`createTxMetadata2: Checkpoint: Create batch of transactions ${(new Date().getTime() / 1000) - startTime}`);
286
+ (0, Logging_1.Log)(`Number of transactions: ${batch.length}`);
287
+ startTime = new Date().getTime() / 1000;
288
+ const txMetadata = [];
289
+ let i = 0;
290
+ for (const tx of batch) {
291
+ let description = data.description;
292
+ if (batch.length > 1) {
293
+ description = `${description} #${i + 1}`;
294
+ }
295
+ const alts = batchExecute.findRequiredAltsForBatch2(tx);
296
+ // Create initial transaction instance
297
+ const transaction = new Transaction_1.Transaction(data, new web3.PublicKey(payer), latestBlockhash, alts, generalUtility, tx);
298
+ txMetadata.push({
299
+ description,
300
+ estimatedFeeInSOL: data.estimatedFeeInSOL,
301
+ transaction,
302
+ });
303
+ }
304
+ (0, Logging_1.Log)(`createTxMetadata2: Checkpoint: Generated multiple transaction metadata ${(new Date().getTime() / 1000) - startTime}`);
305
+ (0, Logging_1.Log)(`createTxMetadata2: Elapsed time: ${(new Date().getTime() / 1000) - mainStartTime}`);
306
+ // Return transaction metadata
307
+ return txMetadata;
308
+ });
309
+ }
201
310
  }
202
311
  exports.CreateTxMetadata = CreateTxMetadata;
@@ -1,4 +1,3 @@
1
- /// <reference types="@meteora-ag/dlmm/node_modules/@solana/web3.js" />
2
1
  import * as web3 from "@solana/web3.js";
3
2
  import * as _client from "@hawksightco/swagger-client";
4
3
  import { ResponseWithStatus, TransactionMetadata, UserPortfolioOut } from "../types";
@@ -34,6 +33,12 @@ export declare class General {
34
33
  * @param maxPriorityFee The fee in lamports.
35
34
  */
36
35
  setMaxPriorityFee(maxPriorityFee: number): void;
36
+ /**
37
+ * @returns Returns a token supported by Hawksight
38
+ */
39
+ token(params: {
40
+ address: string;
41
+ }): Promise<ResponseWithStatus<_client.InlineResponse200>>;
37
42
  /**
38
43
  * Retrieves the portfolio information for a specified wallet and optionally a pool.
39
44
  *
@@ -53,6 +58,16 @@ export declare class General {
53
58
  pools(params: {
54
59
  hash?: string;
55
60
  }): Promise<ResponseWithStatus<_client.HawksightPool[]>>;
61
+ /**
62
+ * Fetches a single pool either from Orca or Meteora.
63
+ *
64
+ * @param params Object containing hash of the pools
65
+ * @returns A Promise resolving to an array of pools, including metadata such as pool addresses and statistics.
66
+ */
67
+ pool(params: {
68
+ pairAddress: string;
69
+ protocol: string;
70
+ }): Promise<ResponseWithStatus<_client.HawksightPool[]>>;
56
71
  /**
57
72
  * Retrieves information about the available tokens on the platform.
58
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"General.d.ts","sourceRoot":"","sources":["../../../src/classes/General.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAoD,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,OAAO;IAahB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAZjC,4GAA4G;IAC5G,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IAE/C,sGAAsG;IACtG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IAEjC;;;OAGG;gBAEgB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc;IAOjD;;;;OAIG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa;IAIrD;;;;OAIG;IACH,iBAAiB,CAAC,cAAc,EAAE,MAAM;IAIxC;;;;;OAKG;IACG,SAAS,CACb,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GACA,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAQhD;;;;;OAKG;IACG,KAAK,CACT,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GACA,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAQvD;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAQxE;;;;;;;OAOG;IACG,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CAU3I"}
1
+ {"version":3,"file":"General.d.ts","sourceRoot":"","sources":["../../../src/classes/General.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAoD,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;GAKG;AACH,qBAAa,OAAO;IAahB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAZjC,4GAA4G;IAC5G,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IAE/C,sGAAsG;IACtG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IAEjC;;;OAGG;gBAEgB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc;IAOjD;;;;OAIG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa;IAIrD;;;;OAIG;IACH,iBAAiB,CAAC,cAAc,EAAE,MAAM;IAIxC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAQzD;;;;;OAKG;IACG,SAAS,CACb,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GACA,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAQhD;;;;;OAKG;IACG,KAAK,CACT,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GACA,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAQvD;;;;;OAKG;IACG,IAAI,CACR,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAevD;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAQxE;;;;;;;OAOG;IACG,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CAU3I"}