four-flap-meme-sdk 2.0.0 → 2.2.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/dist/__tests__/subpath-exports.test.js +64 -0
- package/dist/chains/bsc/iro.d.ts +5 -0
- package/dist/chains/bsc/iro.js +4 -0
- package/dist/chains/eni/flat-aliases.d.ts +10 -0
- package/dist/chains/eni/flat-aliases.js +8 -0
- package/dist/chains/eni/index.d.ts +1 -0
- package/dist/chains/eni/index.js +1 -0
- package/dist/chains/index.d.ts +13 -0
- package/dist/chains/index.js +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
- package/dist/chains/xlayer/eip7702/index.d.ts +1 -0
- package/dist/chains/xlayer/eip7702/index.js +1 -0
- package/dist/chains/xlayer/index.d.ts +3 -2
- package/dist/chains/xlayer/index.js +4 -7
- package/dist/flap/index.d.ts +10 -0
- package/dist/flap/index.js +8 -0
- package/dist/merkle/index.d.ts +12 -0
- package/dist/merkle/index.js +11 -0
- package/dist/shared/constants/index.d.ts +2 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/vanity/index.d.ts +5 -0
- package/dist/vanity/index.js +5 -0
- package/package.json +93 -2
- package/dist/chains/bsc/four/disperse.d.ts +0 -12
- package/dist/chains/bsc/four/disperse.js +0 -470
- package/dist/chains/bsc/four/pairwise.d.ts +0 -7
- package/dist/chains/bsc/four/pairwise.js +0 -308
- package/dist/chains/bsc/four/submit/blockrazor.d.ts +0 -18
- package/dist/chains/bsc/four/submit/blockrazor.js +0 -86
- package/dist/chains/bsc/four/submit/direct.d.ts +0 -66
- package/dist/chains/bsc/four/submit/direct.js +0 -452
- package/dist/chains/bsc/four/submit/helpers.d.ts +0 -18
- package/dist/chains/bsc/four/submit/helpers.js +0 -57
- package/dist/chains/bsc/four/submit/index.d.ts +0 -12
- package/dist/chains/bsc/four/submit/index.js +0 -11
- package/dist/chains/bsc/four/submit/merkle.d.ts +0 -18
- package/dist/chains/bsc/four/submit/merkle.js +0 -74
- package/dist/chains/bsc/four/submit/types.d.ts +0 -143
- package/dist/chains/bsc/four/swap/index.d.ts +0 -32
- package/dist/chains/bsc/four/swap/index.js +0 -829
- package/dist/chains/bsc/four/swap/types.d.ts +0 -70
- package/dist/chains/bsc/four/swap/types.js +0 -1
- package/dist/chains/bsc/four/sweep.d.ts +0 -13
- package/dist/chains/bsc/four/sweep.js +0 -788
- package/dist/chains/bsc/four/utils/index.d.ts +0 -20
- package/dist/chains/bsc/four/utils/index.js +0 -1558
- package/dist/chains/bsc/four/utils/types.d.ts +0 -1
- package/dist/chains/bsc/four/utils/types.js +0 -1
- package/dist/chains/bsc/pancake/bundle-buy-first/index.d.ts +0 -8
- package/dist/chains/bsc/pancake/bundle-buy-first/index.js +0 -907
- package/dist/chains/bsc/pancake/bundle-buy-first/types.d.ts +0 -73
- package/dist/chains/bsc/pancake/bundle-buy-first/types.js +0 -1
- package/dist/chains/bsc/pancake/bundle-swap/helpers.d.ts +0 -102
- package/dist/chains/bsc/pancake/bundle-swap/helpers.js +0 -572
- package/dist/chains/bsc/pancake/bundle-swap/index.d.ts +0 -50
- package/dist/chains/bsc/pancake/bundle-swap/index.js +0 -1066
- package/dist/chains/bsc/pancake/bundle-swap/types.d.ts +0 -202
- package/dist/chains/bsc/pancake/bundle-swap/types.js +0 -3
- package/dist/chains/xlayer/eip7702/bundle-swap/index.d.ts +0 -72
- package/dist/chains/xlayer/eip7702/bundle-swap/index.js +0 -921
- package/dist/chains/xlayer/eip7702/bundle-swap/types.d.ts +0 -65
- package/dist/chains/xlayer/eip7702/bundle-swap/types.js +0 -1
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.d.ts +0 -128
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.js +0 -857
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.d.ts +0 -85
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.js +0 -1
- package/dist/chains/xlayer/eip7702/volume/index.d.ts +0 -96
- package/dist/chains/xlayer/eip7702/volume/index.js +0 -793
- package/dist/chains/xlayer/eip7702/volume/types.d.ts +0 -124
- package/dist/chains/xlayer/eip7702/volume/types.js +0 -1
- package/dist/chains/xlayer/eoa/types-core.d.ts +0 -363
- package/dist/chains/xlayer/eoa/types-core.js +0 -53
- package/dist/chains/xlayer/eoa/types-create.d.ts +0 -413
- package/dist/chains/xlayer/eoa/types-create.js +0 -9
- package/dist/chains/xlayer/eoa/types-volume.d.ts +0 -209
- package/dist/chains/xlayer/eoa/types-volume.js +0 -13
- package/dist/dex/direct-router/index.d.ts +0 -70
- package/dist/dex/direct-router/index.js +0 -1410
- package/dist/dex/direct-router/types.d.ts +0 -81
- package/dist/dex/direct-router/types.js +0 -1
- package/dist/shared/abis/TaxToken.json +0 -969
- package/dist/shared/abis/TokenManager.json +0 -836
- package/dist/shared/abis/TokenManager2.json +0 -136
- package/dist/shared/abis/TokenManagerHelper3.json +0 -993
- package/dist/shared/abis 2/TaxToken.json +0 -105
- package/dist/shared/abis 2/TokenManager.json +0 -836
- package/dist/shared/abis 2/TokenManager2.json +0 -60
- package/dist/shared/abis 2/TokenManagerHelper3.json +0 -993
- package/dist/shared/abis 2/common.d.ts +0 -85
- package/dist/shared/abis 2/common.js +0 -254
- package/dist/shared/abis 2/index.d.ts +0 -8
- package/dist/shared/abis 2/index.js +0 -8
- package/dist/shared/clients 2/blockrazor.d.ts +0 -314
- package/dist/shared/clients 2/blockrazor.js +0 -596
- package/dist/shared/clients 2/club48.d.ts +0 -154
- package/dist/shared/clients 2/club48.js +0 -331
- package/dist/shared/clients 2/emitservice.d.ts +0 -47
- package/dist/shared/clients 2/emitservice.js +0 -44
- package/dist/shared/clients 2/four.d.ts +0 -132
- package/dist/shared/clients 2/four.js +0 -281
- package/dist/shared/clients 2/merkle.d.ts +0 -210
- package/dist/shared/clients 2/merkle.js +0 -400
- package/dist/shared/flap/__tests__/curve.test.d.ts +0 -1
- package/dist/shared/flap/__tests__/curve.test.js +0 -85
- package/dist/shared/flap/portal/index.d.ts +0 -12
- package/dist/shared/flap/portal/index.js +0 -11
- package/dist/shared/flap/portal/portal.d.ts +0 -47
- package/dist/shared/flap/portal/portal.js +0 -218
- package/dist/shared/flap/portal/types.d.ts +0 -227
- package/dist/shared/flap/portal/types.js +0 -80
- package/dist/shared/flap/portal/writer.d.ts +0 -121
- package/dist/shared/flap/portal/writer.js +0 -265
- package/dist/shared/flap/portal-bundle-merkle/core/index.d.ts +0 -18
- package/dist/shared/flap/portal-bundle-merkle/core/index.js +0 -938
- package/dist/shared/flap/portal-bundle-merkle/core/types.d.ts +0 -1
- package/dist/shared/flap/portal-bundle-merkle/core/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/swap/index.d.ts +0 -42
- package/dist/shared/flap/portal-bundle-merkle/swap/index.js +0 -1448
- package/dist/shared/flap/portal-bundle-merkle/swap/types.d.ts +0 -84
- package/dist/shared/flap/portal-bundle-merkle/swap/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/utils/index.d.ts +0 -17
- package/dist/shared/flap/portal-bundle-merkle/utils/index.js +0 -1024
- package/dist/shared/flap/portal-bundle-merkle/utils/types.d.ts +0 -16
- package/dist/shared/flap/portal-bundle-merkle/utils/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +0 -100
- package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +0 -133
- package/dist/shared/flap 2/__tests__/curve.test.d.ts +0 -1
- package/dist/shared/flap 2/__tests__/curve.test.js +0 -85
- package/dist/shared/flap 2/abi.d.ts +0 -4
- package/dist/shared/flap 2/abi.js +0 -4
- package/dist/shared/flap 2/constants.d.ts +0 -128
- package/dist/shared/flap 2/constants.js +0 -143
- package/dist/shared/flap 2/curve.d.ts +0 -33
- package/dist/shared/flap 2/curve.js +0 -84
- package/dist/shared/flap 2/errors.d.ts +0 -37
- package/dist/shared/flap 2/errors.js +0 -114
- package/dist/shared/flap 2/index.d.ts +0 -22
- package/dist/shared/flap 2/index.js +0 -33
- package/dist/shared/flap 2/ipfs.d.ts +0 -21
- package/dist/shared/flap 2/ipfs.js +0 -38
- package/dist/shared/flap 2/meta.d.ts +0 -30
- package/dist/shared/flap 2/meta.js +0 -195
- package/dist/shared/flap 2/permit.d.ts +0 -16
- package/dist/shared/flap 2/permit.js +0 -67
- package/dist/shared/flap 2/pinata.d.ts +0 -40
- package/dist/shared/flap 2/pinata.js +0 -106
- package/dist/shared/flap 2/portal-bundle-merkle/config.d.ts +0 -79
- package/dist/shared/flap 2/portal-bundle-merkle/config.js +0 -133
- package/dist/shared/flap 2/portal-bundle-merkle/core.d.ts +0 -18
- package/dist/shared/flap 2/portal-bundle-merkle/core.js +0 -938
- package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.d.ts +0 -125
- package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.js +0 -665
- package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.d.ts +0 -88
- package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.js +0 -446
- package/dist/shared/flap 2/portal-bundle-merkle/index.d.ts +0 -14
- package/dist/shared/flap 2/portal-bundle-merkle/index.js +0 -26
- package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.d.ts +0 -28
- package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.js +0 -701
- package/dist/shared/flap 2/portal-bundle-merkle/private.d.ts +0 -17
- package/dist/shared/flap 2/portal-bundle-merkle/private.js +0 -549
- package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
- package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.js +0 -831
- package/dist/shared/flap 2/portal-bundle-merkle/swap.d.ts +0 -201
- package/dist/shared/flap 2/portal-bundle-merkle/swap.js +0 -1359
- package/dist/shared/flap 2/portal-bundle-merkle/types.d.ts +0 -358
- package/dist/shared/flap 2/portal-bundle-merkle/types.js +0 -1
- package/dist/shared/flap 2/portal-bundle-merkle/utils.d.ts +0 -89
- package/dist/shared/flap 2/portal-bundle-merkle/utils.js +0 -963
- package/dist/shared/flap 2/portal-bundle.d.ts +0 -119
- package/dist/shared/flap 2/portal-bundle.js +0 -584
- package/dist/shared/flap 2/portal.d.ts +0 -392
- package/dist/shared/flap 2/portal.js +0 -559
- package/dist/shared/flap 2/vanity.d.ts +0 -48
- package/dist/shared/flap 2/vanity.js +0 -110
- package/dist/shared/flap 2/vault.d.ts +0 -240
- package/dist/shared/flap 2/vault.js +0 -366
- package/dist/shared/four 2/index.d.ts +0 -7
- package/dist/shared/four 2/index.js +0 -22
- package/dist/shared/four 2/tax-token.d.ts +0 -176
- package/dist/shared/four 2/tax-token.js +0 -302
- package/dist/shared/index 2.js +0 -10
- package/dist/shared/index.d 2.ts +0 -10
- package/dist/types/distribute.d.ts +0 -72
- package/dist/types/distribute.js +0 -1
- package/dist/types 2/errors.d.ts +0 -27
- package/dist/types 2/errors.js +0 -34
- package/dist/utils/__tests__/errors.test.d.ts +0 -1
- package/dist/utils/__tests__/errors.test.js +0 -76
- package/dist/utils/airdrop-sweep-types.d.ts +0 -1
- package/dist/utils/airdrop-sweep-types.js +0 -1
- package/dist/utils/erc20/index.d.ts +0 -242
- package/dist/utils/erc20/index.js +0 -645
- package/dist/utils/erc20/types.d.ts +0 -77
- package/dist/utils/erc20/types.js +0 -1
- package/dist/utils/erc20-types.d.ts +0 -1
- package/dist/utils/erc20-types.js +0 -1
- package/dist/utils/holders-maker/helpers.d.ts +0 -43
- package/dist/utils/holders-maker/helpers.js +0 -371
- package/dist/utils/holders-maker/index.d.ts +0 -26
- package/dist/utils/holders-maker/index.js +0 -218
- package/dist/utils/holders-maker/types.d.ts +0 -72
- package/dist/utils/holders-maker/types.js +0 -4
- package/dist/utils/holders-maker-types.d.ts +0 -1
- package/dist/utils/holders-maker-types.js +0 -1
- package/dist/utils/lp-inspect/index.d.ts +0 -44
- package/dist/utils/lp-inspect/index.js +0 -937
- package/dist/utils/lp-inspect/types.d.ts +0 -100
- package/dist/utils/lp-inspect/types.js +0 -1
- package/dist/utils/lp-inspect-types.d.ts +0 -1
- package/dist/utils/lp-inspect-types.js +0 -1
- package/dist/utils/private-sale-types.d.ts +0 -1
- package/dist/utils/private-sale-types.js +0 -1
- package/dist/utils/quote-helpers/index.d.ts +0 -107
- package/dist/utils/quote-helpers/index.js +0 -346
- package/dist/utils/quote-helpers/types.d.ts +0 -16
- package/dist/utils/quote-helpers/types.js +0 -1
- package/dist/utils/quote-helpers-types.d.ts +0 -1
- package/dist/utils/quote-helpers-types.js +0 -1
- /package/dist/{chains/bsc/four/submit/types.js → __tests__/subpath-exports.test.d.ts} +0 -0
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
import { Contract, JsonRpcProvider, Wallet } from 'ethers';
|
|
2
|
-
import { PORTAL_ABI } from '../../../abis/flap/portal.js';
|
|
3
|
-
import { FLAP_PORTAL_ADDRESSES } from '../constants.js';
|
|
4
|
-
import { FlapPortal } from './portal.js';
|
|
5
|
-
export class FlapPortalWriter extends FlapPortal {
|
|
6
|
-
constructor(cfg, privateKey) {
|
|
7
|
-
super(cfg);
|
|
8
|
-
// 使用 ethers v6 创建钱包
|
|
9
|
-
const provider = new JsonRpcProvider(cfg.rpcUrl);
|
|
10
|
-
this.wallet = new Wallet(privateKey, provider);
|
|
11
|
-
// 重新创建可写合约实例
|
|
12
|
-
this.contract = new Contract(this.portal, PORTAL_ABI, this.wallet);
|
|
13
|
-
}
|
|
14
|
-
// 买入代币
|
|
15
|
-
async buy(token, to, minAmount, msgValue) {
|
|
16
|
-
const tx = await this.contract.buy(token, to, minAmount, { value: msgValue });
|
|
17
|
-
return await tx.wait();
|
|
18
|
-
}
|
|
19
|
-
// 创建代币时同时买入
|
|
20
|
-
// buyOnCreation 已从合约端移除,SDK 同步移除
|
|
21
|
-
// 卖出代币
|
|
22
|
-
async sell(token, amount, minEth) {
|
|
23
|
-
const tx = await this.contract.sell(token, amount, minEth);
|
|
24
|
-
return await tx.wait();
|
|
25
|
-
}
|
|
26
|
-
// 发送 swap 交易
|
|
27
|
-
async swapExactInput(params, msgValue) {
|
|
28
|
-
const tx = await this.contract.swapExactInput({
|
|
29
|
-
inputToken: params.inputToken,
|
|
30
|
-
outputToken: params.outputToken,
|
|
31
|
-
inputAmount: params.inputAmount,
|
|
32
|
-
minOutputAmount: params.minOutputAmount,
|
|
33
|
-
permitData: params.permitData ?? '0x',
|
|
34
|
-
}, { value: msgValue });
|
|
35
|
-
return await tx.wait();
|
|
36
|
-
}
|
|
37
|
-
// 发送显式买入交易
|
|
38
|
-
async swapExactInputBuy(params, msgValue) {
|
|
39
|
-
const tx = await this.contract.swapExactInputBuy({
|
|
40
|
-
inputToken: params.inputToken,
|
|
41
|
-
outputToken: params.outputToken,
|
|
42
|
-
inputAmount: params.inputAmount,
|
|
43
|
-
minOutputAmount: params.minOutputAmount,
|
|
44
|
-
permitData: params.permitData ?? '0x',
|
|
45
|
-
}, { value: msgValue });
|
|
46
|
-
return await tx.wait();
|
|
47
|
-
}
|
|
48
|
-
// 发送显式卖出交易
|
|
49
|
-
async swapExactInputSell(params) {
|
|
50
|
-
const tx = await this.contract.swapExactInputSell({
|
|
51
|
-
inputToken: params.inputToken,
|
|
52
|
-
outputToken: params.outputToken,
|
|
53
|
-
inputAmount: params.inputAmount,
|
|
54
|
-
minOutputAmount: params.minOutputAmount,
|
|
55
|
-
permitData: params.permitData ?? '0x',
|
|
56
|
-
});
|
|
57
|
-
return await tx.wait();
|
|
58
|
-
}
|
|
59
|
-
// 发送 swap 交易(V3,支持扩展数据)
|
|
60
|
-
async swapExactInputV3(params, msgValue) {
|
|
61
|
-
const tx = await this.contract.swapExactInputV3({
|
|
62
|
-
inputToken: params.inputToken,
|
|
63
|
-
outputToken: params.outputToken,
|
|
64
|
-
inputAmount: params.inputAmount,
|
|
65
|
-
minOutputAmount: params.minOutputAmount,
|
|
66
|
-
permitData: params.permitData ?? '0x',
|
|
67
|
-
extensionData: params.extensionData ?? '0x',
|
|
68
|
-
}, { value: msgValue });
|
|
69
|
-
return await tx.wait();
|
|
70
|
-
}
|
|
71
|
-
async newTokenV2(args) {
|
|
72
|
-
const tx = await this.contract.newTokenV2({
|
|
73
|
-
name: args.name,
|
|
74
|
-
symbol: args.symbol,
|
|
75
|
-
meta: args.meta,
|
|
76
|
-
dexThresh: args.dexThresh,
|
|
77
|
-
salt: args.salt,
|
|
78
|
-
taxRate: args.taxRate,
|
|
79
|
-
migratorType: args.migratorType,
|
|
80
|
-
quoteToken: args.quoteToken,
|
|
81
|
-
quoteAmt: args.quoteAmt,
|
|
82
|
-
beneficiary: args.beneficiary,
|
|
83
|
-
permitData: args.permitData ?? '0x',
|
|
84
|
-
}, { value: args.msgValue });
|
|
85
|
-
return await tx.wait();
|
|
86
|
-
}
|
|
87
|
-
async newTokenV3(args) {
|
|
88
|
-
const tx = await this.contract.newTokenV3({
|
|
89
|
-
name: args.name,
|
|
90
|
-
symbol: args.symbol,
|
|
91
|
-
meta: args.meta,
|
|
92
|
-
dexThresh: args.dexThresh,
|
|
93
|
-
salt: args.salt,
|
|
94
|
-
taxRate: args.taxRate,
|
|
95
|
-
migratorType: args.migratorType,
|
|
96
|
-
quoteToken: args.quoteToken,
|
|
97
|
-
quoteAmt: args.quoteAmt,
|
|
98
|
-
beneficiary: args.beneficiary,
|
|
99
|
-
permitData: args.permitData ?? '0x',
|
|
100
|
-
extensionID: args.extensionID,
|
|
101
|
-
extensionData: args.extensionData ?? '0x',
|
|
102
|
-
}, { value: args.msgValue });
|
|
103
|
-
return await tx.wait();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* 创建代币 V4 版本
|
|
107
|
-
* 相比 V3 新增了 DEX 选择和 LP 费率配置
|
|
108
|
-
*
|
|
109
|
-
* @param args 创建代币参数
|
|
110
|
-
* @param args.dexId DEX ID,选择迁移到哪个 DEX(使用 DEXId 枚举)
|
|
111
|
-
* @param args.lpFeeProfile LP 费率档位(使用 V3LPFeeProfile 枚举)
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* ```typescript
|
|
115
|
-
* await portal.newTokenV4({
|
|
116
|
-
* name: 'My Token',
|
|
117
|
-
* symbol: 'MTK',
|
|
118
|
-
* meta: 'bafkreicwlkpvrcqg4bbhyp2fnhdwbqos5ghka6gdjra3tdkgxxs74hqsze',
|
|
119
|
-
* dexThresh: DexThreshType.FOUR_FIFTHS,
|
|
120
|
-
* salt: '0x...',
|
|
121
|
-
* taxRate: 0,
|
|
122
|
-
* migratorType: MigratorType.V3_MIGRATOR,
|
|
123
|
-
* quoteToken: '0x0000000000000000000000000000000000000000',
|
|
124
|
-
* quoteAmt: 0n,
|
|
125
|
-
* beneficiary: '0x...',
|
|
126
|
-
* extensionID: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
127
|
-
* dexId: DEXId.DEX0,
|
|
128
|
-
* lpFeeProfile: V3LPFeeProfile.LP_FEE_PROFILE_STANDARD,
|
|
129
|
-
* msgValue: parseEther('0.01'),
|
|
130
|
-
* });
|
|
131
|
-
* ```
|
|
132
|
-
*
|
|
133
|
-
* @note BNB 链上使用 LP_FEE_PROFILE_LOW (0.01%) 需要白名单地址
|
|
134
|
-
*/
|
|
135
|
-
async newTokenV4(args) {
|
|
136
|
-
const tx = await this.contract.newTokenV4({
|
|
137
|
-
name: args.name,
|
|
138
|
-
symbol: args.symbol,
|
|
139
|
-
meta: args.meta,
|
|
140
|
-
dexThresh: args.dexThresh,
|
|
141
|
-
salt: args.salt,
|
|
142
|
-
taxRate: args.taxRate,
|
|
143
|
-
migratorType: args.migratorType,
|
|
144
|
-
quoteToken: args.quoteToken,
|
|
145
|
-
quoteAmt: args.quoteAmt,
|
|
146
|
-
beneficiary: args.beneficiary,
|
|
147
|
-
permitData: args.permitData ?? '0x',
|
|
148
|
-
extensionID: args.extensionID,
|
|
149
|
-
extensionData: args.extensionData ?? '0x',
|
|
150
|
-
dexId: args.dexId,
|
|
151
|
-
lpFeeProfile: args.lpFeeProfile,
|
|
152
|
-
}, { value: args.msgValue });
|
|
153
|
-
return await tx.wait();
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* 创建 Token V5(支持 Tax Token V2 高级税收分配)
|
|
157
|
-
*
|
|
158
|
-
* 当 taxRate > 0 时,支持以下税收分配:
|
|
159
|
-
* - mktBps: 营销分配(发送到 beneficiary 地址)
|
|
160
|
-
* - deflationBps: 通缩销毁(直接销毁)
|
|
161
|
-
* - dividendBps: 持有者分红(发送到分红合约)
|
|
162
|
-
* - lpBps: 流动性提供(LP 发送到 dead address)
|
|
163
|
-
*
|
|
164
|
-
* 注意:mktBps + deflationBps + dividendBps + lpBps 必须等于 10000 (100%)
|
|
165
|
-
*
|
|
166
|
-
* @example
|
|
167
|
-
* ```typescript
|
|
168
|
-
* // 创建一个 3% 税率的代币,税收分配:40% 营销,30% 销毁,20% 分红,10% 流动性
|
|
169
|
-
* await portal.newTokenV5({
|
|
170
|
-
* name: 'My Tax Token',
|
|
171
|
-
* symbol: 'MTT',
|
|
172
|
-
* meta: 'bafkrei...',
|
|
173
|
-
* dexThresh: DexThreshType.FOUR_FIFTHS,
|
|
174
|
-
* salt: '0x...',
|
|
175
|
-
* taxRate: 300, // 3%
|
|
176
|
-
* migratorType: MigratorType.V2_MIGRATOR, // 税代币必须使用 V2 迁移器
|
|
177
|
-
* quoteToken: '0x0000000000000000000000000000000000000000',
|
|
178
|
-
* quoteAmt: 0n,
|
|
179
|
-
* beneficiary: '0x...',
|
|
180
|
-
* extensionID: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
181
|
-
* dexId: DEXId.DEX0,
|
|
182
|
-
* lpFeeProfile: V3LPFeeProfile.LP_FEE_PROFILE_STANDARD,
|
|
183
|
-
* taxDuration: 365n * 24n * 60n * 60n, // 1 年
|
|
184
|
-
* antiFarmerDuration: 60n * 60n, // 1 小时
|
|
185
|
-
* mktBps: 4000, // 40%
|
|
186
|
-
* deflationBps: 3000, // 30%
|
|
187
|
-
* dividendBps: 2000, // 20%
|
|
188
|
-
* lpBps: 1000, // 10%
|
|
189
|
-
* minimumShareBalance: 10000n * 10n ** 18n, // 10K 代币
|
|
190
|
-
* msgValue: parseEther('0.01'),
|
|
191
|
-
* });
|
|
192
|
-
* ```
|
|
193
|
-
*
|
|
194
|
-
* @note 税代币(taxRate > 0)必须使用 V2_MIGRATOR
|
|
195
|
-
*/
|
|
196
|
-
async newTokenV5(args) {
|
|
197
|
-
// 验证税收分配
|
|
198
|
-
if (args.taxRate > 0) {
|
|
199
|
-
const total = args.mktBps + args.deflationBps + args.dividendBps + args.lpBps;
|
|
200
|
-
if (total !== 10000) {
|
|
201
|
-
throw new Error(`税收分配总计必须为 10000 (100%),当前为 ${total}`);
|
|
202
|
-
}
|
|
203
|
-
if (args.dividendBps > 0 && args.minimumShareBalance < 10000n * 10n ** 18n) {
|
|
204
|
-
throw new Error('启用分红时,最低持仓门槛必须至少为 10,000 个代币');
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
const tx = await this.contract.newTokenV5({
|
|
208
|
-
name: args.name,
|
|
209
|
-
symbol: args.symbol,
|
|
210
|
-
meta: args.meta,
|
|
211
|
-
dexThresh: args.dexThresh,
|
|
212
|
-
salt: args.salt,
|
|
213
|
-
taxRate: args.taxRate,
|
|
214
|
-
migratorType: args.migratorType,
|
|
215
|
-
quoteToken: args.quoteToken,
|
|
216
|
-
quoteAmt: args.quoteAmt,
|
|
217
|
-
beneficiary: args.beneficiary,
|
|
218
|
-
permitData: args.permitData ?? '0x',
|
|
219
|
-
extensionID: args.extensionID,
|
|
220
|
-
extensionData: args.extensionData ?? '0x',
|
|
221
|
-
dexId: args.dexId,
|
|
222
|
-
lpFeeProfile: args.lpFeeProfile,
|
|
223
|
-
taxDuration: args.taxDuration,
|
|
224
|
-
antiFarmerDuration: args.antiFarmerDuration,
|
|
225
|
-
mktBps: args.mktBps,
|
|
226
|
-
deflationBps: args.deflationBps,
|
|
227
|
-
dividendBps: args.dividendBps,
|
|
228
|
-
lpBps: args.lpBps,
|
|
229
|
-
minimumShareBalance: args.minimumShareBalance,
|
|
230
|
-
}, { value: args.msgValue });
|
|
231
|
-
return await tx.wait();
|
|
232
|
-
}
|
|
233
|
-
// 受益人领取收益
|
|
234
|
-
async claim(token) {
|
|
235
|
-
const tx = await this.contract.claim(token);
|
|
236
|
-
const receipt = await tx.wait();
|
|
237
|
-
// 这里返回 hash,具体的 tokenAmount 和 ethAmount 需要从事件中解析
|
|
238
|
-
return { txHash: receipt.hash, tokenAmount: 0n, ethAmount: 0n };
|
|
239
|
-
}
|
|
240
|
-
// 受益人委托领取收益
|
|
241
|
-
async delegateClaim(token) {
|
|
242
|
-
const tx = await this.contract.delegateClaim(token);
|
|
243
|
-
const receipt = await tx.wait();
|
|
244
|
-
return { txHash: receipt.hash, tokenAmount: 0n, ethAmount: 0n };
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* 获取当前使用的 Portal 合约地址
|
|
248
|
-
* 用于事件监听等场景
|
|
249
|
-
*/
|
|
250
|
-
getContractAddress() {
|
|
251
|
-
return this.portal;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* 获取 Flap Portal 合约地址(内部使用)
|
|
256
|
-
* 注意:此方法不对外导出,用户应使用 FlapPortal 实例而非直接获取地址
|
|
257
|
-
* @internal
|
|
258
|
-
*/
|
|
259
|
-
function getFlapPortalAddress(chain) {
|
|
260
|
-
const address = FLAP_PORTAL_ADDRESSES[chain];
|
|
261
|
-
if (!address) {
|
|
262
|
-
throw new Error(`Flap Portal not deployed on ${chain}`);
|
|
263
|
-
}
|
|
264
|
-
return address;
|
|
265
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { FlapCreateWithBundleBuySignParams, FlapCreateWithBundleBuyMerkleResult, FlapBatchBuySignParams, FlapBatchBuyMerkleResult, FlapBatchSellSignParams, FlapBatchSellMerkleResult } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Flap Protocol: 创建代币 + 捆绑购买(仅签名版本 - 不依赖 Merkle)
|
|
4
|
-
* ✅ 精简版:只负责签名交易,不提交到 Merkle
|
|
5
|
-
*/
|
|
6
|
-
export declare function createTokenWithBundleBuyMerkle(params: FlapCreateWithBundleBuySignParams): Promise<FlapCreateWithBundleBuyMerkleResult>;
|
|
7
|
-
/**
|
|
8
|
-
* Flap Protocol: 批量购买(仅签名版本 - 不依赖 Merkle)
|
|
9
|
-
* ✅ 精简版:只负责签名交易,不提交到 Merkle
|
|
10
|
-
* ✅ 支持 quoteToken:传入 USDC 等地址时使用该代币购买,否则使用原生代币
|
|
11
|
-
*/
|
|
12
|
-
export declare function batchBuyWithBundleMerkle(params: FlapBatchBuySignParams): Promise<FlapBatchBuyMerkleResult>;
|
|
13
|
-
/**
|
|
14
|
-
* Flap Protocol: 批量卖出(仅签名版本 - 不依赖 Merkle)
|
|
15
|
-
* ✅ 精简版:只负责签名交易,不提交到 Merkle
|
|
16
|
-
* ✅ 支持 quoteToken:传入 USDC 等地址时卖出为该代币,否则卖出为原生代币
|
|
17
|
-
*/
|
|
18
|
-
export declare function batchSellWithBundleMerkle(params: FlapBatchSellSignParams): Promise<FlapBatchSellMerkleResult>;
|