blockchain.sql 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. -- 区块链钱包表
  2. CREATE TABLE IF NOT EXISTS `blockchain_wallets` (
  3. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  4. `address` varchar(42) NOT NULL COMMENT '钱包地址',
  5. `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '钱包类型:1=bnb, 2=usdt, 3=uraus',
  6. `balance` decimal(65,18) NOT NULL DEFAULT '0' COMMENT '余额',
  7. `balance_updated_at` timestamp NULL DEFAULT NULL COMMENT '余额最后更新时间',
  8. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1=启用,0=禁用',
  9. `created_at` timestamp NULL DEFAULT NULL,
  10. `updated_at` timestamp NULL DEFAULT NULL,
  11. PRIMARY KEY (`id`),
  12. UNIQUE KEY `address_type_unique` (`address`,`type`),
  13. KEY `address_index` (`address`),
  14. KEY `type_index` (`type`),
  15. KEY `status_index` (`status`),
  16. KEY `balance_updated_at_index` (`balance_updated_at`)
  17. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区块链钱包表';
  18. -- 区块链交易记录表
  19. CREATE TABLE IF NOT EXISTS `blockchain_transactions` (
  20. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  21. `tx_hash` varchar(66) NOT NULL COMMENT '交易哈希',
  22. `from_address` varchar(42) NOT NULL COMMENT '发送地址',
  23. `to_address` varchar(42) NOT NULL COMMENT '接收地址',
  24. `amount` decimal(65,18) NOT NULL COMMENT '转账金额',
  25. `token_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '代币类型:1=bnb, 2=usdt, 3=uraus',
  26. `gas_price` decimal(65,18) NOT NULL COMMENT '矿工费单价(GWEI)',
  27. `gas_used` bigint(20) NOT NULL COMMENT '消耗的Gas数量',
  28. `gas_fee` decimal(65,18) NOT NULL COMMENT '矿工费总额(BNB)',
  29. `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态:0=待确认,1=成功,2=失败',
  30. `block_number` bigint(20) DEFAULT NULL COMMENT '区块号',
  31. `created_at` timestamp NULL DEFAULT NULL,
  32. `updated_at` timestamp NULL DEFAULT NULL,
  33. PRIMARY KEY (`id`),
  34. UNIQUE KEY `tx_hash_unique` (`tx_hash`),
  35. KEY `from_address_index` (`from_address`),
  36. KEY `to_address_index` (`to_address`),
  37. KEY `token_type_index` (`token_type`),
  38. KEY `status_index` (`status`),
  39. KEY `block_number_index` (`block_number`)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区块链交易记录表';
  41. -- 钱包余额变更记录表
  42. CREATE TABLE IF NOT EXISTS `blockchain_wallet_balance_logs` (
  43. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  44. `wallet_id` bigint(20) unsigned NOT NULL COMMENT '钱包ID',
  45. `old_balance` decimal(65,18) NOT NULL COMMENT '原余额',
  46. `new_balance` decimal(65,18) NOT NULL COMMENT '新余额',
  47. `change_type` tinyint(1) NOT NULL COMMENT '变更类型:1=交易,2=同步,3=手动修改',
  48. `sync_block_number` bigint(20) DEFAULT NULL COMMENT '同步时的区块号',
  49. `sync_tx_hash` varchar(66) DEFAULT NULL COMMENT '同步时的交易哈希',
  50. `sync_timestamp` bigint(20) DEFAULT NULL COMMENT '同步时的区块时间戳',
  51. `sync_data` json DEFAULT NULL COMMENT '同步的原始数据',
  52. `created_at` timestamp NULL DEFAULT NULL,
  53. PRIMARY KEY (`id`),
  54. KEY `wallet_id_index` (`wallet_id`),
  55. KEY `created_at_index` (`created_at`),
  56. KEY `sync_block_number_index` (`sync_block_number`),
  57. KEY `sync_tx_hash_index` (`sync_tx_hash`),
  58. CONSTRAINT `blockchain_wallet_balance_logs_wallet_id_foreign` FOREIGN KEY (`wallet_id`) REFERENCES `blockchain_wallets` (`id`) ON DELETE CASCADE
  59. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='钱包余额变更记录表';