From cbfcff3ba1a5d49f0e3faaa5d7d0e570bf73d02c Mon Sep 17 00:00:00 2001 From: Sebastian Grewe Date: Fri, 10 May 2013 23:29:42 +0200 Subject: [PATCH 1/2] adding future ledger cronjob for transaction confirmations --- cronjobs/ledger.php | 25 +++++++++++ public/include/autoloader.inc.php | 1 + public/include/classes/ledger.class.php | 57 +++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 cronjobs/ledger.php create mode 100644 public/include/classes/ledger.class.php diff --git a/cronjobs/ledger.php b/cronjobs/ledger.php new file mode 100644 index 00000000..da62f08e --- /dev/null +++ b/cronjobs/ledger.php @@ -0,0 +1,25 @@ + 120 AND l.confirmed = 0; +$ledger->confirmTransactions(); diff --git a/public/include/autoloader.inc.php b/public/include/autoloader.inc.php index 015d5590..6bc52a45 100644 --- a/public/include/autoloader.inc.php +++ b/public/include/autoloader.inc.php @@ -9,4 +9,5 @@ require_once(CLASS_DIR . '/user.class.php'); require_once(CLASS_DIR . '/block.class.php'); require_once(CLASS_DIR . '/share.class.php'); require_once(CLASS_DIR . '/statistics.class.php'); +require_once(CLASS_DIR . '/ledger.class.php'); require_once(CLASS_DIR . '/settings.class.php'); diff --git a/public/include/classes/ledger.class.php b/public/include/classes/ledger.class.php new file mode 100644 index 00000000..65bc8f46 --- /dev/null +++ b/public/include/classes/ledger.class.php @@ -0,0 +1,57 @@ +debug = $debug; + $this->mysqli = $mysqli; + $this->debug->append("Instantiated Ledger class", 2); + } + + // get and set methods + private function setErrorMessage($msg) { + $this->sError = $msg; + } + public function getError() { + return $this->sError; + } + + public function confirmTransactions() { + // Confirm all outstanding transactions + $stmt = $this->mysqli->prepare("UPDATE + ledger AS l + INNER JOIN blocks as b ON l.assocBlock = b.height + SET l.confirmed = 1 + WHERE b.confirmations > 120 + AND l.confirmed = 0"); + if ($this->checkStmt($stmt)) { + if (!$stmt->execute()) { + $this->debug->append("Failed to execute statement: " . $stmt->error); + $stmt->close(); + return false; + } + $stmt->close(); + return true; + } + return false; + } + + private function checkStmt($bState) { + if ($bState ===! true) { + $this->debug->append("Failed to prepare statement: " . $this->mysqli->error); + $this->setErrorMessage('Internal application Error'); + return false; + } + return true; + } +} + +$ledger = new Ledger($debug, $mysqli, SALT); From 1f58a1e1520e638ac708a90b065888c6cad55fbd Mon Sep 17 00:00:00 2001 From: Sebastian Grewe Date: Sat, 11 May 2013 09:19:18 +0200 Subject: [PATCH 2/2] renamed method --- cronjobs/ledger.php | 4 ++-- public/include/classes/ledger.class.php | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cronjobs/ledger.php b/cronjobs/ledger.php index da62f08e..bbb1467a 100644 --- a/cronjobs/ledger.php +++ b/cronjobs/ledger.php @@ -21,5 +21,5 @@ limitations under the License. // Include all settings and classes require_once('shared.inc.php'); -// UPDATE ledger AS l INNER JOIN blocks as b ON l.assocBlock = b.height SET l.confirmed = 1 WHERE b.confirmations > 120 AND l.confirmed = 0; -$ledger->confirmTransactions(); +// Confirm any outstanding credits +$ledger->confirmCredits(); diff --git a/public/include/classes/ledger.class.php b/public/include/classes/ledger.class.php index 65bc8f46..5138004b 100644 --- a/public/include/classes/ledger.class.php +++ b/public/include/classes/ledger.class.php @@ -24,8 +24,7 @@ class Ledger { return $this->sError; } - public function confirmTransactions() { - // Confirm all outstanding transactions + public function confirmCredits() { $stmt = $this->mysqli->prepare("UPDATE ledger AS l INNER JOIN blocks as b ON l.assocBlock = b.height