上币流程
确定币种参数
Token参数
-- Spot手续费精度
SET @FeePrecision = '6';
-- Funding充值精度,充值验证尾数
SET @LM_DepositPrecision = '2';
-- Funding提现精度
SET @LM_WithdrawPrecision = '2';
-- OTC手续费精度
SET @LM_FeePrecision = '6';
-- OTC最小交易数量
SET @LM_OTCMinTradeAmount = '100';
-- OTC交易结算精度
SET @LM_OTCPrecision = '2';
-- Funding资产显示精度
SET @LM_QuantityPrecision = '6';
-- NOT USED IN SPOT
SET @ReturnPrecision = '6';
-- NOT USED IN SPOT
SET @SettlementPrecision = '6';
-- SPOT交易结算精度
SET @WithdrawalPrecision = '6';全局信息
| symbol | symbol_icon | symbol_name | pair | contract_type | base_asset | quote_asset | symbol_status | symbol_flag | symbol_type_id | description | is_use_default_fee_rate | id | is_deleted | status | is_stablecoin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| USDT | https://static-cms.hkbitex.com.hk/USDT_384029df4f.png | USDT | DIGITAL | TRADING | SHOW | 4 | 10 | 0 | 1 | TRUE | |||||
| USD | https://static-cms.hkbitex.com.hk/USD_deac779860.png | USD | FIAT | TRADING | SHOW | 4 | 11 | 0 | 1 | FALSE | |||||
| HKD | https://static-cms.hkbitex.com.hk/HKD_0db8ff0125.svg | HKD | FIAT | TRADING | SHOW | 4 | 13 | 0 | 1 | FALSE | |||||
| USDC | https://static-cms.hkbitex.com.hk/USDC_0eefd2e355.png | USDC | DIGITAL | TRADING | 4 | DISABLE | 19 | 0 | 1 | TRUE | |||||
| BTC | https://static-cms.hkbitex.com.hk/BTC_d420af9ecf.png | BTC | DIGITAL | TRADING | SHOW | 4 | 7 | 0 | 1 | FALSE | |||||
| ETH | https://static-cms.hkbitex.com.hk/ETH_12ce8a834a.png | ETH | DIGITAL | TRADING | SHOW | 4 | 9 | 0 | 1 | FALSE |
配置信息
| symbol_id | FeePrecision | LM_DepositPrecision | LM_FeePrecision | LM_FiatSwapMaxAmount | LM_FiatSwapMinAmount | LM_FiatSwapPrecision | LM_OTCMinTradeAmount | LM_OTCPrecision | LM_QuantityPrecision | LM_WithdrawPrecision | ReturnPrecision | SettlementPrecision | UserTypes | WithdrawalPrecision |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10 | 6 | 2 | 6 | 100 | 2 | 6 | 2 | 6 | 6 | PI | 6 | |||
| 11 | 2 | 2 | 2 | 100000000 | 0 | 2 | 100 | 2 | 2 | 2 | 2 | 2 | PI,RETAIL | 2 |
| 13 | 2 | 1 | 2 | 100000000 | 0 | 2 | 100 | 2 | 2 | 1 | 2 | 2 | PI,RETAIL | 2 |
| 19 | 6 | 2 | 6 | 100 | 2 | 6 | 2 | 6 | 6 | PI | 6 | |||
| 7 | 8 | 5 | 8 | 0.002 | 3 | 8 | 5 | 8 | 8 | PI,RETAIL | 8 | |||
| 9 | 8 | 4 | 8 | 0.05 | 2 | 8 | 4 | 8 | 8 | PI,RETAIL | 8 |
在CMS上传Token图片
上传图片到tokens目录,获取到以下资源:
https://static-cms.hkbitex.com.hk/USDC_e48fda6fce.png
以及缩略图版资源:
https://static-cms.hkbitex.com.hk/thumbnail_USDC_e48fda6fce.png
Blockchain Bridge添加Token与合约
香港冷热钱包添加token与合约
添加blockchain_bridge服务ERC20 Token智能合约地址(原生币不需要)
添加合约
id:合约id,自增分配【contract_id】
name:合约名称(展示在Admin后台)
status:状态 1=允许; 0=禁止(下架TODO)
address:合约地址
version:1
standard:NULL
remark:NULL
owner_address_id:不需要填写
INSERT INTO `3000_exchange_blockchain_bridge`.`contracts` (`name`, `status`, `address`, `version`, `owner_address_id`,
`standard`, `remark`)
VALUES ('S USDC', '1', '0xF1E9A3b8D4165EA9860CD2c69CA69B163c0ab5f8', '1', NULL, NULL, NULL);添加token
id:token唯一标识,自增【token_id】
name:token名称(展示在Admin后台)
type:NATIVE, ERC20
contract_id:合约的id,关联Contracts表【contract_id】
blockchain_id:链id,关联Blockchains表
decimal:小数位,与链上对齐
status:状态 ENABLED,DISABLED
external_id:冷热钱包token名称,由冷热钱包提供
INSERT INTO 3000_exchange_blockchain_bridge.tokens (name, type, contract_id, blockchain_id, remark, decimal, sequence,
status, external_id)
VALUES ('USDC', 'ERC20', 3, 2, NULL, 6, NULL, 'ENABLED', 'USDC');无需重启Blockchain Bridge服务。
在Currency配置币种信息
添加币种(以USDT为例)
symbol:币种代码
symbol_icon:币种图标
symbol_name:币种名称,仅作为显示使用
contract_type:币种类型,DIGITAL-数字币,FIAT-法币
symbol_type_id:类型,3-spot,4-资产,5-OTC
START TRANSACTION;
USE `3000_exchange_currency`;
-- 1.添加币种信息
SET @symbol = 'USDT';
SET @symbol_icon = 'https://static-cms.hkbitex.com.hk/thumbnail_usdt.png';
SET @symbol_name = 'USDT';
SET @contract_type = 'DIGITAL';
SET @symbol_type_id = 4;
SET @FeePrecision = '6';
SET @LM_DepositPrecision = '2';
SET @LM_FeePrecision = '6';
SET @LM_OTCMinTradeAmount = '100';
SET @LM_OTCPrecision = '2';
SET @LM_QuantityPrecision = '6';
SET @LM_WithdrawPrecision = '2';
SET @ReturnPrecision = '6';
SET @SettlementPrecision = '6';
SET @WithdrawalPrecision = '6';
INSERT INTO currency_symbol_info (`symbol`, `symbol_icon`, `symbol_name`, `pair`, `contract_type`,
`delivery_date`, `onboard_date`, `base_asset`, `quote_asset`,
`symbol_status`, `symbol_type_id`, `created_at`, `updated_at`,
`is_use_default_fee_rate`)
VALUES (@symbol, @symbol_icon, @symbol_name, '', @contract_type,
1598252400000, 1598252400000, '', '', 'TRADING', @symbol_type_id, NOW(), NOW(), 'DISABLE');
SET @last_id = LAST_INSERT_ID();
-- 2.添加币种配置信息
INSERT INTO `currency_symbol_settings` (`created_at`, `updated_at`, `symbol_id`, `settings_key`, `settings_value`)
VALUES (NOW(), NOW(), @last_id, 'FeePrecision', @FeePrecision),
(NOW(), NOW(), @last_id, 'LM_DepositPrecision', @LM_DepositPrecision),
(NOW(), NOW(), @last_id, 'LM_FeePrecision', @LM_FeePrecision),
(NOW(), NOW(), @last_id, 'LM_OTCMinTradeAmount', @LM_OTCMinTradeAmount),
(NOW(), NOW(), @last_id, 'LM_OTCPrecision', @LM_OTCPrecision),
(NOW(), NOW(), @last_id, 'LM_QuantityPrecision', @LM_QuantityPrecision),
(NOW(), NOW(), @last_id, 'LM_WithdrawPrecision', @LM_WithdrawPrecision),
(NOW(), NOW(), @last_id, 'ReturnPrecision', @ReturnPrecision),
(NOW(), NOW(), @last_id, 'SettlementPrecision', @SettlementPrecision),
(NOW(), NOW(), @last_id, 'WithdrawalPrecision', @WithdrawalPrecision);
COMMIT;完成后重启服务
- exchange-currency-service-backend (或等待5分钟热加载)
- exchange-market-agg-backend (等Currency好了之后重启)
- exchange-push-server-backend (等Currency好了之后重启)
- exchange-statistical-service-backend (等Currency好了之后重启)
在Quoter 添加币种 (Statistical)(废弃中)
# 需重启
USE `3000_exchange_quoter`;
INSERT INTO quoter_symbol (base, quote, scale, is_enabled) VALUES ('BTC', 'USDC', 2, 1)
INSERT INTO quoter_symbol (base, quote, scale, is_enabled) VALUES ('ETH', 'USDC', 2, 1)
INSERT INTO quoter_symbol (base, quote, scale, is_enabled) VALUES ('USDC', 'USD', 4, 1)
INSERT INTO quoter_price (symbol, price, time, created_at) VALUES ('usdc_usdt_perp', '1', 1738913463, '2025-02-07 07:31:03.601')在Quoter2 添加币种 (OTC、BlockchainBridge)
SET @symbol = 'USDT'; -- 替换成实际的币种代码
SET @symbol_coin_market_cap_id = 1; -- 替换成实际的CoinMarketCap ID
INSERT INTO `3000_exchange_quoter2`.quoter_symbol_mappings (symbol, symbol_id, created_at, updated_at, deleted_at)
VALUES (@symbol, symbol_coin_market_cap_id, '2025-02-15 16:59:02.000', '2025-02-15 16:59:04.000', null),在Ledger Manager添加资产管理币种和OTC交易币种
blockchain_id:引用exchange_blockchain_bridge→blockchain表的id
blockchain_name:显示在客户端的链名称(sepolia, bitcoin, ethereum)(Haopu提供)
blockchain_full_name: 引用exchange_blockchain_bridge→blockchain表的name
explorer:浏览器URL
status:ENABLE
token_id:引用exchange_blockchain_bridge→token表的id
minimum_amount:最小充/提数量
blockchain_confirmations:确认数
random_precision:NOT_USED
limit:最大充/提数量
OTC
status:OPEN,CLOSED
USE `4000_exchange_ledger_manager`;
INSERT INTO asset_tokens (asset_name, token_id, asset_type, blockchain_id, blockchain_name, blockchain_full_name, explorer, is_evm, status, created_at, updated_at, deleted_at, is_bitcoin) VALUES ('USDC', 4, 'TOKEN', 11155111, 'sepolia', null, 'https://sepolia.etherscan.io/', 1, 'ENABLE', '2025-02-07 15:23:57.000', '2025-02-07 15:23:59.000', null, 0)
INSERT INTO assets (name, type, icon, status, created_at, updated_at, deleted_at) VALUES ('USDC', 'TOKEN', 'https://static-cms.hkbitex.com.hk/usdc_5d76330d38.png', 'ENABLE', '2025-02-07 15:25:37.000', '2025-02-07 15:25:38.000', null)
INSERT INTO deposit_configs (asset_name, blockchain_name, minimum_amount, blockchain_confirmations, created_at, updated_at, deleted_at, random_precision) VALUES ('USDC', 'sepolia', 1.000000000000000000, 10, '2025-02-07 15:26:37.000', '2025-02-07 15:26:39.000', null, null)
INSERT INTO deposit_limits (asset_name, `limit`, created_at, updated_at, deleted_at) VALUES ('USDC', 1500000.000000000000000000, '2025-02-07 15:27:15.000', '2025-02-07 15:27:17.000', null)
INSERT INTO withdraw_configs (asset_name, blockchain_name, fee, minimum_amount, blockchain_confirmations, created_at, updated_at, deleted_at) VALUES ('USDC', 'sepolia', 20.000000000000000000, 150.000000000000000000, 10, '2025-02-07 15:28:20.000', '2025-02-07 15:28:22.000', null)
INSERT INTO withdraw_limits (asset_name, `limit`, created_at, updated_at, deleted_at) VALUES ('USDC', 1000000.000000000000000000, '2025-02-07 15:29:04.000', '2025-02-07 15:29:07.000', null)
# otc_provider_symbol_configs
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('FalconX', 'BTC_USDC', 'BTC', 'USDC', 'OPEN', '2024-06-26 10:24:00.000', '2024-08-29 12:26:14.807', null);
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('FalconX', 'ETH_USDC', 'ETH', 'USDC', 'OPEN', '2024-06-26 10:24:00.000', '2024-10-21 08:37:55.942', null);
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('FalconX', 'USDC_USD', 'USDC', 'USD', 'OPEN', '2024-06-26 10:24:00.000', '2024-10-21 08:37:55.942', null);
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('VirgoCX', 'BTC_USDC', 'BTC', 'USDC', 'OPEN', '2024-06-26 10:24:00.000', '2024-10-25 03:21:43.492', null);
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('VirgoCX', 'ETH_USDC', 'ETH', 'USDC', 'OPEN', '2024-06-26 10:24:00.000', '2024-10-25 03:21:55.324', null);
INSERT INTO otc_provider_symbol_configs (provider_name, symbol, base_asset_name, quote_asset_name, status, created_at, updated_at, deleted_at) VALUES ('VirgoCX', 'USDC_USD', 'USDC', 'USD', 'OPEN', '2024-06-26 10:24:00.000', '2024-10-25 03:21:55.324', null);