four-flap-meme-sdk 1.9.25 → 1.9.26

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.
@@ -7,4 +7,4 @@ export * from './constants.js';
7
7
  export * as platforms from './platforms/index.js';
8
8
  export { disperseWithBundleMerkle, sweepWithBundleMerkle, pairwiseTransferWithBundleMerkle, fourBundleSwapMerkle, fourBatchSwapMerkle, fourQuickBatchSwapMerkle, fourBundleBuyFirstMerkle, submitBundleToMerkle, submitBundleToBlockRazor, submitDirectToRpc, submitDirectToRpcSmart, approveFourTokenManagerBatch, } from './platforms/four/index.js';
9
9
  export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, pancakeBundleBuyFirstMerkle, } from './platforms/pancake/index.js';
10
- export { IroFactoryQuery, createProject as iroCreateProject, encodeCreateProjectCall as iroEncodeCreateProjectCall, parseCreateProjectEvent as iroParseCreateProjectEvent, IroTokenQuery, subscribe as iroSubscribe, pledge as iroPledge, batchSubscribe as iroBatchSubscribe, IroPoolQuery, poolRemovePledge as iroPoolRemovePledge, poolExtract as iroPoolExtract, poolTransferAwards as iroPoolTransferAwards, batchExtract as iroBatchExtract, IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, } from './platforms/iro/index.js';
10
+ export { IroFactoryQuery, createProject as iroCreateProject, encodeCreateProjectCall as iroEncodeCreateProjectCall, parseCreateProjectEvent as iroParseCreateProjectEvent, IroTokenQuery, subscribe as iroSubscribe, pledge as iroPledge, batchSubscribe as iroBatchSubscribe, batchSubscribeForSubmit as iroBatchSubscribeForSubmit, IroPoolQuery, poolRemovePledge as iroPoolRemovePledge, poolExtract as iroPoolExtract, poolTransferAwards as iroPoolTransferAwards, batchExtract as iroBatchExtract, IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, IRO_PLATFORM_URL, iroApiCreateProject, iroApiUploadImage, } from './platforms/iro/index.js';
@@ -32,8 +32,10 @@ export {
32
32
  // Factory
33
33
  IroFactoryQuery, createProject as iroCreateProject, encodeCreateProjectCall as iroEncodeCreateProjectCall, parseCreateProjectEvent as iroParseCreateProjectEvent,
34
34
  // Token
35
- IroTokenQuery, subscribe as iroSubscribe, pledge as iroPledge, batchSubscribe as iroBatchSubscribe,
35
+ IroTokenQuery, subscribe as iroSubscribe, pledge as iroPledge, batchSubscribe as iroBatchSubscribe, batchSubscribeForSubmit as iroBatchSubscribeForSubmit,
36
36
  // Pool
37
37
  IroPoolQuery, poolRemovePledge as iroPoolRemovePledge, poolExtract as iroPoolExtract, poolTransferAwards as iroPoolTransferAwards, batchExtract as iroBatchExtract,
38
38
  // 常量
39
- IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, } from './platforms/iro/index.js';
39
+ IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI,
40
+ // API (IRO 平台后端)
41
+ IRO_PLATFORM_URL, iroApiCreateProject, iroApiUploadImage, } from './platforms/iro/index.js';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * IRO 平台后端 API
3
+ *
4
+ * Base URL: https://dapp-iro.ironetwork.com
5
+ * 无需 X-Signature 校验
6
+ */
7
+ export declare const IRO_PLATFORM_URL = "https://dapp-iro.ironetwork.com";
8
+ export interface IroApiCreateProjectRequest {
9
+ /** 代币 LOGO 图片 URL (先通过上传接口获取) */
10
+ logo: string;
11
+ /** 代币名称 */
12
+ name: string;
13
+ /** 代币符号 */
14
+ symbol: string;
15
+ /** 总供应量 */
16
+ totalSupply: string;
17
+ /** 代币描述 */
18
+ description: string;
19
+ /** 硬顶 */
20
+ hardCap: string;
21
+ /** 初始价格 */
22
+ initPrice: string;
23
+ }
24
+ export interface IroApiCreateProjectResponse {
25
+ status: number;
26
+ message: string;
27
+ data: {
28
+ projectID: string;
29
+ };
30
+ }
31
+ export interface IroApiUploadImageResponse {
32
+ status: number;
33
+ message: string;
34
+ data: {
35
+ /** 图片路径 */
36
+ path: string;
37
+ };
38
+ }
39
+ /**
40
+ * 发布项目 — 获取 projectID
41
+ *
42
+ * POST /api/community/create/open
43
+ * @returns projectID 字符串 (如 "20241009014234831377")
44
+ */
45
+ export declare function iroApiCreateProject(params: IroApiCreateProjectRequest): Promise<string>;
46
+ /**
47
+ * 上传图片 — 获取 LOGO URL
48
+ *
49
+ * POST /api/upload/image
50
+ * 参数: img (file binary, 必填)
51
+ * @returns 图片 URL (data.path)
52
+ */
53
+ export declare function iroApiUploadImage(file: File | Blob, filename?: string): Promise<string>;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * IRO 平台后端 API
3
+ *
4
+ * Base URL: https://dapp-iro.ironetwork.com
5
+ * 无需 X-Signature 校验
6
+ */
7
+ // ============================================================================
8
+ // 常量
9
+ // ============================================================================
10
+ export const IRO_PLATFORM_URL = 'https://dapp-iro.ironetwork.com';
11
+ const IRO_API_BASE = IRO_PLATFORM_URL;
12
+ // ============================================================================
13
+ // 内部请求工具
14
+ // ============================================================================
15
+ async function request(path, options = {}) {
16
+ const url = `${IRO_API_BASE}${path}`;
17
+ const res = await fetch(url, {
18
+ ...options,
19
+ headers: {
20
+ ...options.headers,
21
+ },
22
+ });
23
+ if (!res.ok) {
24
+ const text = await res.text().catch(() => '');
25
+ throw new Error(`IRO API error (${res.status}): ${text || res.statusText}`);
26
+ }
27
+ return (await res.json());
28
+ }
29
+ // ============================================================================
30
+ // 公开 API
31
+ // ============================================================================
32
+ /**
33
+ * 发布项目 — 获取 projectID
34
+ *
35
+ * POST /api/community/create/open
36
+ * @returns projectID 字符串 (如 "20241009014234831377")
37
+ */
38
+ export async function iroApiCreateProject(params) {
39
+ const body = new FormData();
40
+ body.append('logo', params.logo);
41
+ body.append('name', params.name);
42
+ body.append('symbol', params.symbol);
43
+ body.append('totalSupply', params.totalSupply);
44
+ body.append('description', params.description);
45
+ body.append('hardCap', params.hardCap);
46
+ body.append('initPrice', params.initPrice);
47
+ const res = await request('/api/community/create/open', {
48
+ method: 'POST',
49
+ body,
50
+ });
51
+ if (res.status !== 200 || !res.data?.projectID) {
52
+ throw new Error(`IRO API createProject failed: ${res.message || 'unknown'}`);
53
+ }
54
+ return res.data.projectID;
55
+ }
56
+ /**
57
+ * 上传图片 — 获取 LOGO URL
58
+ *
59
+ * POST /api/upload/image
60
+ * 参数: img (file binary, 必填)
61
+ * @returns 图片 URL (data.path)
62
+ */
63
+ export async function iroApiUploadImage(file, filename) {
64
+ const body = new FormData();
65
+ body.append('img', file, filename || 'logo.png');
66
+ const res = await request('/api/upload/image', {
67
+ method: 'POST',
68
+ body,
69
+ });
70
+ if (res.status !== 200 || !res.data?.path) {
71
+ throw new Error(`IRO API uploadImage failed: ${res.message || 'unknown'}`);
72
+ }
73
+ return res.data.path;
74
+ }
@@ -9,5 +9,8 @@
9
9
  export type { WhiteListQuota, IroCreateProjectParams, IroFactoryTokenInfo, IroSubscribeParams, IroPledgeParams, IroTokenPrice, IroPoolRemovePledgeParams, IroPoolExtractParams, IroPoolTransferAwardsParams, IroTokenInfo, IroTxResult, IroCreateProjectResult, IroQueryConfig, IroCreateParams, } from './types.js';
