h-agent-swap 1.0.0
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/README.md +418 -0
- package/package.json +28 -0
- package/src/abi/SwapFactory.json +252 -0
- package/src/abi/SwapRouter.json +1045 -0
- package/src/abi/TokenMarket.json +967 -0
- package/src/agent-swap.js +373 -0
- package/src/index.js +16 -0
- package/src/swap-factory.js +28 -0
- package/src/swap-router.js +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
```
|
|
2
|
+
npm publish
|
|
3
|
+
```
|
|
4
|
+
```
|
|
5
|
+
|
|
6
|
+
import { NewFiV3 } from "h-newfi"
|
|
7
|
+
|
|
8
|
+
async function init() {
|
|
9
|
+
let accounts = await ethereum.enable()
|
|
10
|
+
return {
|
|
11
|
+
provider: ethereum,
|
|
12
|
+
account: accounts[0]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
//部署Staked合约
|
|
18
|
+
async function deploy_v3() {
|
|
19
|
+
let newfi = await initObj_v3()
|
|
20
|
+
let route = "0x9a489505a00cE272eAa5e07Dba6491314CaE3796"
|
|
21
|
+
let quotev2 = "0xbC203d7f83677c7ed3F7acEc959963E7F4ECC5C2"
|
|
22
|
+
let compute = "0x8F61a05142ca5aDb54706d208C0AC370c8Fd7Cb0"
|
|
23
|
+
let signer = "0x55959f0D5e1b7DC57fe4079e596b8BBafFF123B1"
|
|
24
|
+
let { _address } = await newfi.deploy({
|
|
25
|
+
route,quotev2,compute,signer
|
|
26
|
+
})
|
|
27
|
+
console.log(_address)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
async function initObj_v3() {
|
|
35
|
+
let { provider,account } = await this.init()
|
|
36
|
+
let newfi = new NewFiV3({
|
|
37
|
+
provider,account,
|
|
38
|
+
contract: "0xdB8C6A407e6d088CF27788ef99e47a2e5cC13cb8"
|
|
39
|
+
})
|
|
40
|
+
return newfi
|
|
41
|
+
}
|
|
42
|
+
//参与质押
|
|
43
|
+
async function Invest_v3() {
|
|
44
|
+
let newfi = await initObj_v3()
|
|
45
|
+
<!-- 项目ID -->
|
|
46
|
+
let id = 1
|
|
47
|
+
<!-- 质押金额 -->
|
|
48
|
+
let amount = 4
|
|
49
|
+
let result = await newfi.Invest({
|
|
50
|
+
id,amount
|
|
51
|
+
})
|
|
52
|
+
console.log(result)
|
|
53
|
+
<!-- 查询合约中某个币种的余额 -->
|
|
54
|
+
let balance = await newfi.balanceOf("币种合约地址")
|
|
55
|
+
}
|
|
56
|
+
// 构建项目
|
|
57
|
+
async function poolCreat_v3() {
|
|
58
|
+
let newfi = await initObj_v3()
|
|
59
|
+
let id = 5 //项目ID
|
|
60
|
+
let token0 = "0xaB1a4d4f1D656d2450692D237fdD6C7f9146e814"//质押币种合约地址
|
|
61
|
+
let token1 = "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"//组成Farm的另外一种币合约址
|
|
62
|
+
let fee = "500" //流动性手续费
|
|
63
|
+
let point = "500000"
|
|
64
|
+
let result = await newfi.poolCreat({
|
|
65
|
+
id,token0,token1,fee,point
|
|
66
|
+
})
|
|
67
|
+
console.log(result)
|
|
68
|
+
}
|
|
69
|
+
//计算对象 用于部署Compute合约
|
|
70
|
+
Compute
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
<!-- 示例 -->
|
|
86
|
+
|
|
87
|
+
<!DOCTYPE html>
|
|
88
|
+
<html lang="en">
|
|
89
|
+
|
|
90
|
+
<head>
|
|
91
|
+
<meta charset="UTF-8">
|
|
92
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
93
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
94
|
+
<title>Document</title>
|
|
95
|
+
<link rel="stylesheet" href="./static/style.css">
|
|
96
|
+
<style>
|
|
97
|
+
* {
|
|
98
|
+
margin: 0;
|
|
99
|
+
padding: 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
body {
|
|
103
|
+
padding: 24px;
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
flex-wrap: wrap;
|
|
107
|
+
justify-content: space-between;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.btnItem {
|
|
111
|
+
padding: 8px 20px;
|
|
112
|
+
border-radius: 4px;
|
|
113
|
+
background-color: cornflowerblue;
|
|
114
|
+
color: #fff;
|
|
115
|
+
font-size: 14px;
|
|
116
|
+
font-weight: bold;
|
|
117
|
+
cursor: pointer;
|
|
118
|
+
margin-bottom: 24px;
|
|
119
|
+
}
|
|
120
|
+
</style>
|
|
121
|
+
</head>
|
|
122
|
+
|
|
123
|
+
<body>
|
|
124
|
+
<!-- <span class="btnItem" onclick="deploy()">deploy</span>
|
|
125
|
+
<span class="btnItem" onclick="poolCreat()">poolCreat</span>
|
|
126
|
+
<span class="btnItem" onclick="view()">view</span>
|
|
127
|
+
<span class="btnItem" onclick="Invest()">Invest</span>
|
|
128
|
+
<span class="btnItem" onclick="tokenExtract()">tokenExtract</span>
|
|
129
|
+
<span class="btnItem" onclick="Convert()">Convert</span>
|
|
130
|
+
<span class="btnItem" onclick="Extract()">Extract</span>
|
|
131
|
+
<span class="btnItem" onclick="deployLiquidity()">deployLiquidity</span> -->
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
<span class="btnItem" onclick="deploy_v3()">deploy_v3</span>
|
|
136
|
+
<span class="btnItem" onclick="Invest_v3()">Invest_v3</span>
|
|
137
|
+
<span class="btnItem" onclick="poolCreat_v3()">poolCreat_v3</span>
|
|
138
|
+
<span class="btnItem" onclick="Challenge_v3()">Challenge_v3</span>
|
|
139
|
+
<span class="btnItem" onclick="pendingReward_v3()">pendingReward_v3</span>
|
|
140
|
+
<span class="btnItem" onclick="balanceOf_v3()">balanceOf_v3</span>
|
|
141
|
+
<span class="btnItem" onclick="harvestFarm_v3()">harvestFarm_v3</span>
|
|
142
|
+
|
|
143
|
+
<span class="btnItem" onclick="withdrawFarm_v3()">withdrawFarm_v3</span>
|
|
144
|
+
<span class="btnItem" onclick="withdrawNFT_v3()">withdrawNFT_v3</span>
|
|
145
|
+
<span class="btnItem" onclick="poolControl_v3()">poolControl_v3</span>
|
|
146
|
+
<span class="btnItem" onclick="Extract_v3()">Extract_v3</span>
|
|
147
|
+
<span class="btnItem" onclick="withdrawFarmPosition_v3()">withdrawFarmPosition_v3</span>
|
|
148
|
+
<span class="btnItem" onclick="poolTokenID_v3()">poolTokenID_v3</span>
|
|
149
|
+
<script src="./bundle.js"></script>
|
|
150
|
+
<script>
|
|
151
|
+
// USDT 0xf2DC315D6591599701d4346c7A8E911C24d79740
|
|
152
|
+
// CAKE 0xFa60D973F7642B748046464e165A65B7323b0DEE
|
|
153
|
+
// BUSDT 0x8516Fc284AEEaa0374E66037BD2309349FF728eA
|
|
154
|
+
// JC 0xD703E8617179f5D86CCf95a57694f9bA8335A5E1
|
|
155
|
+
// WBNB 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd
|
|
156
|
+
// TF 0x3E465b0B46D552Bbf8396345b768d31e5cf9c5BE
|
|
157
|
+
// 1000000000000000000000
|
|
158
|
+
async function deployLiquidity() {
|
|
159
|
+
let { provider,account } = await this.init()
|
|
160
|
+
let newfi = new Liquidity({
|
|
161
|
+
provider,account
|
|
162
|
+
})
|
|
163
|
+
let { _address } = await newfi.deploy()
|
|
164
|
+
console.log(_address)
|
|
165
|
+
}
|
|
166
|
+
async function initObj_v3() {
|
|
167
|
+
let { provider,account } = await this.init()
|
|
168
|
+
let newfi = new NewFiV3({
|
|
169
|
+
provider,account,
|
|
170
|
+
contract: "0x07D9c67602241E4c0a5c02042788f79d997ab85f"
|
|
171
|
+
})
|
|
172
|
+
return newfi
|
|
173
|
+
}
|
|
174
|
+
async function Invest_v3() {
|
|
175
|
+
let newfi = await initObj_v3()
|
|
176
|
+
let id = 5
|
|
177
|
+
let amount = 0.0003
|
|
178
|
+
let result = await newfi.Invest({
|
|
179
|
+
id,amount
|
|
180
|
+
})
|
|
181
|
+
console.log(result)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
async function Extract_v3() {
|
|
185
|
+
let newfi = await initObj_v3()
|
|
186
|
+
|
|
187
|
+
let result = await newfi.Extract({
|
|
188
|
+
id:5,
|
|
189
|
+
token:"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd",
|
|
190
|
+
// token:"0x8d008b313c1d6c7fe2982f62d32da7507cf43551",
|
|
191
|
+
amount:0.00001
|
|
192
|
+
})
|
|
193
|
+
console.log(result)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
async function poolControl_v3() {
|
|
197
|
+
let newfi = await initObj_v3()
|
|
198
|
+
let id = 5
|
|
199
|
+
let inStatus = true
|
|
200
|
+
let outStatus = true
|
|
201
|
+
let result = await newfi.poolControl({
|
|
202
|
+
id,inStatus,outStatus
|
|
203
|
+
})
|
|
204
|
+
console.log(result)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
async function withdrawNFT_v3() {
|
|
208
|
+
let newfi = await initObj_v3()
|
|
209
|
+
let tokenID = 619
|
|
210
|
+
let result = await newfi.withdrawNFT(tokenID)
|
|
211
|
+
console.log(result)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
async function withdrawFarm_v3() {
|
|
215
|
+
let newfi = await initObj_v3()
|
|
216
|
+
let id = 5
|
|
217
|
+
let result = await newfi.withdrawFarm(id)
|
|
218
|
+
console.log(result)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
async function poolTokenID_v3() {
|
|
222
|
+
let newfi = await initObj_v3()
|
|
223
|
+
let id = 5
|
|
224
|
+
let tokenId = "623"
|
|
225
|
+
|
|
226
|
+
let result = await newfi.poolTokenID({
|
|
227
|
+
id,tokenId
|
|
228
|
+
})
|
|
229
|
+
console.log(result)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
async function withdrawFarmPosition_v3() {
|
|
233
|
+
let newfi = await initObj_v3()
|
|
234
|
+
let id = 5
|
|
235
|
+
let result = await newfi.withdrawFarmPosition(id)
|
|
236
|
+
console.log(result)
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
async function harvestFarm_v3() {
|
|
240
|
+
let newfi = await initObj_v3()
|
|
241
|
+
let id = 5
|
|
242
|
+
let result = await newfi.harvestFarm(id)
|
|
243
|
+
console.log(result)
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
async function Challenge_v3() {
|
|
247
|
+
let newfi = await initObj_v3()
|
|
248
|
+
let id = 5
|
|
249
|
+
let result = await newfi.Challenge(id)
|
|
250
|
+
console.log(result)
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async function pendingReward_v3() {
|
|
254
|
+
let newfi = await initObj_v3()
|
|
255
|
+
let id = 5
|
|
256
|
+
let result = await newfi.pendingReward(id)
|
|
257
|
+
console.log(result)
|
|
258
|
+
}
|
|
259
|
+
async function balanceOf_v3() {
|
|
260
|
+
let newfi = await initObj_v3()
|
|
261
|
+
// weth => eth
|
|
262
|
+
let token = "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"
|
|
263
|
+
let result = await newfi.balanceOf(token)
|
|
264
|
+
console.log(result)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
async function poolCreat_v3() {
|
|
268
|
+
let newfi = await initObj_v3()
|
|
269
|
+
let id = 5 //项目ID
|
|
270
|
+
let token0 = "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"//质押币种合约地址
|
|
271
|
+
let token1 = "0x8d008B313C1d6C7fE2982F62d32Da7507cF43551"//组成Farm的另外一种币种合约地址
|
|
272
|
+
let fee = 2500 //流动性手续费
|
|
273
|
+
let point = 500000 //滑点
|
|
274
|
+
let result = await newfi.poolCreat({
|
|
275
|
+
id,token0,token1,fee,point
|
|
276
|
+
})
|
|
277
|
+
console.log(result)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
async function deploy_v3() {
|
|
281
|
+
let newfi = await initObj_v3()
|
|
282
|
+
let route = "0x9a489505a00cE272eAa5e07Dba6491314CaE3796"
|
|
283
|
+
let quotev2 = "0xbC203d7f83677c7ed3F7acEc959963E7F4ECC5C2"
|
|
284
|
+
let compute = "0x8F61a05142ca5aDb54706d208C0AC370c8Fd7Cb0"
|
|
285
|
+
let signer = "0x55959f0D5e1b7DC57fe4079e596b8BBafFF123B1"
|
|
286
|
+
|
|
287
|
+
let { _address } = await newfi.deploy({
|
|
288
|
+
route,quotev2,compute,signer
|
|
289
|
+
})
|
|
290
|
+
console.log(_address)
|
|
291
|
+
}
|
|
292
|
+
async function deploy() {
|
|
293
|
+
let newfi = await initObj()
|
|
294
|
+
let route = "0xd99d1c33f9fc3444f8101754abc46c52416550d1"
|
|
295
|
+
let farm = "0xb4a466911556e39210a6bb2faecbb59e4eb7e43d"
|
|
296
|
+
let signer = "0x55959f0D5e1b7DC57fe4079e596b8BBafFF123B1"
|
|
297
|
+
|
|
298
|
+
let { _address } = await newfi.deploy({
|
|
299
|
+
route,farm,signer
|
|
300
|
+
})
|
|
301
|
+
console.log(_address)
|
|
302
|
+
}
|
|
303
|
+
async function view() {
|
|
304
|
+
let newfi = await initObj()
|
|
305
|
+
let route = await newfi.route()
|
|
306
|
+
console.log(route)
|
|
307
|
+
let factory = await newfi.factory()
|
|
308
|
+
console.log(factory)
|
|
309
|
+
let farm = await newfi.farm()
|
|
310
|
+
console.log(farm)
|
|
311
|
+
let weth = await newfi.weth()
|
|
312
|
+
console.log(weth)
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
async function tokenExtract() {
|
|
316
|
+
let newfi = await initObj()
|
|
317
|
+
|
|
318
|
+
let result = await newfi.tokenExtract({
|
|
319
|
+
token:"0xFa60D973F7642B748046464e165A65B7323b0DEE",
|
|
320
|
+
amount:"220000"
|
|
321
|
+
})
|
|
322
|
+
console.log(result)
|
|
323
|
+
}
|
|
324
|
+
async function poolCreat() {
|
|
325
|
+
let newfi = await initObj()
|
|
326
|
+
|
|
327
|
+
let result = await newfi.poolCreat({
|
|
328
|
+
id:1,
|
|
329
|
+
token0:"0xFa60D973F7642B748046464e165A65B7323b0DEE",
|
|
330
|
+
token1:"0x0000000000000000000000000000000000000000",
|
|
331
|
+
pid:4,
|
|
332
|
+
point:50
|
|
333
|
+
})
|
|
334
|
+
console.log(result)
|
|
335
|
+
}
|
|
336
|
+
async function Invest() {
|
|
337
|
+
let newfi = await initObj()
|
|
338
|
+
let id = 2
|
|
339
|
+
let amount = 0.000005
|
|
340
|
+
|
|
341
|
+
let pool = await newfi.pool(id)
|
|
342
|
+
let token = pool.token0.token
|
|
343
|
+
let kind = pool.token0.kind
|
|
344
|
+
|
|
345
|
+
let balance = 0
|
|
346
|
+
let inToken;
|
|
347
|
+
if(kind == 3) {
|
|
348
|
+
inToken = new HERC20({ ...newfi.network, contract: token })
|
|
349
|
+
}else {
|
|
350
|
+
inToken = new HERC20({ ...newfi.network, contract: "" })
|
|
351
|
+
}
|
|
352
|
+
balance = await inToken.balanceOf(newfi.web3.eth.defaultAccount)
|
|
353
|
+
console.log(balance)
|
|
354
|
+
balance = await inToken.fromAmount(balance);
|
|
355
|
+
|
|
356
|
+
if(parseFloat(balance) >= parseFloat(balance)) {
|
|
357
|
+
let result = await newfi.Invest({
|
|
358
|
+
id,amount
|
|
359
|
+
})
|
|
360
|
+
}else {
|
|
361
|
+
cosnole.log("余额不足")
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// let result = await newfi.Invest({
|
|
365
|
+
// id,amount
|
|
366
|
+
// })
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
// console.log(result)
|
|
370
|
+
}
|
|
371
|
+
async function Extract() {
|
|
372
|
+
let newfi = await initObj()
|
|
373
|
+
|
|
374
|
+
let result = await newfi.Extract({
|
|
375
|
+
id:1,
|
|
376
|
+
token:"0xFa60D973F7642B748046464e165A65B7323b0DEE",
|
|
377
|
+
amount:4000
|
|
378
|
+
})
|
|
379
|
+
console.log(result)
|
|
380
|
+
}
|
|
381
|
+
async function Convert() {
|
|
382
|
+
let newfi = await initObj()
|
|
383
|
+
|
|
384
|
+
let result = await newfi.Convert({
|
|
385
|
+
tokenIn:"0xfa60d973f7642b748046464e165a65b7323b0dee",
|
|
386
|
+
tokenOut:"0x0000000000000000000000000000000000000000",
|
|
387
|
+
inAmount:3000000,
|
|
388
|
+
outAmount:0
|
|
389
|
+
})
|
|
390
|
+
console.log(result)
|
|
391
|
+
}
|
|
392
|
+
async function init() {
|
|
393
|
+
let accounts = await ethereum.enable()
|
|
394
|
+
return {
|
|
395
|
+
provider: ethereum,
|
|
396
|
+
account: accounts[0]
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
async function initObj() {
|
|
400
|
+
let { provider,account } = await this.init()
|
|
401
|
+
let newfi = new NewFi({
|
|
402
|
+
provider,account,
|
|
403
|
+
contract: "0x633c995f37cc1bDdcb2CB3068e74A99727fcF408"
|
|
404
|
+
})
|
|
405
|
+
return newfi
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
</script>
|
|
413
|
+
</body>
|
|
414
|
+
|
|
415
|
+
</html>
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "h-agent-swap",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "agent-swap",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"src"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "webpack",
|
|
11
|
+
"dev": "webpack server --open"
|
|
12
|
+
},
|
|
13
|
+
"author": "CaiJin Huang",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@babel/plugin-transform-runtime": "^7.21.0",
|
|
17
|
+
"@webpack-cli/serve": "^1.7.0",
|
|
18
|
+
"webpack": "^4.46.0",
|
|
19
|
+
"webpack-cli": "^4.9.2",
|
|
20
|
+
"webpack-dev-server": "^4.11.0"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@babel/runtime": "^7.21.0",
|
|
24
|
+
"axios": "^0.21.1",
|
|
25
|
+
"h-token-staking": "^1.5.3",
|
|
26
|
+
"qs": "^6.7.0"
|
|
27
|
+
}
|
|
28
|
+
}
|