@luxfi/exchange 0.2.0 → 1.0.1

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 (56) hide show
  1. package/dist/chains/lux.d.ts +6 -116
  2. package/dist/chains/lux.d.ts.map +1 -1
  3. package/dist/contracts/abis/amm-v2-factory.d.ts +148 -0
  4. package/dist/contracts/abis/amm-v2-factory.d.ts.map +1 -0
  5. package/dist/contracts/abis/{uniswap-v2-factory.js → amm-v2-factory.js} +5 -2
  6. package/dist/contracts/abis/amm-v2-pair.d.ts +236 -0
  7. package/dist/contracts/abis/amm-v2-pair.d.ts.map +1 -0
  8. package/dist/contracts/abis/{uniswap-v2-pair.js → amm-v2-pair.js} +5 -2
  9. package/dist/contracts/abis/amm-v2-router.d.ts +496 -0
  10. package/dist/contracts/abis/amm-v2-router.d.ts.map +1 -0
  11. package/dist/contracts/abis/{uniswap-v2-router.js → amm-v2-router.js} +5 -2
  12. package/dist/contracts/abis/amm-v3-factory.d.ts +152 -0
  13. package/dist/contracts/abis/amm-v3-factory.d.ts.map +1 -0
  14. package/dist/contracts/abis/{uniswap-v3-factory.js → amm-v3-factory.js} +5 -2
  15. package/dist/contracts/abis/amm-v3-pool.d.ts +254 -0
  16. package/dist/contracts/abis/amm-v3-pool.d.ts.map +1 -0
  17. package/dist/contracts/abis/{uniswap-v3-pool.js → amm-v3-pool.js} +5 -2
  18. package/dist/contracts/abis/index.d.ts +8 -5
  19. package/dist/contracts/abis/index.d.ts.map +1 -1
  20. package/dist/contracts/abis/index.js +13 -6
  21. package/dist/contracts/abis/pool-manager.d.ts +1 -1
  22. package/dist/contracts/abis/pool-manager.js +1 -1
  23. package/dist/contracts/addresses.d.ts +30 -42
  24. package/dist/contracts/addresses.d.ts.map +1 -1
  25. package/dist/contracts/addresses.js +49 -50
  26. package/dist/hooks/use-pools.d.ts.map +1 -1
  27. package/dist/hooks/use-pools.js +8 -6
  28. package/dist/hooks/use-swap.js +1 -1
  29. package/dist/hooks/use-token-allowance.d.ts +1 -1
  30. package/dist/tokens/index.d.ts +31 -3
  31. package/dist/tokens/index.d.ts.map +1 -1
  32. package/dist/tokens/index.js +136 -32
  33. package/package.json +2 -2
  34. package/src/contracts/abis/{uniswap-v2-factory.ts → amm-v2-factory.ts} +6 -2
  35. package/src/contracts/abis/{uniswap-v2-pair.ts → amm-v2-pair.ts} +6 -2
  36. package/src/contracts/abis/{uniswap-v2-router.ts → amm-v2-router.ts} +6 -2
  37. package/src/contracts/abis/{uniswap-v3-factory.ts → amm-v3-factory.ts} +6 -2
  38. package/src/contracts/abis/{uniswap-v3-pool.ts → amm-v3-pool.ts} +6 -2
  39. package/src/contracts/abis/index.ts +16 -6
  40. package/src/contracts/abis/pool-manager.ts +1 -1
  41. package/src/contracts/addresses.ts +53 -52
  42. package/src/hooks/use-pools.ts +8 -6
  43. package/src/hooks/use-positions.ts +3 -3
  44. package/src/hooks/use-swap-quote.ts +1 -1
  45. package/src/hooks/use-swap.ts +1 -1
  46. package/src/tokens/index.ts +148 -32
  47. package/dist/contracts/abis/uniswap-v2-factory.d.ts +0 -75
  48. package/dist/contracts/abis/uniswap-v2-factory.d.ts.map +0 -1
  49. package/dist/contracts/abis/uniswap-v2-pair.d.ts +0 -119
  50. package/dist/contracts/abis/uniswap-v2-pair.d.ts.map +0 -1
  51. package/dist/contracts/abis/uniswap-v2-router.d.ts +0 -249
  52. package/dist/contracts/abis/uniswap-v2-router.d.ts.map +0 -1
  53. package/dist/contracts/abis/uniswap-v3-factory.d.ts +0 -77
  54. package/dist/contracts/abis/uniswap-v3-factory.d.ts.map +0 -1
  55. package/dist/contracts/abis/uniswap-v3-pool.d.ts +0 -128
  56. package/dist/contracts/abis/uniswap-v3-pool.d.ts.map +0 -1