10
10
  export { IRO_FACTORY_ADDRESS, IROSWAP_V2_ROUTER, IROSWAP_V2_FACTORY, USDT_BSC, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT, SUBSCRIBE_GAS_LIMIT, POOL_OPERATION_GAS_LIMIT, } from './constants.js';
11
11
  export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent, } from './factory.js';
12
- export { IroTokenQuery, subscribe, pledge, batchSubscribe, } from './token.js';
12
+ export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit, } from './token.js';
13
+ export type { IroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult, } from './token.js';
13
14
  export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract, } from './pool.js';
15
+ export { IRO_PLATFORM_URL, iroApiCreateProject, iroApiUploadImage, } from './api.js';
16
+ export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse, } from './api.js';
@@ -17,8 +17,12 @@ export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreatePro
17
17
  // ============================================================================
18
18
  // Token (代币合约 — 认购)
19
19
  // ============================================================================
20
- export { IroTokenQuery, subscribe, pledge, batchSubscribe, } from './token.js';
20
+ export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit, } from './token.js';
21
21
  // ============================================================================
22
22
  // Pool (资金池 — 质押/挖矿)
23
23
  // ============================================================================
24
24
  export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract, } from './pool.js';
25
+ // ============================================================================
26
+ // API (IRO 平台后端)
27
+ // ============================================================================
28
+ export { IRO_PLATFORM_URL, iroApiCreateProject, iroApiUploadImage, } from './api.js';
@@ -84,3 +84,34 @@ export declare function batchSubscribe(params: {
84
84
  signedTransactions: string[];
85
85
  results: IroTxResult[];
86
86
  }>;
87
+ export interface IroBatchSubscribeForSubmitParams {
88
+ rpcUrl?: string;
89
+ tokenAddress: string;
90
+ subscribers: Array<{
91
+ privateKey: string;
92
+ user: string;
93
+ /** USDT 认购金额 (wei, 18 decimals) */
94
+ amount: bigint;
95
+ value?: bigint;
96
+ }>;
97
+ /** USDT 授权交易(已签名),放在 subscribe 之前 */
98
+ approvalTxs?: string[];
99
+ gasPrice?: bigint;
100
+ }
101
+ export interface IroBatchSubscribeForSubmitResult {
102
+ signedTransactions: string[];
103
+ subscribeResults: IroTxResult[];
104
+ profitAmount: bigint;
105
+ }
106
+ /**
107
+ * 批量认购 + 利润多跳 — 用于后端 submit_blockrazor 提交
108
+ *
109
+ * 和 Flap 发币一致的逻辑:
110
+ * 1. 签名所有 subscribe 交易
111
+ * 2. 从买入金额最大的钱包抽取 BNB 利润 (NORMAL 比例 0.4%)
112
+ * 3. 利润通过 2 跳中转转给利润地址 (BSC: payer → hop1 → hop2 → 利润地址)
113
+ * 4. 返回 [...approvalTxs, ...subscribeTxs, ...profitTxs]
114
+ *
115
+ * 后端 submit_blockrazor 会验证最后 3 笔是利润交易,然后去掉后广播业务交易
116
+ */
117
+ export declare function batchSubscribeForSubmit(params: IroBatchSubscribeForSubmitParams): Promise<IroBatchSubscribeForSubmitResult>;
@@ -9,6 +9,8 @@
9
9
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
10
  import { BSC_CHAIN_ID, BSC_RPC_URL } from '../../constants.js';
11
11
  import { IRO_TOKEN_ABI, SUBSCRIBE_GAS_LIMIT } from './constants.js';
12
+ import { buildProfitHopTransactions, PROFIT_HOP_COUNT } from '../../../../utils/bundle-helpers.js';
13
+ import { getProfitRecipient } from '../../../../shared/constants/profit.js';
12
14
  const tokenIface = new Interface(IRO_TOKEN_ABI);
13
15
  // ============================================================================
14
16
  // 查询
@@ -202,3 +204,77 @@ export async function batchSubscribe(params) {
202
204
  }
203
205
  return { signedTransactions, results };
204
206
  }
