four-flap-meme-sdk
Version:
SDK for Flap bonding curve and four.meme TokenManager
143 lines (142 loc) • 4.95 kB
JavaScript
/**
* Flap Protocol Portal 代理合约地址(收费版)
* 注意:这些是代理合约地址,会自动收取手续费
* 用于交易、Permit 签名等操作
*/
export const FLAP_PORTAL_ADDRESSES = {
BSC: '0xe2cE6ab80874Fa9Fa2aAE65D277Dd6B8e65C9De0',
BASE: '0x00214f8C22A076575f4B67f3B4AA62f99E166e36',
XLAYER: '0xb30D8c4216E1f21F27444D2FfAee3ad577808678',
MORPH: '0x6aB823408672c0Db1DE1a18F1750d62E5F995A58',
// ✅ 新增 Monad 链 Portal 地址
MONAD: '0x30e8ee7b5881bf2E158A0514f2150aabe2c68b23',
};
/**
* Flap Protocol 平台原始 Portal 合约地址
* 注意:这些是 Flap 平台的原始合约地址(非代理)
* 用于 CREATE2 vanity 地址生成
*/
export const FLAP_ORIGINAL_PORTAL_ADDRESSES = {
BSC: '0xe2cE6ab80874Fa9Fa2aAE65D277Dd6B8e65C9De0',
BASE: '0xF3c514E04f83166E80718f29f0d34F206be40A0A',
XLAYER: '0xb30D8c4216E1f21F27444D2FfAee3ad577808678',
MORPH: '0x4267F317adee7C6478a5EE92985c2BD5D855E274',
// ✅ 新增 Monad 链原始 Portal 地址
MONAD: '0x30e8ee7b5881bf2E158A0514f2150aabe2c68b23',
};
/**
* Flap Protocol Token 实现合约地址
*/
export const FLAP_TOKEN_IMPL_ADDRESSES = {
BSC_NORMAL: '0x8b4329947e34b6d56d71a3385cac122bade7d78d',
BSC_TAXED: '0x5dd913731C12aD8DF3E574859FDe45412bF4aaD9',
BASE: '0xF3c514E04f83166E80718f29f0d34F206be40A0A',
XLAYER: '0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9',
MORPH: '0x8b4329947e34b6d56d71a3385cac122bade7d78d', // 暂时使用 BSC NORMAL 地址
// ✅ 新增 Monad 链 Token 实现地址
MONAD_NORMAL: '0xB88189aA1162850D75A1c1e16F837b7979994184',
MONAD_TAXED: '0x1C8847736521f5cD725dFB8f33c7c610826e7C42',
};
/**
* 不同链的默认手续费率
* 数据来源:Example-Code 配置文件
*/
export const FLAP_DEFAULT_FEE_RATES = {
BSC: { buy: 0.01, sell: 0.01 }, // 1% (100 bps)
MORPH: { buy: 0.025, sell: 0.025 }, // 2.5% (250 bps)
XLAYER: { buy: 0.015, sell: 0.015 }, // 1.5% (150 bps)
BASE: { buy: 0.025, sell: 0.025 }, // 2.5% (默认)
// ✅ 新增 Monad 链默认费率
MONAD: { buy: 0.01, sell: 0.01 }, // 1% (100 bps) - 与 BSC 相同
};
/**
* Flap IPFS API 端点
* 警告:这是一个占位符端点,实际 Flap 官方 IPFS 端点未公开
* 用户需要:
* 1. 联系 Flap 团队获取真实的 IPFS GraphQL 端点
* 2. 或使用自己的 IPFS 服务(Pinata、Infura、Web3.Storage 等)
* 3. 或在调用 uploadTokenMeta 时传入自定义端点作为第三个参数
*/
export const FLAP_IPFS_API_URL = 'https://api.flap.sh/graphql'; // ⚠️ 占位符,需替换为真实端点
/**
* Vanity 地址后缀配置
* 根据截图中的合约部署信息:
* - BNB Chain: standard:8888, Tax:7777
* - Toshimart (BASE): standard:8453
* - X Layer: standard:1111 (无 Tax)
* - Muffun: standard:8888
* - Monad: standard:8888, Tax:1111
*/
export const FLAP_VANITY_SUFFIX = {
// 默认后缀
NORMAL: '8888',
TAXED: '7777',
// 各链特定后缀
BSC_NORMAL: '8888',
BSC_TAXED: '7777',
BASE_NORMAL: '8453',
XLAYER_NORMAL: '1111',
MONAD_NORMAL: '8888',
MONAD_TAXED: '1111',
};
/**
* 各链是否支持 Tax 代币
*/
export const CHAIN_TAX_SUPPORT = {
BSC: true,
BASE: false,
XLAYER: false,
MORPH: false,
MONAD: true,
};
/**
* 根据链获取 Vanity 后缀
* @param chain 链名称
* @param taxed 是否为税版代币
* @returns Vanity 后缀
*/
export function getVanitySuffix(chain, taxed = false) {
const chainUpper = chain.toUpperCase();
switch (chainUpper) {
case 'BSC':
return taxed ? FLAP_VANITY_SUFFIX.BSC_TAXED : FLAP_VANITY_SUFFIX.BSC_NORMAL;
case 'BASE':
return FLAP_VANITY_SUFFIX.BASE_NORMAL; // BASE 不支持 Tax
case 'XLAYER':
return FLAP_VANITY_SUFFIX.XLAYER_NORMAL; // XLayer 不支持 Tax
case 'MONAD':
return taxed ? FLAP_VANITY_SUFFIX.MONAD_TAXED : FLAP_VANITY_SUFFIX.MONAD_NORMAL;
case 'MORPH':
return FLAP_VANITY_SUFFIX.NORMAL; // MORPH 暂时使用默认
default:
return taxed ? FLAP_VANITY_SUFFIX.TAXED : FLAP_VANITY_SUFFIX.NORMAL;
}
}
/**
* 检查链是否支持 Tax 代币
* @param chain 链名称
* @returns 是否支持 Tax
*/
export function isChainSupportTax(chain) {
return CHAIN_TAX_SUPPORT[chain.toUpperCase()] ?? false;
}
/**
* 默认 DEX 迁移阈值(占总供应量的比例)
*/
export const FLAP_DEX_THRESHOLDS = {
TWO_THIRDS: 0.6667, // 66.67%
FOUR_FIFTHS: 0.8, // 80%
HALF: 0.5, // 50%
_95_PERCENT: 0.95, // 95%
_81_PERCENT: 0.81, // 81%
_1_PERCENT: 0.01, // 1% (测试用)
};
/**
* 代币总供应量(固定为 10 亿)
*/
export const FLAP_TOTAL_SUPPLY = BigInt(1000000000) * BigInt(10 ** 18);
/**
* 零地址(用于表示原生代币)
* ✅ 从公共模块重新导出
*/
export { ZERO_ADDRESS } from '../utils/constants.js';