@@ -2,13 +2,15 @@
2
2
  import { useQuery } from '@tanstack/react-query';
3
3
  import { usePublicClient } from 'wagmi';
4
4
  import { getContracts } from '../contracts';
5
- import { UNISWAP_V3_FACTORY_ABI, UNISWAP_V3_POOL_ABI } from '../contracts/abis';
5
+ import { LUX_V3_FACTORY_ABI, LUX_V3_POOL_ABI } from '../contracts/abis';
6
+ import { LUX_MAINNET_CONTRACTS } from '../contracts/addresses';
6
7
  /**
7
8
  * Hook to get pool information
8
9
  */
9
10
  export function usePool(token0, token1, fee, chainId) {
10
11
  const publicClient = usePublicClient({ chainId });
11
12
  const contracts = getContracts(chainId);
13
+ const v3Factory = 'V3_FACTORY' in contracts ? contracts.V3_FACTORY : LUX_MAINNET_CONTRACTS.V3_FACTORY;
12
14
  return useQuery({
13
15
  queryKey: ['pool', token0, token1, fee, chainId],
14
16
  queryFn: async () => {
@@ -17,8 +19,8 @@ export function usePool(token0, token1, fee, chainId) {
17
19
  try {
18
20
  // Get pool address from factory
19
21
  const poolAddress = await publicClient.readContract({
20
- address: contracts.V3_FACTORY,
21
- abi: UNISWAP_V3_FACTORY_ABI,
22
+ address: v3Factory,
23
+ abi: LUX_V3_FACTORY_ABI,
22
24
  functionName: 'getPool',
23
25
  args: [token0, token1, fee],
24
26
  });
@@ -29,17 +31,17 @@ export function usePool(token0, token1, fee, chainId) {
29
31
  const [slot0, liquidity, tickSpacing] = await Promise.all([
30
32
  publicClient.readContract({
31
33
  address: poolAddress,
32
- abi: UNISWAP_V3_POOL_ABI,
34
+ abi: LUX_V3_POOL_ABI,
33
35
  functionName: 'slot0',
34
36
  }),
35
37
  publicClient.readContract({
36
38
  address: poolAddress,
37
- abi: UNISWAP_V3_POOL_ABI,
39
+ abi: LUX_V3_POOL_ABI,
38
40
  functionName: 'liquidity',
39
41
  }),
40
42
  publicClient.readContract({
41
43
  address: poolAddress,
42
- abi: UNISWAP_V3_POOL_ABI,
44
+ abi: LUX_V3_POOL_ABI,
43
45
  functionName: 'tickSpacing',
44
46
  }),
45
47
  ]);
@@ -15,7 +15,7 @@ export function useSwap() {
15
15
  const contracts = getContracts(params.chainId);
16
16
  const isNativeIn = isNativeToken(params.tokenIn);
17
17
  const txHash = await writeContractAsync({
18
- address: contracts.V3_SWAP_ROUTER_02,
18
+ address: contracts.V3_SWAP_ROUTER_02 ?? contracts.V2_ROUTER,
19
19
  abi: SWAP_ROUTER_ABI,
20
20
  functionName: 'exactInputSingle',
21
21
  args: [
@@ -18,7 +18,7 @@ export declare function useTokenAllowance(token: Token | null, owner: Address |
18
18
  isPending: boolean;
19
19
  isConfirming: boolean;
20
20
  isSuccess: boolean;
21
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<bigint, import("viem").ReadContractErrorType>>;
21
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<bigint, import("viem").ReadContractErrorType>>;
22
22
  };
23
23
  /**
24
24
  * Check if approval is needed for a specific amount
@@ -28,9 +28,25 @@ export declare const WLUX_DEV: Token;
28
28
  export declare const LUSD: Token;
29
29
  /**
30
30
  * Bridge tokens (L-prefix for assets bridged to Lux)
31
+ * These are the canonical mainnet addresses from @luxfi/config
31
32
  */
32
33
  export declare const LETH: Token;
33
34
  export declare const LBTC: Token;
35
+ export declare const LSOL: Token;
36
+ export declare const LTON: Token;
37
+ export declare const LAVAX: Token;
38
+ /**
39
+ * Testnet bridge tokens
40
+ */
41
+ export declare const LETH_TESTNET: Token;
42
+ export declare const LBTC_TESTNET: Token;
43
+ export declare const LUSD_TESTNET: Token;
44
+ /**
45
+ * Dev mode bridge tokens (deterministic CREATE addresses)
46
+ */
47
+ export declare const LETH_DEV: Token;
48
+ export declare const LBTC_DEV: Token;
49
+ export declare const LUSD_DEV: Token;
34
50
  /**
35
51
  * Major tokens on Lux Mainnet
36
52
  */
@@ -43,9 +59,9 @@ export declare const DAI_LUX: Token;
43
59
  * Zoo chain tokens
44
60
  */
45
61
  export declare const WZOO: Token;
46
- export declare const USDC_ZOO: Token;
47
- export declare const USDT_ZOO: Token;
48
- export declare const WETH_ZOO: Token;
62
+ export declare const LETH_ZOO: Token;
63
+ export declare const LBTC_ZOO: Token;
64
+ export declare const LUSD_ZOO: Token;
49
65
  /**
50
66
  * Default token list for Lux Mainnet
51
67
  */
@@ -54,6 +70,18 @@ export declare const LUX_MAINNET_TOKENS: Token[];
54
70
  * Default token list for Zoo Mainnet
55
71
  */
56
72
  export declare const ZOO_MAINNET_TOKENS: Token[];
73
+ /**
74
+ * Default token list for Lux Testnet
75
+ */
76
+ export declare const LUX_TESTNET_TOKENS: Token[];
77
+ /**
78
+ * Default token list for Lux Dev
79
+ */
80
+ export declare const LUX_DEV_TOKENS: Token[];
81
+ /**
82
+ * Get tokens for a chain
83
+ */
84
+ export declare function getTokensForChain(chainId: number): Token[];
57
85
  /**
58
86
  * Get wrapped native token for chain
59
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAWrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAMrC,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAWnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EASrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAMrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAKrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,EAKjC,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,CAa1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAWnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEnD"}
@@ -21,21 +21,22 @@ export const NATIVE_ZOO = {
21
21
  * Wrapped native tokens
22
22
  */
23
23
  export const WLUX_MAINNET = {
24
- address: '0x55750d6CA62a041c06a8E28626b10Be6c688f471',
24
+ address: '0x4888e4a2ee0f03051c72d2bd3acf755ed3498b3e',
25
25
  chainId: 96369,
26
26
  decimals: 18,
27
27
  symbol: 'WLUX',
28
28
  name: 'Wrapped LUX',
29
29
  };
30
30
  export const WLUX_TESTNET = {
31
- address: '0x732740c5c895C9FCF619930ed4293fc858eb44c7',
31
+ address: '0xDe5310d0Eccc04C8987cB66Ff6b89Ee793442C91',
32
32
  chainId: 96368,
33
33
  decimals: 18,
34
34
  symbol: 'WLUX',
35
35
  name: 'Wrapped LUX',
36
36
  };
37
37
  export const WLUX_DEV = {
38
- address: '0x610178dA211FEF7D417bC0e6FeD39F05609AD788',
38
+ // Deterministic CREATE address from DeployFullStack.s.sol (nonce 0)
39
+ address: '0x5FbDB2315678afecb367f032d93F642f64180aa3',
39
40
  chainId: 1337,
40
41
  decimals: 18,
41
42
  symbol: 'WLUX',
@@ -45,29 +46,99 @@ export const WLUX_DEV = {
45
46
  * Stablecoins
46
47
  */
47
48
  export const LUSD = {
48
- address: '0x0000000000000000000000000000000000000000', // TODO: Deploy
49
+ address: '0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2',
49
50
  chainId: 96369,
50
51
  decimals: 18,
51
52
  symbol: 'LUSD',
52
- name: 'Lux Dollar',
53
+ name: 'Lux USD',
53
54
  };
54
55
  /**
55
56
  * Bridge tokens (L-prefix for assets bridged to Lux)
57
+ * These are the canonical mainnet addresses from @luxfi/config
56
58
  */
57
59
  export const LETH = {
58
- address: '0xAA3AE951A7925F25aE8Ad65b052a76Bd8f052598',
60
+ address: '0x60E0a8167FC13dE89348978860466C9ceC24B9ba',
59
61
  chainId: 96369,
60
62
  decimals: 18,
61
63
  symbol: 'LETH',
62
64
  name: 'Lux ETH',
63
65
  };
64
66
  export const LBTC = {
65
- address: '0x526903Ee6118de6737D11b37f82fC7f69B13685D',
67
+ address: '0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e',
68
+ chainId: 96369,
69
+ decimals: 8,
70
+ symbol: 'LBTC',
71
+ name: 'Lux BTC',
72
+ };
73
+ export const LSOL = {
74
+ address: '0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7',
66
75
  chainId: 96369,
76
+ decimals: 18,
77
+ symbol: 'LSOL',
78
+ name: 'Lux SOL',
79
+ };
80
+ export const LTON = {
81
+ address: '0x3141b94b89691009b950c96e97Bff48e0C543E3C',
82
+ chainId: 96369,
83
+ decimals: 9,
84
+ symbol: 'LTON',
85
+ name: 'Lux TON',
86
+ };
87
+ export const LAVAX = {
88
+ address: '0x0e4bD0DD67c15dECfBBBdbbE07FC9d51D737693D',
89
+ chainId: 96369,
90
+ decimals: 18,
91
+ symbol: 'LAVAX',
92
+ name: 'Lux AVAX',
93
+ };
94
+ /**
95
+ * Testnet bridge tokens
96
+ */
97
+ export const LETH_TESTNET = {
98
+ address: '0xA695a8A66fbe3E32d15a531db04185313595771A',
99
+ chainId: 96368,
100
+ decimals: 18,
101
+ symbol: 'LETH',
102
+ name: 'Lux ETH',
103
+ };
104
+ export const LBTC_TESTNET = {
105
+ address: '0x5a88986958ea76Dd043f834542724F081cA1443B',
106
+ chainId: 96368,
67
107
  decimals: 8,
68
108
  symbol: 'LBTC',
69
109
  name: 'Lux BTC',
70
110
  };
111
+ export const LUSD_TESTNET = {
112
+ address: '0x8a3fad1c7FB94461621351aa6A983B6f814F039c',
113
+ chainId: 96368,
114
+ decimals: 6,
115
+ symbol: 'LUSDC',
116
+ name: 'Lux USDC',
117
+ };
118
+ /**
119
+ * Dev mode bridge tokens (deterministic CREATE addresses)
120
+ */
121
+ export const LETH_DEV = {
122
+ address: '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512',
123
+ chainId: 1337,
124
+ decimals: 18,
125
+ symbol: 'LETH',
126
+ name: 'Lux ETH',
127
+ };
128
+ export const LBTC_DEV = {
129
+ address: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0',
130
+ chainId: 1337,
131
+ decimals: 8,
132
+ symbol: 'LBTC',
133
+ name: 'Lux BTC',
134
+ };
135
+ export const LUSD_DEV = {
136
+ address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9',
137
+ chainId: 1337,
138
+ decimals: 6,
139
+ symbol: 'LUSD',
140
+ name: 'Lux Dollar',
141
+ };
71
142
  /**
72
143
  * Major tokens on Lux Mainnet
73
144
  */
@@ -100,7 +171,7 @@ export const WBTC_LUX = {
100
171
  name: 'Wrapped Bitcoin',
101
172
  };
102
173
  export const DAI_LUX = {
103
- address: '0x6B175474E89094C44Da98b954EesdscdKD34eL55',
174
+ address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
104
175
  chainId: 96369,
105
176
  decimals: 18,
106
177
  symbol: 'DAI',
@@ -110,32 +181,32 @@ export const DAI_LUX = {
110
181
  * Zoo chain tokens
111
182
  */
112
183
  export const WZOO = {
113
- address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',
184
+ address: '0x5491216406daB99b7032b83765F36790E27F8A61',
114
185
  chainId: 200200,
115
186
  decimals: 18,
116
187
  symbol: 'WZOO',
117
188
  name: 'Wrapped ZOO',
118
189
  };
119
- export const USDC_ZOO = {
120
- address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
190
+ export const LETH_ZOO = {
191
+ address: '0x4870621EA8be7a383eFCfdA225249d35888bD9f2',
121
192
  chainId: 200200,
122
- decimals: 6,
123
- symbol: 'USDC',
124
- name: 'USD Coin',
193
+ decimals: 18,
194
+ symbol: 'LETH',
195
+ name: 'Lux ETH',
125
196
  };
126
- export const USDT_ZOO = {
127
- address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
197
+ export const LBTC_ZOO = {
198
+ address: '0x6fc44509a32E513bE1aa00d27bb298e63830C6A8',
128
199
  chainId: 200200,
129
- decimals: 6,
130
- symbol: 'USDT',
131
- name: 'Tether USD',
200
+ decimals: 8,
201
+ symbol: 'LBTC',
202
+ name: 'Lux BTC',
132
203
  };
133
- export const WETH_ZOO = {
134
- address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
204
+ export const LUSD_ZOO = {
205
+ address: '0xb2ee1CE7b84853b83AA08702aD0aD4D79711882D',
135
206
  chainId: 200200,
136
207
  decimals: 18,
137
- symbol: 'WETH',
138
- name: 'Wrapped Ether',
208
+ symbol: 'LUSD',
209
+ name: 'Lux USD',
139
210
  };
140
211
  /**
141
212
  * Default token list for Lux Mainnet
@@ -143,14 +214,12 @@ export const WETH_ZOO = {
143
214
  export const LUX_MAINNET_TOKENS = [
144
215
  NATIVE_LUX,
145
216
  WLUX_MAINNET,
146
- USDC_LUX,
147
- USDT_LUX,
148
- WETH_LUX,
149
- WBTC_LUX,
150
- DAI_LUX,
217
+ LUSD,
151
218
  LETH,
152
219
  LBTC,
153
- LUSD,
220
+ LSOL,
221
+ LTON,
222
+ LAVAX,
154
223
  ];
155
224
  /**
156
225
  * Default token list for Zoo Mainnet
@@ -158,10 +227,45 @@ export const LUX_MAINNET_TOKENS = [
158
227
  export const ZOO_MAINNET_TOKENS = [
159
228
  NATIVE_ZOO,
160
229
  WZOO,
161
- USDC_ZOO,
162
- USDT_ZOO,
163
- WETH_ZOO,
230
+ LUSD_ZOO,
231
+ LETH_ZOO,
232
+ LBTC_ZOO,
233
+ ];
234
+ /**
235
+ * Default token list for Lux Testnet
236
+ */
237
+ export const LUX_TESTNET_TOKENS = [
238
+ WLUX_TESTNET,
239
+ LETH_TESTNET,
240
+ LBTC_TESTNET,
241
+ LUSD_TESTNET,
242
+ ];
243
+ /**
244
+ * Default token list for Lux Dev
245
+ */
246
+ export const LUX_DEV_TOKENS = [
247
+ WLUX_DEV,
248
+ LETH_DEV,
249
+ LBTC_DEV,
250
+ LUSD_DEV,
164
251
  ];
252
+ /**
253
+ * Get tokens for a chain
254
+ */
255
+ export function getTokensForChain(chainId) {
256
+ switch (chainId) {
257
+ case 96369:
258
+ return LUX_MAINNET_TOKENS;
259
+ case 96368:
260
+ return LUX_TESTNET_TOKENS;
261
+ case 1337:
262
+ return LUX_DEV_TOKENS;
263
+ case 200200:
264
+ return ZOO_MAINNET_TOKENS;
265
+ default:
266
+ return [];
267
+ }
268
+ }
165
269
  /**
166
270
  * Get wrapped native token for chain
167
271
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxfi/exchange",
3
- "version": "0.2.0",
3
+ "version": "1.0.1",
4
4
  "description": "Lux Exchange SDK - React hooks and utilities for Lux DEX",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -68,7 +68,7 @@
68
68
  "repository": {
69
69
  "type": "git",
70
70
  "url": "https://github.com/luxfi/exchange.git",
71
- "directory": "packages/exchange"
71
+ "directory": "pkgs/exchange"
72
72
  },
73
73
  "keywords": [
74
74
  "lux",
@@ -1,7 +1,8 @@
1
1
  /**
2
- * UniswapV2Factory ABI
2
+ * AMM V2 Factory ABI
3
+ * Compatible with Lux V2 Factory interface
3
4
  */
4
- export const UNISWAP_V2_FACTORY_ABI = [
5
+ export const AMM_V2_FACTORY_ABI = [
5
6
  {
6
7
  type: 'function',
7
8
  name: 'getPair',
@@ -47,3 +48,6 @@ export const UNISWAP_V2_FACTORY_ABI = [
47
48
  ],
48
49
  },
49
50
  ] as const
51
+
52
+ /** @deprecated Use AMM_V2_FACTORY_ABI instead */
53
+ export const LUX_V2_FACTORY_ABI = AMM_V2_FACTORY_ABI
@@ -1,7 +1,8 @@
1
1
  /**
2
- * UniswapV2Pair ABI
2
+ * AMM V2 Pair ABI
3
+ * Compatible with Lux V2 Pair interface
3
4
  */
4
- export const UNISWAP_V2_PAIR_ABI = [
5
+ export const AMM_V2_PAIR_ABI = [
5
6
  {
6
7
  type: 'function',
7
8
  name: 'token0',
@@ -83,3 +84,6 @@ export const UNISWAP_V2_PAIR_ABI = [
83
84
  ],
84
85
  },
85
86
  ] as const
87
+
88
+ /** @deprecated Use AMM_V2_PAIR_ABI instead */
89
+ export const LUX_V2_PAIR_ABI = AMM_V2_PAIR_ABI
@@ -1,7 +1,8 @@
1
1
  /**
2
- * UniswapV2Router02 ABI (used by Lux AMM V2)
2
+ * AMM V2 Router ABI
3
+ * Compatible with Lux V2 Router02 interface
3
4
  */
4
- export const UNISWAP_V2_ROUTER_ABI = [
5
+ export const AMM_V2_ROUTER_ABI = [
5
6
  {
6
7
  type: 'function',
7
8
  name: 'factory',
@@ -144,3 +145,6 @@ export const UNISWAP_V2_ROUTER_ABI = [
144
145
  stateMutability: 'nonpayable',
145
146
  },
146
147
  ] as const
148
+
149
+ /** @deprecated Use AMM_V2_ROUTER_ABI instead */
150
+ export const LUX_V2_ROUTER_ABI = AMM_V2_ROUTER_ABI
@@ -1,7 +1,8 @@
1
1
  /**
2
- * UniswapV3Factory ABI
2
+ * AMM V3 Factory ABI
3
+ * Compatible with Lux V3 Factory interface
3
4
  */
4
- export const UNISWAP_V3_FACTORY_ABI = [
5
+ export const AMM_V3_FACTORY_ABI = [
5
6
  {
6
7
  type: 'function',
7
8
  name: 'getPool',
@@ -43,3 +44,6 @@ export const UNISWAP_V3_FACTORY_ABI = [
43
44
  ],
44
45
  },
45
46
  ] as const
47
+
48
+ /** @deprecated Use AMM_V3_FACTORY_ABI instead */
49
+ export const LUX_V3_FACTORY_ABI = AMM_V3_FACTORY_ABI
@@ -1,7 +1,8 @@
1
1
  /**
2
- * UniswapV3Pool ABI (essential functions)
2
+ * AMM V3 Pool ABI
3
+ * Compatible with Lux V3 Pool interface
3
4
  */
4
- export const UNISWAP_V3_POOL_ABI = [
5
+ export const AMM_V3_POOL_ABI = [
5
6
  {
6
7
  type: 'function',
7
8
  name: 'token0',
@@ -79,3 +80,6 @@ export const UNISWAP_V3_POOL_ABI = [
79
80
  ],
80
81
  },
81
82
  ] as const
83
+
84
+ /** @deprecated Use AMM_V3_POOL_ABI instead */
85
+ export const LUX_V3_POOL_ABI = AMM_V3_POOL_ABI
@@ -1,17 +1,27 @@
1
1
  /**
2
2
  * Contract ABIs for Lux Exchange
3
+ *
4
+ * AMM V2/V3 - Concentrated liquidity AMM (Lux V2/V3 compatible)
5
+ * DEX V4 - Hook-based DEX with singleton pool manager (Lux V4 compatible)
3
6
  */
4
7
 
5
- export { UNISWAP_V2_ROUTER_ABI } from './uniswap-v2-router'
6
- export { UNISWAP_V2_FACTORY_ABI } from './uniswap-v2-factory'
7
- export { UNISWAP_V2_PAIR_ABI } from './uniswap-v2-pair'
8
- export { UNISWAP_V3_FACTORY_ABI } from './uniswap-v3-factory'
9
- export { UNISWAP_V3_POOL_ABI } from './uniswap-v3-pool'
8
+ // AMM V2 ABIs
9
+ export { AMM_V2_ROUTER_ABI, LUX_V2_ROUTER_ABI } from './amm-v2-router'
10
+ export { AMM_V2_FACTORY_ABI, LUX_V2_FACTORY_ABI } from './amm-v2-factory'
11
+ export { AMM_V2_PAIR_ABI, LUX_V2_PAIR_ABI } from './amm-v2-pair'
12
+
13
+ // AMM V3 ABIs
14
+ export { AMM_V3_FACTORY_ABI, LUX_V3_FACTORY_ABI } from './amm-v3-factory'
15
+ export { AMM_V3_POOL_ABI, LUX_V3_POOL_ABI } from './amm-v3-pool'
16
+
17
+ // AMM V3 Periphery ABIs
10
18
  export { SWAP_ROUTER_ABI } from './swap-router'
11
19
  export { QUOTER_V2_ABI } from './quoter-v2'
12
20
  export { NFT_POSITION_MANAGER_ABI } from './nft-position-manager'
21
+
22
+ // Common ABIs
13
23
  export { ERC20_ABI } from './erc20'
14
24
 
15
- // DEX Precompile ABIs
25
+ // DEX V4 Precompile ABIs
16
26
  export { POOL_MANAGER_ABI } from './pool-manager'
17
27
  export { DEX_SWAP_ROUTER_ABI } from './dex-swap-router'
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PoolManager Precompile ABI (0x0400)
3
- * Native Uniswap v4-style AMM implementation
3
+ * Native Lux v4-style AMM implementation
4
4
  */
5
5
  export const POOL_MANAGER_ABI = [
6
6
  // Pool initialization