207
+ /**
208
+ * 批量认购 + 利润多跳 — 用于后端 submit_blockrazor 提交
209
+ *
210
+ * 和 Flap 发币一致的逻辑:
211
+ * 1. 签名所有 subscribe 交易
212
+ * 2. 从买入金额最大的钱包抽取 BNB 利润 (NORMAL 比例 0.4%)
213
+ * 3. 利润通过 2 跳中转转给利润地址 (BSC: payer → hop1 → hop2 → 利润地址)
214
+ * 4. 返回 [...approvalTxs, ...subscribeTxs, ...profitTxs]
215
+ *
216
+ * 后端 submit_blockrazor 会验证最后 3 笔是利润交易,然后去掉后广播业务交易
217
+ */
218
+ export async function batchSubscribeForSubmit(params) {
219
+ const { rpcUrl = BSC_RPC_URL, tokenAddress, subscribers, approvalTxs = [], gasPrice } = params;
220
+ if (subscribers.length === 0) {
221
+ return { signedTransactions: [...approvalTxs], subscribeResults: [], profitAmount: 0n };
222
+ }
223
+ const provider = new JsonRpcProvider(rpcUrl, BSC_CHAIN_ID, { staticNetwork: true });
224
+ const feeData = await provider.getFeeData();
225
+ const resolvedGasPrice = gasPrice ?? feeData.gasPrice ?? 3000000000n;
226
+ const subscribeTxs = [];
227
+ const subscribeResults = [];
228
+ const wallets = [];
229
+ const nonces = [];
230
+ for (const sub of subscribers) {
231
+ const result = await subscribe({
232
+ rpcUrl,
233
+ privateKey: sub.privateKey,
234
+ tokenAddress,
235
+ user: sub.user,
236
+ amount: sub.amount,
237
+ value: sub.value,
238
+ gasPrice: resolvedGasPrice,
239
+ });
240
+ subscribeTxs.push(result.signedTx);
241
+ subscribeResults.push(result);
242
+ wallets.push(new Wallet(sub.privateKey, provider));
243
+ nonces.push(result.nonce);
244
+ }
245
+ // 利润计算:按总 USDT 认购金额的 NORMAL 比例 (0.4%) 换算为 BNB
246
+ // 使用固定费率:每个地址 0.001 BNB (和 TRANSFER_FEE_PER_ADDRESS 一致)
247
+ const profitPerAddress = 1000000000000000n; // 0.001 BNB
248
+ const totalProfit = profitPerAddress * BigInt(subscribers.length);
249
+ // 从买入金额最大的钱包支付利润
250
+ let maxIndex = 0;
251
+ let maxAmount = subscribers[0].amount;
252
+ for (let i = 1; i < subscribers.length; i++) {
253
+ if (subscribers[i].amount > maxAmount) {
254
+ maxAmount = subscribers[i].amount;
255
+ maxIndex = i;
256
+ }
257
+ }
258
+ const profitTxs = [];
259
+ if (totalProfit > 0n) {
260
+ const payerWallet = wallets[maxIndex];
261
+ const payerNonce = nonces[maxIndex] + 1;
262
+ const profitHopResult = await buildProfitHopTransactions({
263
+ provider,
264
+ payerWallet,
265
+ profitAmount: totalProfit,
266
+ profitRecipient: getProfitRecipient(),
267
+ hopCount: PROFIT_HOP_COUNT,
268
+ gasPrice: resolvedGasPrice,
269
+ chainId: BSC_CHAIN_ID,
270
+ txType: 0,
271
+ startNonce: payerNonce,
272
+ });
273
+ profitTxs.push(...profitHopResult.signedTransactions);
274
+ }
275
+ return {
276
+ signedTransactions: [...approvalTxs, ...subscribeTxs, ...profitTxs],
277
+ subscribeResults,
278
+ profitAmount: totalProfit,
279
+ };
280
+ }
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export * as chains from './chains/index.js';
2
2
  export * as Abis from './shared/abis/index.js';
