@liquid-af/sdk 0.8.0 → 0.8.2
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/config.d.ts +2 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -4
- package/dist/config.js.map +1 -1
- package/dist/lut.d.ts +6 -18
- package/dist/lut.d.ts.map +1 -1
- package/dist/lut.js +17 -51
- package/dist/lut.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +4 -8
- package/src/lut.ts +20 -59
package/dist/config.d.ts
CHANGED
|
@@ -13,10 +13,8 @@ export interface LiquidConfig {
|
|
|
13
13
|
liquidStateProgramId: PublicKey;
|
|
14
14
|
/** Program ID for the events program */
|
|
15
15
|
liquidEventsProgramId: PublicKey;
|
|
16
|
-
/** Address lookup table
|
|
17
|
-
|
|
18
|
-
/** Address lookup table for liquid (bonding curve) transactions */
|
|
19
|
-
liquidLut: PublicKey;
|
|
16
|
+
/** Address lookup table */
|
|
17
|
+
lut: PublicKey;
|
|
20
18
|
}
|
|
21
19
|
/** Mainnet program IDs */
|
|
22
20
|
export declare const MAINNET_CONFIG: LiquidConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,+CAA+C;IAC/C,eAAe,EAAE,SAAS,CAAC;IAC3B,0CAA0C;IAC1C,mBAAmB,EAAE,SAAS,CAAC;IAC/B,mDAAmD;IACnD,mBAAmB,EAAE,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,oBAAoB,EAAE,SAAS,CAAC;IAChC,wCAAwC;IACxC,qBAAqB,EAAE,SAAS,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,+CAA+C;IAC/C,eAAe,EAAE,SAAS,CAAC;IAC3B,0CAA0C;IAC1C,mBAAmB,EAAE,SAAS,CAAC;IAC/B,mDAAmD;IACnD,mBAAmB,EAAE,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,oBAAoB,EAAE,SAAS,CAAC;IAChC,wCAAwC;IACxC,qBAAqB,EAAE,SAAS,CAAC;IACjC,2BAA2B;IAC3B,GAAG,EAAE,SAAS,CAAC;CACf;AAED,0BAA0B;AAC1B,eAAO,MAAM,cAAc,EAAE,YAiBnB,CAAC;AAEX,kEAAkE;AAClE,eAAO,MAAM,aAAa,EAAE,YAiBlB,CAAC;AAEX,6DAA6D;AAC7D,eAAO,MAAM,eAAe,EAAE,YAA6C,CAAC;AAE5E,wBAAwB;AACxB,eAAO,MAAM,SAAS,WAErB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,WAEpC,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,sCAAsC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,sCAAsC;AACtC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,SAAU,CAAC;AAEzC,+BAA+B;AAC/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAIT,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -6,8 +6,7 @@ export const MAINNET_CONFIG = {
|
|
|
6
6
|
liquidFeesProgramId: new PublicKey("FeesZQLb1xTeZbvaFRGnqzrZYzzmQtwhTYKQphbNGQru"),
|
|
7
7
|
liquidStateProgramId: new PublicKey("State3HtEfi7cXdsTpAtRoBvrij8zSFCiGTAVWmYH2d"),
|
|
8
8
|
liquidEventsProgramId: new PublicKey("EventsQeXA43nLKR69DhHwNsJ6aM512AweMCgG3wG8zG"),
|
|
9
|
-
|
|
10
|
-
liquidLut: new PublicKey("3R3hdXsDiYcJqoy5rkFGwj5YzxT3yaWF9BxeaDgjVBd7"),
|
|
9
|
+
lut: new PublicKey("APVLYD9PAPM3TPa11LurrJgSchMShwTnzFsiH9o9Un6X"),
|
|
11
10
|
};
|
|
12
11
|
/** Devnet program IDs (liquid differs, others same as mainnet) */
|
|
13
12
|
export const DEVNET_CONFIG = {
|
|
@@ -16,8 +15,7 @@ export const DEVNET_CONFIG = {
|
|
|
16
15
|
liquidFeesProgramId: new PublicKey("3iFrDQxt6ZQT5eTyoHSpdq9hpyj9QmXDjTNEopGYpvTh"),
|
|
17
16
|
liquidStateProgramId: new PublicKey("9ZcKPa3HAEVEKxwFX8fYD56ZJCKPEQgqjgr9rfUvtwKJ"),
|
|
18
17
|
liquidEventsProgramId: new PublicKey("Bast7hBDiqSsxiwEmqazwvPvXC3N4z8UQR5ZmkqXnCiY"),
|
|
19
|
-
|
|
20
|
-
liquidLut: new PublicKey("oeNEhk9xzeXBPYEdtD6RZxotQP55Y63vpLH2zbdWyYu"),
|
|
18
|
+
lut: new PublicKey("74wpD6u2KdyVUs9cGM3Eu33FeMaLZ1pdoDrqn87V6EnM"),
|
|
21
19
|
};
|
|
22
20
|
/** Localnet program IDs (same as mainnet per Anchor.toml) */
|
|
23
21
|
export const LOCALNET_CONFIG = { ...MAINNET_CONFIG };
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAoB5C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC3C,eAAe,EAAE,IAAI,SAAS,CAC7B,6CAA6C,CAC7C;IACD,mBAAmB,EAAE,IAAI,SAAS,CACjC,6CAA6C,CAC7C;IACD,mBAAmB,EAAE,IAAI,SAAS,CACjC,8CAA8C,CAC9C;IACD,oBAAoB,EAAE,IAAI,SAAS,CAClC,6CAA6C,CAC7C;IACD,qBAAqB,EAAE,IAAI,SAAS,CACnC,8CAA8C,CAC9C;IACD,GAAG,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;CACzD,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAiB;IAC1C,eAAe,EAAE,IAAI,SAAS,CAC7B,8CAA8C,CAC9C;IACD,mBAAmB,EAAE,IAAI,SAAS,CACjC,8CAA8C,CAC9C;IACD,mBAAmB,EAAE,IAAI,SAAS,CACjC,8CAA8C,CAC9C;IACD,oBAAoB,EAAE,IAAI,SAAS,CAClC,8CAA8C,CAC9C;IACD,qBAAqB,EAAE,IAAI,SAAS,CACnC,8CAA8C,CAC9C;IACD,GAAG,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;CACzD,CAAC;AAEX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAiB,EAAE,GAAG,cAAc,EAAW,CAAC;AAE5E,wBAAwB;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CACrC,6CAA6C,CAC7C,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,SAAS,CACpD,6CAA6C,CAC7C,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAM,CAAC;AAEtC,sCAAsC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,sCAAsC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAEzC,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAEzC,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAO,CAAC;AAEzC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACzB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3B,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;CACjB,CAAC"}
|
package/dist/lut.d.ts
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
import { PublicKey, type Connection, type AddressLookupTableAccount } from "@solana/web3.js";
|
|
2
2
|
import { type LiquidConfig } from "./config.js";
|
|
3
3
|
/**
|
|
4
|
-
* Returns the
|
|
4
|
+
* Returns the 21 account addresses for the global LUT.
|
|
5
5
|
*
|
|
6
|
-
* Programs (
|
|
6
|
+
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
7
|
+
* Liquid PDAs (2): global_config, cpi_authority
|
|
7
8
|
* Swap PDAs (3): authority, global_config, cpi_authority
|
|
8
|
-
* State PDAs (
|
|
9
|
+
* State PDAs (4): global_amm_volume, global_curve_volume, cashback_config, cpi_authority
|
|
9
10
|
* Constants (2): WSOL mint, oracle price feed
|
|
10
11
|
*
|
|
11
12
|
* @param config - Liquid protocol configuration
|
|
12
13
|
* @param connection - Solana RPC connection (for fetching oracle price feed)
|
|
13
|
-
* @returns Array of
|
|
14
|
-
*/
|
|
15
|
-
export declare function getSwapLutAccounts(config: LiquidConfig, connection: Connection): Promise<PublicKey[]>;
|
|
16
|
-
/**
|
|
17
|
-
* Returns the 18 account addresses for the liquid (bonding curve) global LUT.
|
|
18
|
-
*
|
|
19
|
-
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
20
|
-
* Liquid PDAs (2): global_config, cpi_authority
|
|
21
|
-
* State PDAs (3): global_curve_volume, cashback_config, state_events_cpi_authority
|
|
22
|
-
* Swap PDAs for migration (3): amm_global_config, amm_authority, swap_cpi_authority
|
|
23
|
-
* Constants (1): WSOL mint
|
|
24
|
-
*
|
|
25
|
-
* @param config - Liquid protocol configuration
|
|
26
|
-
* @returns Array of 18 public keys to populate the LUT
|
|
14
|
+
* @returns Array of 21 public keys to populate the LUT
|
|
27
15
|
*/
|
|
28
|
-
export declare function
|
|
16
|
+
export declare function getLutAccounts(config: LiquidConfig, connection: Connection): Promise<PublicKey[]>;
|
|
29
17
|
/**
|
|
30
18
|
* Fetches an Address Lookup Table account from the chain.
|
|
31
19
|
*
|
package/dist/lut.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lut.d.ts","sourceRoot":"","sources":["../src/lut.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,SAAS,EAET,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,aAAa,CAAC;AA0B3D
|
|
1
|
+
{"version":3,"file":"lut.d.ts","sourceRoot":"","sources":["../src/lut.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,SAAS,EAET,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,aAAa,CAAC;AA0B3D;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,GACpB,OAAO,CAAC,SAAS,EAAE,CAAC,CAsDtB;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC7B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,SAAS,GACnB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAG3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACzC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,MAAM;;;EAgBlB"}
|
package/dist/lut.js
CHANGED
|
@@ -14,69 +14,33 @@ function getCpiAuthorityPDA(programId) {
|
|
|
14
14
|
return pda;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* Returns the
|
|
17
|
+
* Returns the 21 account addresses for the global LUT.
|
|
18
18
|
*
|
|
19
|
-
* Programs (
|
|
19
|
+
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
20
|
+
* Liquid PDAs (2): global_config, cpi_authority
|
|
20
21
|
* Swap PDAs (3): authority, global_config, cpi_authority
|
|
21
|
-
* State PDAs (
|
|
22
|
+
* State PDAs (4): global_amm_volume, global_curve_volume, cashback_config, cpi_authority
|
|
22
23
|
* Constants (2): WSOL mint, oracle price feed
|
|
23
24
|
*
|
|
24
25
|
* @param config - Liquid protocol configuration
|
|
25
26
|
* @param connection - Solana RPC connection (for fetching oracle price feed)
|
|
26
|
-
* @returns Array of
|
|
27
|
+
* @returns Array of 21 public keys to populate the LUT
|
|
27
28
|
*/
|
|
28
|
-
export async function
|
|
29
|
+
export async function getLutAccounts(config, connection) {
|
|
29
30
|
const ammConfig = await fetchAmmConfig(connection, config);
|
|
30
31
|
const oraclePriceFeed = ammConfig.oraclePriceFeed;
|
|
32
|
+
// Liquid PDAs
|
|
33
|
+
const [liquidGlobalConfig] = getLiquidGlobalConfigPDA(config.liquidProgramId);
|
|
34
|
+
const liquidCpiAuthority = getCpiAuthorityPDA(config.liquidProgramId);
|
|
35
|
+
// Swap PDAs
|
|
31
36
|
const [swapAuthority] = getSwapAuthorityPDA(config.liquidSwapProgramId);
|
|
32
37
|
const [swapGlobalConfig] = getSwapGlobalConfigPDA(config.liquidSwapProgramId);
|
|
33
38
|
const swapCpiAuthority = getCpiAuthorityPDA(config.liquidSwapProgramId);
|
|
39
|
+
// State PDAs
|
|
34
40
|
const [globalAmmVolume] = getGlobalAmmVolumePDA(config.liquidStateProgramId);
|
|
35
|
-
const [cashbackConfig] = getCashbackConfigPDA(config.liquidStateProgramId);
|
|
36
|
-
const stateCpiAuthority = getCpiAuthorityPDA(config.liquidStateProgramId);
|
|
37
|
-
return [
|
|
38
|
-
// Programs
|
|
39
|
-
SystemProgram.programId,
|
|
40
|
-
TOKEN_PROGRAM_ID,
|
|
41
|
-
TOKEN_2022_PROGRAM_ID,
|
|
42
|
-
ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
43
|
-
ComputeBudgetProgram.programId,
|
|
44
|
-
config.liquidStateProgramId,
|
|
45
|
-
config.liquidEventsProgramId,
|
|
46
|
-
// Swap global PDAs
|
|
47
|
-
swapAuthority,
|
|
48
|
-
swapGlobalConfig,
|
|
49
|
-
swapCpiAuthority,
|
|
50
|
-
// State global PDAs
|
|
51
|
-
globalAmmVolume,
|
|
52
|
-
cashbackConfig,
|
|
53
|
-
stateCpiAuthority,
|
|
54
|
-
// Constants
|
|
55
|
-
WSOL_MINT,
|
|
56
|
-
oraclePriceFeed,
|
|
57
|
-
];
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Returns the 18 account addresses for the liquid (bonding curve) global LUT.
|
|
61
|
-
*
|
|
62
|
-
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
63
|
-
* Liquid PDAs (2): global_config, cpi_authority
|
|
64
|
-
* State PDAs (3): global_curve_volume, cashback_config, state_events_cpi_authority
|
|
65
|
-
* Swap PDAs for migration (3): amm_global_config, amm_authority, swap_cpi_authority
|
|
66
|
-
* Constants (1): WSOL mint
|
|
67
|
-
*
|
|
68
|
-
* @param config - Liquid protocol configuration
|
|
69
|
-
* @returns Array of 18 public keys to populate the LUT
|
|
70
|
-
*/
|
|
71
|
-
export function getLiquidLutAccounts(config) {
|
|
72
|
-
const [liquidGlobalConfig] = getLiquidGlobalConfigPDA(config.liquidProgramId);
|
|
73
|
-
const liquidCpiAuthority = getCpiAuthorityPDA(config.liquidProgramId);
|
|
74
41
|
const [globalCurveVolume] = getGlobalCurveVolumePDA(config.liquidStateProgramId);
|
|
75
42
|
const [cashbackConfig] = getCashbackConfigPDA(config.liquidStateProgramId);
|
|
76
43
|
const stateCpiAuthority = getCpiAuthorityPDA(config.liquidStateProgramId);
|
|
77
|
-
const [swapGlobalConfig] = getSwapGlobalConfigPDA(config.liquidSwapProgramId);
|
|
78
|
-
const [swapAuthority] = getSwapAuthorityPDA(config.liquidSwapProgramId);
|
|
79
|
-
const swapCpiAuthority = getCpiAuthorityPDA(config.liquidSwapProgramId);
|
|
80
44
|
return [
|
|
81
45
|
// Programs
|
|
82
46
|
SystemProgram.programId,
|
|
@@ -91,16 +55,18 @@ export function getLiquidLutAccounts(config) {
|
|
|
91
55
|
// Liquid global PDAs
|
|
92
56
|
liquidGlobalConfig,
|
|
93
57
|
liquidCpiAuthority,
|
|
58
|
+
// Swap global PDAs
|
|
59
|
+
swapAuthority,
|
|
60
|
+
swapGlobalConfig,
|
|
61
|
+
swapCpiAuthority,
|
|
94
62
|
// State global PDAs
|
|
63
|
+
globalAmmVolume,
|
|
95
64
|
globalCurveVolume,
|
|
96
65
|
cashbackConfig,
|
|
97
66
|
stateCpiAuthority,
|
|
98
|
-
// Swap PDAs (for migration CPI)
|
|
99
|
-
swapGlobalConfig,
|
|
100
|
-
swapAuthority,
|
|
101
|
-
swapCpiAuthority,
|
|
102
67
|
// Constants
|
|
103
68
|
WSOL_MINT,
|
|
69
|
+
oraclePriceFeed,
|
|
104
70
|
];
|
|
105
71
|
}
|
|
106
72
|
/**
|
package/dist/lut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lut.js","sourceRoot":"","sources":["../src/lut.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EACzB,oBAAoB,EACpB,SAAS,EACT,aAAa,GAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqB,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACN,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,SAAS,kBAAkB,CAAC,SAAoB;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC7C,CAAC,kBAAkB,CAAC,EACpB,SAAS,CACT,CAAC;IACF,OAAO,GAAG,CAAC;AACZ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"lut.js","sourceRoot":"","sources":["../src/lut.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/config.ts
CHANGED
|
@@ -14,10 +14,8 @@ export interface LiquidConfig {
|
|
|
14
14
|
liquidStateProgramId: PublicKey;
|
|
15
15
|
/** Program ID for the events program */
|
|
16
16
|
liquidEventsProgramId: PublicKey;
|
|
17
|
-
/** Address lookup table
|
|
18
|
-
|
|
19
|
-
/** Address lookup table for liquid (bonding curve) transactions */
|
|
20
|
-
liquidLut: PublicKey;
|
|
17
|
+
/** Address lookup table */
|
|
18
|
+
lut: PublicKey;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
/** Mainnet program IDs */
|
|
@@ -37,8 +35,7 @@ export const MAINNET_CONFIG: LiquidConfig = {
|
|
|
37
35
|
liquidEventsProgramId: new PublicKey(
|
|
38
36
|
"EventsQeXA43nLKR69DhHwNsJ6aM512AweMCgG3wG8zG",
|
|
39
37
|
),
|
|
40
|
-
|
|
41
|
-
liquidLut: new PublicKey("3R3hdXsDiYcJqoy5rkFGwj5YzxT3yaWF9BxeaDgjVBd7"),
|
|
38
|
+
lut: new PublicKey("APVLYD9PAPM3TPa11LurrJgSchMShwTnzFsiH9o9Un6X"),
|
|
42
39
|
} as const;
|
|
43
40
|
|
|
44
41
|
/** Devnet program IDs (liquid differs, others same as mainnet) */
|
|
@@ -58,8 +55,7 @@ export const DEVNET_CONFIG: LiquidConfig = {
|
|
|
58
55
|
liquidEventsProgramId: new PublicKey(
|
|
59
56
|
"Bast7hBDiqSsxiwEmqazwvPvXC3N4z8UQR5ZmkqXnCiY",
|
|
60
57
|
),
|
|
61
|
-
|
|
62
|
-
liquidLut: new PublicKey("oeNEhk9xzeXBPYEdtD6RZxotQP55Y63vpLH2zbdWyYu"),
|
|
58
|
+
lut: new PublicKey("74wpD6u2KdyVUs9cGM3Eu33FeMaLZ1pdoDrqn87V6EnM"),
|
|
63
59
|
} as const;
|
|
64
60
|
|
|
65
61
|
/** Localnet program IDs (same as mainnet per Anchor.toml) */
|
package/src/lut.ts
CHANGED
|
@@ -38,89 +38,48 @@ function getCpiAuthorityPDA(programId: PublicKey): PublicKey {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
* Returns the
|
|
41
|
+
* Returns the 21 account addresses for the global LUT.
|
|
42
42
|
*
|
|
43
|
-
* Programs (
|
|
43
|
+
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
44
|
+
* Liquid PDAs (2): global_config, cpi_authority
|
|
44
45
|
* Swap PDAs (3): authority, global_config, cpi_authority
|
|
45
|
-
* State PDAs (
|
|
46
|
+
* State PDAs (4): global_amm_volume, global_curve_volume, cashback_config, cpi_authority
|
|
46
47
|
* Constants (2): WSOL mint, oracle price feed
|
|
47
48
|
*
|
|
48
49
|
* @param config - Liquid protocol configuration
|
|
49
50
|
* @param connection - Solana RPC connection (for fetching oracle price feed)
|
|
50
|
-
* @returns Array of
|
|
51
|
+
* @returns Array of 21 public keys to populate the LUT
|
|
51
52
|
*/
|
|
52
|
-
export async function
|
|
53
|
+
export async function getLutAccounts(
|
|
53
54
|
config: LiquidConfig,
|
|
54
55
|
connection: Connection,
|
|
55
56
|
): Promise<PublicKey[]> {
|
|
56
57
|
const ammConfig = await fetchAmmConfig(connection, config);
|
|
57
58
|
const oraclePriceFeed = ammConfig.oraclePriceFeed as PublicKey;
|
|
58
59
|
|
|
60
|
+
// Liquid PDAs
|
|
61
|
+
const [liquidGlobalConfig] = getLiquidGlobalConfigPDA(
|
|
62
|
+
config.liquidProgramId,
|
|
63
|
+
);
|
|
64
|
+
const liquidCpiAuthority = getCpiAuthorityPDA(config.liquidProgramId);
|
|
65
|
+
|
|
66
|
+
// Swap PDAs
|
|
59
67
|
const [swapAuthority] = getSwapAuthorityPDA(config.liquidSwapProgramId);
|
|
60
68
|
const [swapGlobalConfig] = getSwapGlobalConfigPDA(
|
|
61
69
|
config.liquidSwapProgramId,
|
|
62
70
|
);
|
|
63
71
|
const swapCpiAuthority = getCpiAuthorityPDA(config.liquidSwapProgramId);
|
|
64
72
|
|
|
73
|
+
// State PDAs
|
|
65
74
|
const [globalAmmVolume] = getGlobalAmmVolumePDA(
|
|
66
75
|
config.liquidStateProgramId,
|
|
67
76
|
);
|
|
68
|
-
const [cashbackConfig] = getCashbackConfigPDA(config.liquidStateProgramId);
|
|
69
|
-
const stateCpiAuthority = getCpiAuthorityPDA(config.liquidStateProgramId);
|
|
70
|
-
|
|
71
|
-
return [
|
|
72
|
-
// Programs
|
|
73
|
-
SystemProgram.programId,
|
|
74
|
-
TOKEN_PROGRAM_ID,
|
|
75
|
-
TOKEN_2022_PROGRAM_ID,
|
|
76
|
-
ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
77
|
-
ComputeBudgetProgram.programId,
|
|
78
|
-
config.liquidStateProgramId,
|
|
79
|
-
config.liquidEventsProgramId,
|
|
80
|
-
// Swap global PDAs
|
|
81
|
-
swapAuthority,
|
|
82
|
-
swapGlobalConfig,
|
|
83
|
-
swapCpiAuthority,
|
|
84
|
-
// State global PDAs
|
|
85
|
-
globalAmmVolume,
|
|
86
|
-
cashbackConfig,
|
|
87
|
-
stateCpiAuthority,
|
|
88
|
-
// Constants
|
|
89
|
-
WSOL_MINT,
|
|
90
|
-
oraclePriceFeed,
|
|
91
|
-
];
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Returns the 18 account addresses for the liquid (bonding curve) global LUT.
|
|
96
|
-
*
|
|
97
|
-
* Programs (9): System, SPL Token, Token-2022, ATA, ComputeBudget, State, Events, Fees, Swap
|
|
98
|
-
* Liquid PDAs (2): global_config, cpi_authority
|
|
99
|
-
* State PDAs (3): global_curve_volume, cashback_config, state_events_cpi_authority
|
|
100
|
-
* Swap PDAs for migration (3): amm_global_config, amm_authority, swap_cpi_authority
|
|
101
|
-
* Constants (1): WSOL mint
|
|
102
|
-
*
|
|
103
|
-
* @param config - Liquid protocol configuration
|
|
104
|
-
* @returns Array of 18 public keys to populate the LUT
|
|
105
|
-
*/
|
|
106
|
-
export function getLiquidLutAccounts(config: LiquidConfig): PublicKey[] {
|
|
107
|
-
const [liquidGlobalConfig] = getLiquidGlobalConfigPDA(
|
|
108
|
-
config.liquidProgramId,
|
|
109
|
-
);
|
|
110
|
-
const liquidCpiAuthority = getCpiAuthorityPDA(config.liquidProgramId);
|
|
111
|
-
|
|
112
77
|
const [globalCurveVolume] = getGlobalCurveVolumePDA(
|
|
113
78
|
config.liquidStateProgramId,
|
|
114
79
|
);
|
|
115
80
|
const [cashbackConfig] = getCashbackConfigPDA(config.liquidStateProgramId);
|
|
116
81
|
const stateCpiAuthority = getCpiAuthorityPDA(config.liquidStateProgramId);
|
|
117
82
|
|
|
118
|
-
const [swapGlobalConfig] = getSwapGlobalConfigPDA(
|
|
119
|
-
config.liquidSwapProgramId,
|
|
120
|
-
);
|
|
121
|
-
const [swapAuthority] = getSwapAuthorityPDA(config.liquidSwapProgramId);
|
|
122
|
-
const swapCpiAuthority = getCpiAuthorityPDA(config.liquidSwapProgramId);
|
|
123
|
-
|
|
124
83
|
return [
|
|
125
84
|
// Programs
|
|
126
85
|
SystemProgram.programId,
|
|
@@ -135,16 +94,18 @@ export function getLiquidLutAccounts(config: LiquidConfig): PublicKey[] {
|
|
|
135
94
|
// Liquid global PDAs
|
|
136
95
|
liquidGlobalConfig,
|
|
137
96
|
liquidCpiAuthority,
|
|
97
|
+
// Swap global PDAs
|
|
98
|
+
swapAuthority,
|
|
99
|
+
swapGlobalConfig,
|
|
100
|
+
swapCpiAuthority,
|
|
138
101
|
// State global PDAs
|
|
102
|
+
globalAmmVolume,
|
|
139
103
|
globalCurveVolume,
|
|
140
104
|
cashbackConfig,
|
|
141
105
|
stateCpiAuthority,
|
|
142
|
-
// Swap PDAs (for migration CPI)
|
|
143
|
-
swapGlobalConfig,
|
|
144
|
-
swapAuthority,
|
|
145
|
-
swapCpiAuthority,
|
|
146
106
|
// Constants
|
|
147
107
|
WSOL_MINT,
|
|
108
|
+
oraclePriceFeed,
|
|
148
109
|
];
|
|
149
110
|
}
|
|
150
111
|
|