Moved data sources out of wallet class.
Added Blockchair support for BTC/BCH. Support for multiple operations for each ETH tx, introducing support for ERC-20. Separated DB data to "raw" and "processed". The goal is to be able to wipe processed data (so we can process again with updated rules) without requiring to analyze again input files. Updated SQL schema to match changes.
This commit is contained in:
+71
-7
@@ -7,6 +7,37 @@ SET time_zone = "+00:00";
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
|
||||
CREATE TABLE `blockchain_btc_raw_tx` (
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`blockchain_id` int(11) NOT NULL,
|
||||
`hash` varchar(200) NOT NULL,
|
||||
`unix_time` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `blockchain_btc_raw_tx_details` (
|
||||
`raw_tx_detail_id` int(11) NOT NULL,
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`amount` decimal(40,18) NOT NULL,
|
||||
`address` varchar(100) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `blockchain_eth_raw_tx` (
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`blockchain_id` int(11) NOT NULL,
|
||||
`hash` varchar(200) NOT NULL,
|
||||
`unix_time` int(11) NOT NULL,
|
||||
`fee` decimal(40,18) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `blockchain_eth_raw_tx_details` (
|
||||
`raw_tx_detail_id` int(11) NOT NULL,
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`address_from` varchar(200) NOT NULL,
|
||||
`address_to` varchar(200) NOT NULL,
|
||||
`amount` decimal(40,18) NOT NULL,
|
||||
`amount_coin_id` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `coins` (
|
||||
`coin_id` int(11) NOT NULL,
|
||||
`coin_name` varchar(50) NOT NULL,
|
||||
@@ -32,7 +63,7 @@ CREATE TABLE `exchanges_ledgers` (
|
||||
`account_id` int(11) NOT NULL,
|
||||
`exchange_ledger_id` varchar(50) NOT NULL,
|
||||
`exchange_reference_id` varchar(50) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL,
|
||||
`unix_time` int(11) NOT NULL,
|
||||
`operation_type` int(11) NOT NULL,
|
||||
`coin_id` int(11) NOT NULL,
|
||||
`amount` decimal(40,18) NOT NULL,
|
||||
@@ -46,7 +77,7 @@ CREATE TABLE `exchanges_trades` (
|
||||
`exchange_order_id` varchar(50) NOT NULL,
|
||||
`base_coin_id` int(11) NOT NULL,
|
||||
`quote_coin_id` int(11) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL,
|
||||
`unix_time` int(11) NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`order_type` int(11) NOT NULL,
|
||||
`price` decimal(40,18) NOT NULL,
|
||||
@@ -60,7 +91,8 @@ CREATE TABLE `wallets` (
|
||||
`wallet_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`type_id` int(11) NOT NULL,
|
||||
`wallet_name` varchar(50) NOT NULL
|
||||
`wallet_name` varchar(50) NOT NULL,
|
||||
`active` tinyint(1) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `wallets_addresses` (
|
||||
@@ -77,16 +109,40 @@ CREATE TABLE `wallets_balances` (
|
||||
`balance` decimal(48,18) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `wallets_btc_raw_tx` (
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`wallet_id` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `wallets_eth_raw_tx` (
|
||||
`raw_tx_id` int(11) NOT NULL,
|
||||
`wallet_id` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE `wallets_tx` (
|
||||
`tx_id` int(11) NOT NULL,
|
||||
`blockchain_tx_id` varchar(200) NOT NULL,
|
||||
`wallet_id` int(11) NOT NULL,
|
||||
`amount` decimal(40,18) NOT NULL,
|
||||
`fee` decimal(40,18) NOT NULL,
|
||||
`timestamp` int(11) NOT NULL
|
||||
`amount_coin_id` int(11) NOT NULL,
|
||||
`fee_coin_id` int(11) NOT NULL,
|
||||
`unix_time` int(11) NOT NULL,
|
||||
`operation_type` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
||||
ALTER TABLE `blockchain_btc_raw_tx`
|
||||
ADD PRIMARY KEY (`raw_tx_id`);
|
||||
|
||||
ALTER TABLE `blockchain_btc_raw_tx_details`
|
||||
ADD PRIMARY KEY (`raw_tx_detail_id`);
|
||||
|
||||
ALTER TABLE `blockchain_eth_raw_tx`
|
||||
ADD PRIMARY KEY (`raw_tx_id`);
|
||||
|
||||
ALTER TABLE `blockchain_eth_raw_tx_details`
|
||||
ADD PRIMARY KEY (`raw_tx_detail_id`);
|
||||
|
||||
ALTER TABLE `exchanges_accounts`
|
||||
ADD PRIMARY KEY (`account_id`);
|
||||
|
||||
@@ -103,12 +159,20 @@ ALTER TABLE `wallets_addresses`
|
||||
ADD PRIMARY KEY (`address_id`);
|
||||
|
||||
ALTER TABLE `wallets_balances`
|
||||
ADD PRIMARY KEY (`wallet_id`);
|
||||
ADD PRIMARY KEY (`wallet_id`,`coin_id`);
|
||||
|
||||
ALTER TABLE `wallets_tx`
|
||||
ADD PRIMARY KEY (`tx_id`);
|
||||
|
||||
|
||||
ALTER TABLE `blockchain_btc_raw_tx`
|
||||
MODIFY `raw_tx_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE `blockchain_btc_raw_tx_details`
|
||||
MODIFY `raw_tx_detail_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE `blockchain_eth_raw_tx`
|
||||
MODIFY `raw_tx_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE `blockchain_eth_raw_tx_details`
|
||||
MODIFY `raw_tx_detail_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE `exchanges_accounts`
|
||||
MODIFY `account_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE `exchanges_ledgers`
|
||||
@@ -123,4 +187,4 @@ ALTER TABLE `wallets_tx`
|
||||
MODIFY `tx_id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
Reference in New Issue
Block a user