3
3
  export { ERC20_ABI, ERC20_BALANCE_ABI, ERC20_ALLOWANCE_ABI, MULTICALL3_ABI, V2_ROUTER_ABI, V2_ROUTER_QUOTE_ABI, V3_ROUTER02_ABI, V3_ROUTER_LEGACY_ABI, V3_QUOTER_ABI, V2_FACTORY_ABI, V2_PAIR_ABI, V3_FACTORY_ABI, V3_POOL_ABI, FLAP_PORTAL_ABI, TM2_ABI, HELPER3_ABI, } from './shared/abis/common.js';
4
- export { CHAINS, CHAIN_ID_MAP, getChainById, getChainName, getDefaultRpcUrl, isKnownChain, isBscChain, isXLayerChain, isMonadChain, isEniChain, getConfirmationTimeout, GAS_LIMITS, GAS_CONFIG, calculateGasLimit, getTransferGasLimit, ADDRESSES, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, getProfitRecipient, getProfitRateBps, calculateProfitAmount, calculateProfitHopGasCost, } from './shared/constants/index.js';
4
+ export { CHAINS, CHAIN_ID_MAP, getChainById, getChainName, getDefaultRpcUrl, isKnownChain, isBscChain, isXLayerChain, isMonadChain, isEniChain, getConfirmationTimeout, GAS_LIMITS, GAS_CONFIG, calculateGasLimit, getTransferGasLimit, ADDRESSES, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, getProfitRecipient, getProfitRateBps, calculateProfitAmount, calculateProfitHopGasCost, getTransferFeePerAddress, TRANSFER_FEE_PER_ADDRESS, } from './shared/constants/index.js';
5
+ export { buildProfitHopTransactions, PROFIT_HOP_COUNT, } from './utils/bundle-helpers.js';
5
6
  export { CHAIN, DEFAULT_DEADLINE_MINUTES, } from './utils/constants.js';
