Skip to content

Commit 8069838

Browse files
committed
feat(avax): add avax abi and check swapExactAVAXForTokens
1 parent b95185e commit 8069838

File tree

9 files changed

+612
-13
lines changed

9 files changed

+612
-13
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import RouterV2ABI from '@masknet/web3-contracts/abis/RouterV2.json'
2+
import RouterAvaxABI from '@masknet/web3-contracts/abis/RouterV2AVAX.json'
23
import type { RouterV2 } from '@masknet/web3-contracts/types/RouterV2'
34
import { ChainId, useContract } from '@masknet/web3-shared-evm'
45
import type { AbiItem } from 'web3-utils'
56

67
export function useRouterV2Contract(address?: string, chainId?: ChainId) {
78
return useContract<RouterV2>(address, RouterV2ABI as AbiItem[], false, chainId)
89
}
10+
11+
export function useRouterAvaxV2Contract(address?: string, chainId?: ChainId) {
12+
return useContract<RouterV2>(address, RouterAvaxABI as AbiItem[], false, chainId)
13+
}

packages/mask/src/plugins/Trader/trader/uniswap/useTradeParameters.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { SLIPPAGE_DEFAULT } from '../../constants'
66
import { useAccount } from '@masknet/web3-shared-evm'
77
import type { SwapCall, Trade, TradeComputed } from '../../types'
88
import { SwapRouter } from '@uniswap/v3-sdk'
9-
import { useRouterV2Contract } from '../../contracts/uniswap/useRouterV2Contract'
9+
import { useRouterV2Contract, useRouterAvaxV2Contract } from '../../contracts/uniswap/useRouterV2Contract'
1010
import { useSwapRouterContract } from '../../contracts/uniswap/useSwapRouterContract'
1111
import { useTransactionDeadline } from './useTransactionDeadline'
1212
import type { TradeProvider } from '@masknet/public-api'
@@ -29,6 +29,7 @@ export function useSwapParameters(
2929
const { targetChainId } = TargetChainIdContext.useContainer()
3030
const deadline = useTransactionDeadline()
3131
const routerV2Contract = useRouterV2Contract(context?.ROUTER_CONTRACT_ADDRESS, targetChainId)
32+
const routerV2AvaxContract = useRouterAvaxV2Contract(context?.ROUTER_CONTRACT_ADDRESS, targetChainId)
3233
const swapRouterContract = useSwapRouterContract(context?.ROUTER_CONTRACT_ADDRESS, targetChainId)
3334

3435
return useMemo<SwapCall[]>(() => {
@@ -38,7 +39,7 @@ export function useSwapParameters(
3839
const allowedSlippage_ = new Percent(JSBI.BigInt(SLIPPAGE_DEFAULT), UNISWAP_BIPS_BASE)
3940

4041
if (trade_ instanceof V2Trade) {
41-
if (!routerV2Contract) return []
42+
if (!routerV2Contract || !routerV2AvaxContract) return []
4243
const parameters = [
4344
Router.swapCallParameters(trade_, {
4445
feeOnTransfer: false,
@@ -57,9 +58,16 @@ export function useSwapParameters(
5758
}),
5859
)
5960
return parameters.map(({ methodName, args, value }) => {
61+
const methodNCheck = !!(
62+
methodName === 'swapAVAXForExactTokens' ||
63+
'swapExactTokensForAVAX' ||
64+
'swapExactAVAXForTokens' ||
65+
'swapExactAVAXForTokensSupportingFeeOnTransferTokens'
66+
)
67+
const routerContract = methodNCheck ? routerV2Contract : routerV2AvaxContract
6068
return {
61-
address: routerV2Contract.options.address,
62-
calldata: routerV2Contract.methods[methodName as keyof typeof routerV2Contract.methods](
69+
address: routerContract.options.address,
70+
calldata: routerContract.methods[methodName as keyof typeof routerContract.methods](
6371
// @ts-ignore
6472
...args,
6573
).encodeABI(),
@@ -81,5 +89,5 @@ export function useSwapParameters(
8189
},
8290
]
8391
}
84-
}, [account, SLIPPAGE_DEFAULT, deadline, trade, routerV2Contract, swapRouterContract])
92+
}, [account, SLIPPAGE_DEFAULT, deadline, trade, routerV2Contract, routerV2AvaxContract, swapRouterContract])
8593
}

packages/web3-contracts/abis/RouterV2AVAX.json

Lines changed: 340 additions & 0 deletions
Large diffs are not rendered by default.

packages/web3-contracts/types/CryptoArtAIArtistAcceptingBidsV2.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
BaseContract,
1616
} from './types'
1717

18-
export interface EventOptions {
18+
interface EventOptions {
1919
filter?: object
2020
fromBlock?: BlockType
2121
topics?: string[]

packages/web3-contracts/types/CryptoArtAICANFTMarket.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
BaseContract,
1616
} from './types'
1717

18-
export interface EventOptions {
18+
interface EventOptions {
1919
filter?: object
2020
fromBlock?: BlockType
2121
topics?: string[]

packages/web3-contracts/types/CryptoArtAIKnownOriginDigitalAssetV2.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
BaseContract,
1616
} from './types'
1717

18-
export interface EventOptions {
18+
interface EventOptions {
1919
filter?: object
2020
fromBlock?: BlockType
2121
topics?: string[]

packages/web3-contracts/types/ERC20.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,19 @@ export interface ERC20 extends BaseContract {
4444
methods: {
4545
name(): NonPayableTransactionObject<string>
4646

47-
approve(_spender: string, _value: number | string | BN): NonPayableTransactionObject<boolean>
47+
approve(spender: string, value: number | string | BN): NonPayableTransactionObject<boolean>
4848

4949
totalSupply(): NonPayableTransactionObject<string>
5050

51-
transferFrom(_from: string, _to: string, _value: number | string | BN): NonPayableTransactionObject<boolean>
51+
transferFrom(from: string, to: string, value: number | string | BN): NonPayableTransactionObject<boolean>
5252

5353
decimals(): NonPayableTransactionObject<string>
5454

5555
balanceOf(_owner: string): NonPayableTransactionObject<string>
5656

5757
symbol(): NonPayableTransactionObject<string>
5858

59-
transfer(_to: string, _value: number | string | BN): NonPayableTransactionObject<boolean>
59+
transfer(to: string, value: number | string | BN): NonPayableTransactionObject<boolean>
6060

6161
allowance(_owner: string, _spender: string): NonPayableTransactionObject<string>
6262
}
Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
/* Autogenerated file. Do not edit manually. */
2+
/* tslint:disable */
3+
/* eslint-disable */
4+
5+
import BN from 'bn.js'
6+
import { ContractOptions } from 'web3-eth-contract'
7+
import { EventLog } from 'web3-core'
8+
import { EventEmitter } from 'events'
9+
import {
10+
Callback,
11+
PayableTransactionObject,
12+
NonPayableTransactionObject,
13+
BlockType,
14+
ContractEventLog,
15+
BaseContract,
16+
} from './types'
17+
18+
interface EventOptions {
19+
filter?: object
20+
fromBlock?: BlockType
21+
topics?: string[]
22+
}
23+
24+
export interface RouterV2AVAX extends BaseContract {
25+
constructor(jsonInterface: any[], address?: string, options?: ContractOptions): RouterV2AVAX
26+
clone(): RouterV2AVAX
27+
methods: {
28+
WAVAX(): NonPayableTransactionObject<string>
29+
30+
addLiquidity(
31+
tokenA: string,
32+
tokenB: string,
33+
amountADesired: number | string | BN,
34+
amountBDesired: number | string | BN,
35+
amountAMin: number | string | BN,
36+
amountBMin: number | string | BN,
37+
to: string,
38+
deadline: number | string | BN,
39+
): NonPayableTransactionObject<{
40+
amountA: string
41+
amountB: string
42+
liquidity: string
43+
0: string
44+
1: string
45+
2: string
46+
}>
47+
48+
addLiquidityAVAX(
49+
token: string,
50+
amountTokenDesired: number | string | BN,
51+
amountTokenMin: number | string | BN,
52+
amountAVAXMin: number | string | BN,
53+
to: string,
54+
deadline: number | string | BN,
55+
): PayableTransactionObject<{
56+
amountToken: string
57+
amountAVAX: string
58+
liquidity: string
59+
0: string
60+
1: string
61+
2: string
62+
}>
63+
64+
factory(): NonPayableTransactionObject<string>
65+
66+
getAmountIn(
67+
amountOut: number | string | BN,
68+
reserveIn: number | string | BN,
69+
reserveOut: number | string | BN,
70+
): NonPayableTransactionObject<string>
71+
72+
getAmountOut(
73+
amountIn: number | string | BN,
74+
reserveIn: number | string | BN,
75+
reserveOut: number | string | BN,
76+
): NonPayableTransactionObject<string>
77+
78+
getAmountsIn(amountOut: number | string | BN, path: string[]): NonPayableTransactionObject<string[]>
79+
80+
getAmountsOut(amountIn: number | string | BN, path: string[]): NonPayableTransactionObject<string[]>
81+
82+
quote(
83+
amountA: number | string | BN,
84+
reserveA: number | string | BN,
85+
reserveB: number | string | BN,
86+
): NonPayableTransactionObject<string>
87+
88+
removeLiquidity(
89+
tokenA: string,
90+
tokenB: string,
91+
liquidity: number | string | BN,
92+
amountAMin: number | string | BN,
93+
amountBMin: number | string | BN,
94+
to: string,
95+
deadline: number | string | BN,
96+
): NonPayableTransactionObject<{
97+
amountA: string
98+
amountB: string
99+
0: string
100+
1: string
101+
}>
102+
103+
removeLiquidityAVAX(
104+
token: string,
105+
liquidity: number | string | BN,
106+
amountTokenMin: number | string | BN,
107+
amountAVAXMin: number | string | BN,
108+
to: string,
109+
deadline: number | string | BN,
110+
): NonPayableTransactionObject<{
111+
amountToken: string
112+
amountAVAX: string
113+
0: string
114+
1: string
115+
}>
116+
117+
removeLiquidityAVAXSupportingFeeOnTransferTokens(
118+
token: string,
119+
liquidity: number | string | BN,
120+
amountTokenMin: number | string | BN,
121+
amountAVAXMin: number | string | BN,
122+
to: string,
123+
deadline: number | string | BN,
124+
): NonPayableTransactionObject<string>
125+
126+
removeLiquidityAVAXWithPermit(
127+
token: string,
128+
liquidity: number | string | BN,
129+
amountTokenMin: number | string | BN,
130+
amountAVAXMin: number | string | BN,
131+
to: string,
132+
deadline: number | string | BN,
133+
approveMax: boolean,
134+
v: number | string | BN,
135+
r: string | number[],
136+
s: string | number[],
137+
): NonPayableTransactionObject<{
138+
amountToken: string
139+
amountAVAX: string
140+
0: string
141+
1: string
142+
}>
143+
144+
removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens(
145+
token: string,
146+
liquidity: number | string | BN,
147+
amountTokenMin: number | string | BN,
148+
amountAVAXMin: number | string | BN,
149+
to: string,
150+
deadline: number | string | BN,
151+
approveMax: boolean,
152+
v: number | string | BN,
153+
r: string | number[],
154+
s: string | number[],
155+
): NonPayableTransactionObject<string>
156+
157+
removeLiquidityWithPermit(
158+
tokenA: string,
159+
tokenB: string,
160+
liquidity: number | string | BN,
161+
amountAMin: number | string | BN,
162+
amountBMin: number | string | BN,
163+
to: string,
164+
deadline: number | string | BN,
165+
approveMax: boolean,
166+
v: number | string | BN,
167+
r: string | number[],
168+
s: string | number[],
169+
): NonPayableTransactionObject<{
170+
amountA: string
171+
amountB: string
172+
0: string
173+
1: string
174+
}>
175+
176+
swapAVAXForExactTokens(
177+
amountOut: number | string | BN,
178+
path: string[],
179+
to: string,
180+
deadline: number | string | BN,
181+
): PayableTransactionObject<string[]>
182+
183+
swapExactAVAXForTokens(
184+
amountOutMin: number | string | BN,
185+
path: string[],
186+
to: string,
187+
deadline: number | string | BN,
188+
): PayableTransactionObject<string[]>
189+
190+
swapExactAVAXForTokensSupportingFeeOnTransferTokens(
191+
amountOutMin: number | string | BN,
192+
path: string[],
193+
to: string,
194+
deadline: number | string | BN,
195+
): PayableTransactionObject<void>
196+
197+
swapExactTokensForAVAX(
198+
amountIn: number | string | BN,
199+
amountOutMin: number | string | BN,
200+
path: string[],
201+
to: string,
202+
deadline: number | string | BN,
203+
): NonPayableTransactionObject<string[]>
204+
205+
swapExactTokensForAVAXSupportingFeeOnTransferTokens(
206+
amountIn: number | string | BN,
207+
amountOutMin: number | string | BN,
208+
path: string[],
209+
to: string,
210+
deadline: number | string | BN,
211+
): NonPayableTransactionObject<void>
212+
213+
swapExactTokensForTokens(
214+
amountIn: number | string | BN,
215+
amountOutMin: number | string | BN,
216+
path: string[],
217+
to: string,
218+
deadline: number | string | BN,
219+
): NonPayableTransactionObject<string[]>
220+
221+
swapExactTokensForTokensSupportingFeeOnTransferTokens(
222+
amountIn: number | string | BN,
223+
amountOutMin: number | string | BN,
224+
path: string[],
225+
to: string,
226+
deadline: number | string | BN,
227+
): NonPayableTransactionObject<void>
228+
229+
swapTokensForExactAVAX(
230+
amountOut: number | string | BN,
231+
amountInMax: number | string | BN,
232+
path: string[],
233+
to: string,
234+
deadline: number | string | BN,
235+
): NonPayableTransactionObject<string[]>
236+
237+
swapTokensForExactTokens(
238+
amountOut: number | string | BN,
239+
amountInMax: number | string | BN,
240+
path: string[],
241+
to: string,
242+
deadline: number | string | BN,
243+
): NonPayableTransactionObject<string[]>
244+
}
245+
events: {
246+
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter
247+
}
248+
}

packages/web3-contracts/types/types.d.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ export interface NonPayableTx {
3535
to?: string
3636
data?: string
3737
gas?: string | number | BN
38-
maxFeePerGas?: string | number | BN
39-
maxPriorityFeePerGas?: string | number | BN
4038
gasPrice?: string | number | BN
4139
}
4240

0 commit comments

Comments
 (0)