@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.
- package/dist/chains/lux.d.ts +6 -116
- package/dist/chains/lux.d.ts.map +1 -1
- package/dist/contracts/abis/amm-v2-factory.d.ts +148 -0
- package/dist/contracts/abis/amm-v2-factory.d.ts.map +1 -0
- package/dist/contracts/abis/{uniswap-v2-factory.js → amm-v2-factory.js} +5 -2
- package/dist/contracts/abis/amm-v2-pair.d.ts +236 -0
- package/dist/contracts/abis/amm-v2-pair.d.ts.map +1 -0
- package/dist/contracts/abis/{uniswap-v2-pair.js → amm-v2-pair.js} +5 -2
- package/dist/contracts/abis/amm-v2-router.d.ts +496 -0
- package/dist/contracts/abis/amm-v2-router.d.ts.map +1 -0
- package/dist/contracts/abis/{uniswap-v2-router.js → amm-v2-router.js} +5 -2
- package/dist/contracts/abis/amm-v3-factory.d.ts +152 -0
- package/dist/contracts/abis/amm-v3-factory.d.ts.map +1 -0
- package/dist/contracts/abis/{uniswap-v3-factory.js → amm-v3-factory.js} +5 -2
- package/dist/contracts/abis/amm-v3-pool.d.ts +254 -0
- package/dist/contracts/abis/amm-v3-pool.d.ts.map +1 -0
- package/dist/contracts/abis/{uniswap-v3-pool.js → amm-v3-pool.js} +5 -2
- package/dist/contracts/abis/index.d.ts +8 -5
- package/dist/contracts/abis/index.d.ts.map +1 -1
- package/dist/contracts/abis/index.js +13 -6
- package/dist/contracts/abis/pool-manager.d.ts +1 -1
- package/dist/contracts/abis/pool-manager.js +1 -1
- package/dist/contracts/addresses.d.ts +30 -42
- package/dist/contracts/addresses.d.ts.map +1 -1
- package/dist/contracts/addresses.js +49 -50
- package/dist/hooks/use-pools.d.ts.map +1 -1
- package/dist/hooks/use-pools.js +8 -6
- package/dist/hooks/use-swap.js +1 -1
- package/dist/hooks/use-token-allowance.d.ts +1 -1
- package/dist/tokens/index.d.ts +31 -3
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +136 -32
- package/package.json +2 -2
- package/src/contracts/abis/{uniswap-v2-factory.ts → amm-v2-factory.ts} +6 -2
- package/src/contracts/abis/{uniswap-v2-pair.ts → amm-v2-pair.ts} +6 -2
- package/src/contracts/abis/{uniswap-v2-router.ts → amm-v2-router.ts} +6 -2
- package/src/contracts/abis/{uniswap-v3-factory.ts → amm-v3-factory.ts} +6 -2
- package/src/contracts/abis/{uniswap-v3-pool.ts → amm-v3-pool.ts} +6 -2
- package/src/contracts/abis/index.ts +16 -6
- package/src/contracts/abis/pool-manager.ts +1 -1
- package/src/contracts/addresses.ts +53 -52
- package/src/hooks/use-pools.ts +8 -6
- package/src/hooks/use-positions.ts +3 -3
- package/src/hooks/use-swap-quote.ts +1 -1
- package/src/hooks/use-swap.ts +1 -1
- package/src/tokens/index.ts +148 -32
- package/dist/contracts/abis/uniswap-v2-factory.d.ts +0 -75
- package/dist/contracts/abis/uniswap-v2-factory.d.ts.map +0 -1
- package/dist/contracts/abis/uniswap-v2-pair.d.ts +0 -119
- package/dist/contracts/abis/uniswap-v2-pair.d.ts.map +0 -1
- package/dist/contracts/abis/uniswap-v2-router.d.ts +0 -249
- package/dist/contracts/abis/uniswap-v2-router.d.ts.map +0 -1
- package/dist/contracts/abis/uniswap-v3-factory.d.ts +0 -77
- package/dist/contracts/abis/uniswap-v3-factory.d.ts.map +0 -1
- package/dist/contracts/abis/uniswap-v3-pool.d.ts +0 -128
- package/dist/contracts/abis/uniswap-v3-pool.d.ts.map +0 -1
package/dist/hooks/use-pools.js
CHANGED
|
@@ -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 {
|
|
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:
|
|
21
|
-
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:
|
|
34
|
+
abi: LUX_V3_POOL_ABI,
|
|
33
35
|
functionName: 'slot0',
|
|
34
36
|
}),
|
|
35
37
|
publicClient.readContract({
|
|
36
38
|
address: poolAddress,
|
|
37
|
-
abi:
|
|
39
|
+
abi: LUX_V3_POOL_ABI,
|
|
38
40
|
functionName: 'liquidity',
|
|
39
41
|
}),
|
|
40
42
|
publicClient.readContract({
|
|
41
43
|
address: poolAddress,
|
|
42
|
-
abi:
|
|
44
|
+
abi: LUX_V3_POOL_ABI,
|
|
43
45
|
functionName: 'tickSpacing',
|
|
44
46
|
}),
|
|
45
47
|
]);
|
package/dist/hooks/use-swap.js
CHANGED
|
@@ -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
|
|
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
|
package/dist/tokens/index.d.ts
CHANGED
|
@@ -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
|
|
47
|
-
export declare const
|
|
48
|
-
export declare const
|
|
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,
|
|
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"}
|
package/dist/tokens/index.js
CHANGED
|
@@ -21,21 +21,22 @@ export const NATIVE_ZOO = {
|
|
|
21
21
|
* Wrapped native tokens
|
|
22
22
|
*/
|
|
23
23
|
export const WLUX_MAINNET = {
|
|
24
|
-
address: '
|
|
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: '
|
|
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
|
|
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: '
|
|
49
|
+
address: '0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2',
|
|
49
50
|
chainId: 96369,
|
|
50
51
|
decimals: 18,
|
|
51
52
|
symbol: 'LUSD',
|
|
52
|
-
name: 'Lux
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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
|
|
120
|
-
address: '
|
|
190
|
+
export const LETH_ZOO = {
|
|
191
|
+
address: '0x4870621EA8be7a383eFCfdA225249d35888bD9f2',
|
|
121
192
|
chainId: 200200,
|
|
122
|
-
decimals:
|
|
123
|
-
symbol: '
|
|
124
|
-
name: '
|
|
193
|
+
decimals: 18,
|
|
194
|
+
symbol: 'LETH',
|
|
195
|
+
name: 'Lux ETH',
|
|
125
196
|
};
|
|
126
|
-
export const
|
|
127
|
-
address: '
|
|
197
|
+
export const LBTC_ZOO = {
|
|
198
|
+
address: '0x6fc44509a32E513bE1aa00d27bb298e63830C6A8',
|
|
128
199
|
chainId: 200200,
|
|
129
|
-
decimals:
|
|
130
|
-
symbol: '
|
|
131
|
-
name: '
|
|
200
|
+
decimals: 8,
|
|
201
|
+
symbol: 'LBTC',
|
|
202
|
+
name: 'Lux BTC',
|
|
132
203
|
};
|
|
133
|
-
export const
|
|
134
|
-
address: '
|
|
204
|
+
export const LUSD_ZOO = {
|
|
205
|
+
address: '0xb2ee1CE7b84853b83AA08702aD0aD4D79711882D',
|
|
135
206
|
chainId: 200200,
|
|
136
207
|
decimals: 18,
|
|
137
|
-
symbol: '
|
|
138
|
-
name: '
|
|
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
|
-
|
|
147
|
-
USDT_LUX,
|
|
148
|
-
WETH_LUX,
|
|
149
|
-
WBTC_LUX,
|
|
150
|
-
DAI_LUX,
|
|
217
|
+
LUSD,
|
|
151
218
|
LETH,
|
|
152
219
|
LBTC,
|
|
153
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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.
|
|
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": "
|
|
71
|
+
"directory": "pkgs/exchange"
|
|
72
72
|
},
|
|
73
73
|
"keywords": [
|
|
74
74
|
"lux",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* AMM V2 Factory ABI
|
|
3
|
+
* Compatible with Lux V2 Factory interface
|
|
3
4
|
*/
|
|
4
|
-
export const
|
|
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
|
-
*
|
|
2
|
+
* AMM V2 Pair ABI
|
|
3
|
+
* Compatible with Lux V2 Pair interface
|
|
3
4
|
*/
|
|
4
|
-
export const
|
|
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
|
-
*
|
|
2
|
+
* AMM V2 Router ABI
|
|
3
|
+
* Compatible with Lux V2 Router02 interface
|
|
3
4
|
*/
|
|
4
|
-
export const
|
|
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
|
-
*
|
|
2
|
+
* AMM V3 Factory ABI
|
|
3
|
+
* Compatible with Lux V3 Factory interface
|
|
3
4
|
*/
|
|
4
|
-
export const
|
|
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
|
-
*
|
|
2
|
+
* AMM V3 Pool ABI
|
|
3
|
+
* Compatible with Lux V3 Pool interface
|
|
3
4
|
*/
|
|
4
|
-
export const
|
|
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
|
-
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
|
|
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'
|