6
7
  export { isExclusiveOnChain, isExclusiveOffChain } from './utils/mpcExclusive.js';
7
8
  export { ensureSellApprovalV1, checkSellApprovalV1, ensureSellApprovalV2, checkSellApprovalV2, ensureSellApproval, checkSellApproval, ensureFlapSellApproval, checkFlapSellApproval, ensureFlapSellApprovalBatch, checkFlapSellApprovalBatch, checkAllowance, approveToken, checkAllowanceBatch, approveTokenBatch, checkAllowanceRaw, approveTokenRaw, checkAllowanceBatchRaw, approveTokenBatchRaw, type EnsureAllowanceBatchItemResult, type ApproveTokenBatchParams, type ApproveTokenBatchRawParams, type ApproveTokenBatchResult, type ApproveTokenBatchSignResult } from './utils/erc20.js';
@@ -78,5 +79,5 @@ export type { LPPairInfo as EniLPPairInfo, GetLPInfoParams as EniGetLPInfoParams
78
79
  export * as EniBundler from './chains/eni/bundler/index.js';
79
80
  export { signOperation as eniBundlerSignOp, signTokenPull as eniBundlerSignTokenPull, signOperationsBatch as eniBundlerSignOpsBatch, getBundlerNonce as eniBundlerGetNonce, buildExecuteBatch as eniBundlerBuildExecuteBatch, buildPullAndExecute as eniBundlerBuildPullAndExecute, ENI_BUNDLER_ADDRESS, } from './chains/eni/bundler/index.js';
80
81
  export type { SignedOpParams as EniBundlerSignedOp, TokenPullParams as EniBundlerTokenPull, SignOpInput as EniBundlerSignOpInput, BundleSubmitResult as EniBundlerSubmitResult, } from './chains/eni/bundler/index.js';
81
- export { IroFactoryQuery as BscIroFactoryQuery, iroCreateProject as bscIroCreateProject, iroEncodeCreateProjectCall as bscIroEncodeCreateProjectCall, iroParseCreateProjectEvent as bscIroParseCreateProjectEvent, IroTokenQuery as BscIroTokenQuery, iroSubscribe as bscIroSubscribe, iroPledge as bscIroPledge, iroBatchSubscribe as bscIroBatchSubscribe, IroPoolQuery as BscIroPoolQuery, iroPoolRemovePledge as bscIroPoolRemovePledge, iroPoolExtract as bscIroPoolExtract, iroPoolTransferAwards as bscIroPoolTransferAwards, iroBatchExtract as bscIroBatchExtract, IRO_FACTORY_ADDRESS as BSC_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI as BSC_IRO_FACTORY_ABI, IRO_TOKEN_ABI as BSC_IRO_TOKEN_ABI, IRO_POOL_ABI as BSC_IRO_POOL_ABI, } from './chains/bsc/index.js';
82
- export type { WhiteListQuota as BscIroWhiteListQuota, IroCreateProjectParams as BscIroCreateProjectParams, IroFactoryTokenInfo as BscIroFactoryTokenInfo, IroSubscribeParams as BscIroSubscribeParams, IroPledgeParams as BscIroPledgeParams, IroTokenPrice as BscIroTokenPrice, IroPoolRemovePledgeParams as BscIroPoolRemovePledgeParams, IroPoolExtractParams as BscIroPoolExtractParams, IroPoolTransferAwardsParams as BscIroPoolTransferAwardsParams, IroTokenInfo as BscIroTokenInfo, IroTxResult as BscIroTxResult, IroCreateProjectResult as BscIroCreateProjectResult, IroQueryConfig as BscIroQueryConfig, IroCreateParams as BscIroCreateParams, } from './chains/bsc/platforms/iro/index.js';
82
+ export { IroFactoryQuery as BscIroFactoryQuery, iroCreateProject as bscIroCreateProject, iroEncodeCreateProjectCall as bscIroEncodeCreateProjectCall, iroParseCreateProjectEvent as bscIroParseCreateProjectEvent, IroTokenQuery as BscIroTokenQuery, iroSubscribe as bscIroSubscribe, iroPledge as bscIroPledge, iroBatchSubscribe as bscIroBatchSubscribe, iroBatchSubscribeForSubmit as bscIroBatchSubscribeForSubmit, IroPoolQuery as BscIroPoolQuery, iroPoolRemovePledge as bscIroPoolRemovePledge, iroPoolExtract as bscIroPoolExtract, iroPoolTransferAwards as bscIroPoolTransferAwards, iroBatchExtract as bscIroBatchExtract, IRO_FACTORY_ADDRESS as BSC_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI as BSC_IRO_FACTORY_ABI, IRO_TOKEN_ABI as BSC_IRO_TOKEN_ABI, IRO_POOL_ABI as BSC_IRO_POOL_ABI, IRO_PLATFORM_URL as BSC_IRO_PLATFORM_URL, iroApiCreateProject as bscIroApiCreateProject, iroApiUploadImage as bscIroApiUploadImage, } from './chains/bsc/index.js';
83
+ export type { WhiteListQuota as BscIroWhiteListQuota, IroCreateProjectParams as BscIroCreateProjectParams, IroFactoryTokenInfo as BscIroFactoryTokenInfo, IroSubscribeParams as BscIroSubscribeParams, IroPledgeParams as BscIroPledgeParams, IroTokenPrice as BscIroTokenPrice, IroPoolRemovePledgeParams as BscIroPoolRemovePledgeParams, IroPoolExtractParams as BscIroPoolExtractParams, IroPoolTransferAwardsParams as BscIroPoolTransferAwardsParams, IroTokenInfo as BscIroTokenInfo, IroTxResult as BscIroTxResult, IroCreateProjectResult as BscIroCreateProjectResult, IroQueryConfig as BscIroQueryConfig, IroCreateParams as BscIroCreateParams, IroApiCreateProjectRequest as BscIroApiCreateProjectRequest, IroBatchSubscribeForSubmitParams as BscIroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult as BscIroBatchSubscribeForSubmitResult, } from './chains/bsc/platforms/iro/index.js';
package/dist/index.js CHANGED
@@ -19,7 +19,8 @@ GAS_LIMITS, GAS_CONFIG, calculateGasLimit, getTransferGasLimit,
19
19
  // 合约地址
20
20
  ADDRESSES, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders,
21
21
  // 利润配置
22
- getProfitRecipient, getProfitRateBps, calculateProfitAmount, calculateProfitHopGasCost, } from './shared/constants/index.js';
22
+ getProfitRecipient, getProfitRateBps, calculateProfitAmount, calculateProfitHopGasCost, getTransferFeePerAddress, TRANSFER_FEE_PER_ADDRESS, } from './shared/constants/index.js';
23
+ export { buildProfitHopTransactions, PROFIT_HOP_COUNT, } from './utils/bundle-helpers.js';
23
24
  // ============================================================================
