From fa7f61c436b420f68e41f5854ce540b4d9b61c77 Mon Sep 17 00:00:00 2001 From: Sebastian Grewe Date: Mon, 17 Jun 2013 11:17:15 +0200 Subject: [PATCH] Adding transaction fees to transaction class This will add back the transaction fees. Prior to this commit the pool had to cover the transaction fees. Now for each transaction the full balance is transferred (RPC Daemon will remove the TX Fee) but two transactions are added. One for the Debig and one TXFee. Fixes #203. **Requires database upgrade with supplied SQL file** --- cronjobs/auto_payout.php | 2 +- public/include/classes/transaction.class.php | 6 +++--- public/include/pages/account/edit.inc.php | 4 ++-- public/templates/mmcFE/account/transactions/default.tpl | 1 + sql/issue_203_transactions_upgrade.sql | 1 + 5 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 sql/issue_203_transactions_upgrade.sql diff --git a/cronjobs/auto_payout.php b/cronjobs/auto_payout.php index 366298e1..6bf36dd4 100755 --- a/cronjobs/auto_payout.php +++ b/cronjobs/auto_payout.php @@ -61,7 +61,7 @@ if (! empty($users)) { } // Create transaction record - if ($transaction->addTransaction($aUserData['id'], $dBalance, 'Debit_AP', NULL, $aUserData['coin_address'])) { + if ($transaction->addTransaction($aUserData['id'], $dBalance - $config['txfee'], 'Debit_AP', NULL, $aUserData['coin_address']) && $transaction->addTransaction($aUserData['id'], $config['txfee'], 'TXFee', NULL, $aUserData['coin_address'])) { // Notify user via mail $aMailData['email'] = $user->getUserEmail($user->getUserName($aUserData['id'])); $aMailData['subject'] = 'Auto Payout Completed'; diff --git a/public/include/classes/transaction.class.php b/public/include/classes/transaction.class.php index 3609de73..a6acd15c 100644 --- a/public/include/classes/transaction.class.php +++ b/public/include/classes/transaction.class.php @@ -147,7 +147,7 @@ class Transaction { LEFT JOIN " . $this->block->getTableName() . " AS b ON t.block_id = b.id WHERE ( ( t.type IN ('Donation','Fee') AND b.confirmations >= ? ) OR - t.type IN ('Donation_PPS','Fee_PPS') + t.type IN ('Donation_PPS','Fee_PPS','TXFee') ) ) AS t3"); if ($this->checkStmt($stmt) && $stmt->bind_param('ii', $this->config['confirmations'], $this->config['confirmations']) && $stmt->execute() && $stmt->bind_result($dBalance) && $stmt->fetch()) @@ -194,7 +194,7 @@ class Transaction { WHERE ( ( t.type IN ('Donation','Fee') AND b.confirmations >= ? ) OR - ( t.type IN ('Donation_PPS', 'Fee_PPS') ) + ( t.type IN ('Donation_PPS', 'Fee_PPS', 'TXFee') ) ) AND t.account_id = ? ) AS t3, @@ -216,7 +216,7 @@ class Transaction { WHERE ( ( t.type IN ('Donation','Fee') AND b.confirmations < ? ) OR - ( t.type IN ('Donation_PPS', 'Fee_PPS') ) + ( t.type IN ('Donation_PPS', 'Fee_PPS', 'TXFee') ) ) AND t.account_id = ? ) AS t5 diff --git a/public/include/pages/account/edit.inc.php b/public/include/pages/account/edit.inc.php index 92b8f1e1..2610f8f6 100644 --- a/public/include/pages/account/edit.inc.php +++ b/public/include/pages/account/edit.inc.php @@ -29,7 +29,7 @@ if ($user->isAuthenticated()) { } if ($continue == true) { // Send balance to address, mind fee for transaction! - try { + try { if ($setting->getValue('auto_payout_active') == 0) { $bitcoin->sendtoaddress($sCoinAddress, $dBalance); } else { @@ -42,7 +42,7 @@ if ($user->isAuthenticated()) { } } // Set balance to 0, add to paid out, insert to ledger - if ($continue == true && $transaction->addTransaction($_SESSION['USERDATA']['id'], $dBalance, 'Debit_MP', NULL, $sCoinAddress)) { + if ($continue == true && $transaction->addTransaction($_SESSION['USERDATA']['id'], $dBalance - $config['txfee'], 'Debit_MP', NULL, $sCoinAddress) && $transaction->addTransaction($_SESSION['USERDATA']['id'], $config['txfee'], 'TXFee', NULL, $sCoinAddress) ) { $_SESSION['POPUP'][] = array('CONTENT' => 'Transaction completed', 'TYPE' => 'success'); $aMailData['email'] = $user->getUserEmail($user->getUserName($_SESSION['USERDATA']['id'])); $aMailData['amount'] = $dBalance; diff --git a/public/templates/mmcFE/account/transactions/default.tpl b/public/templates/mmcFE/account/transactions/default.tpl index d2393450..c76e9fae 100644 --- a/public/templates/mmcFE/account/transactions/default.tpl +++ b/public/templates/mmcFE/account/transactions/default.tpl @@ -24,6 +24,7 @@ or $TRANSACTIONS[transaction].type == 'Donation_PPS' or $TRANSACTIONS[transaction].type == 'Debit_AP' or $TRANSACTIONS[transaction].type == 'Debit_MP' + or $TRANSACTIONS[transaction].type == 'TXFee' )} {$TRANSACTIONS[transaction].id} diff --git a/sql/issue_203_transactions_upgrade.sql b/sql/issue_203_transactions_upgrade.sql new file mode 100644 index 00000000..9c824b89 --- /dev/null +++ b/sql/issue_203_transactions_upgrade.sql @@ -0,0 +1 @@ +ALTER TABLE `transactions` CHANGE `type` `type` ENUM( 'Credit', 'Debit_MP', 'Debit_AP', 'Donation', 'Fee', 'Orphan_Credit', 'Orphan_Fee', 'Orphan_Donation', 'Credit_PPS', 'Fee_PPS', 'Donation_PPS', 'TXFee' ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;