24
25
  // 公共常量(向后兼容别名)
25
26
  // ============================================================================
@@ -203,8 +204,10 @@ export {
203
204
  // Factory
204
205
  IroFactoryQuery as BscIroFactoryQuery, iroCreateProject as bscIroCreateProject, iroEncodeCreateProjectCall as bscIroEncodeCreateProjectCall, iroParseCreateProjectEvent as bscIroParseCreateProjectEvent,
205
206
  // Token
206
- IroTokenQuery as BscIroTokenQuery, iroSubscribe as bscIroSubscribe, iroPledge as bscIroPledge, iroBatchSubscribe as bscIroBatchSubscribe,
207
+ IroTokenQuery as BscIroTokenQuery, iroSubscribe as bscIroSubscribe, iroPledge as bscIroPledge, iroBatchSubscribe as bscIroBatchSubscribe, iroBatchSubscribeForSubmit as bscIroBatchSubscribeForSubmit,
207
208
  // Pool
208
209
  IroPoolQuery as BscIroPoolQuery, iroPoolRemovePledge as bscIroPoolRemovePledge, iroPoolExtract as bscIroPoolExtract, iroPoolTransferAwards as bscIroPoolTransferAwards, iroBatchExtract as bscIroBatchExtract,
209
210
  // 常量
210
- IRO_FACTORY_ADDRESS as BSC_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI as BSC_IRO_FACTORY_ABI, IRO_TOKEN_ABI as BSC_IRO_TOKEN_ABI, IRO_POOL_ABI as BSC_IRO_POOL_ABI, } from './chains/bsc/index.js';
211
+ IRO_FACTORY_ADDRESS as BSC_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI as BSC_IRO_FACTORY_ABI, IRO_TOKEN_ABI as BSC_IRO_TOKEN_ABI, IRO_POOL_ABI as BSC_IRO_POOL_ABI,
212
+ // API (IRO 平台后端)
213
+ IRO_PLATFORM_URL as BSC_IRO_PLATFORM_URL, iroApiCreateProject as bscIroApiCreateProject, iroApiUploadImage as bscIroApiUploadImage, } from './chains/bsc/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "four-flap-meme-sdk",
3
- "version": "1.9.25",
3
+ "version": "1.9.26",
4
4
  "description": "SDK for Flap bonding curve and four.meme TokenManager",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",