From 80039297a34043b0519042331cb6d7e8e49f1b0b Mon Sep 17 00:00:00 2001 From: Aaron Fiore Date: Tue, 7 Jan 2025 17:35:39 -0800 Subject: [PATCH 1/2] container: fetch: coinbase: fix/update pagination - Don't break before advancing 'starting_after' cursor * Only save given year instead of breaking when not given year - The 'next_starting_after' cursor now exists within 'info' object --- .../fetch/exchanges/internal/exchanges/coinbase.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php b/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php index 258715d..267cf66 100644 --- a/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php +++ b/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php @@ -2,7 +2,7 @@ // docker-finance | modern accounting for the power-user // -// Copyright (C) 2021-2024 Aaron Fiore (Founder, Evergreen Crypto LLC) +// Copyright (C) 2021-2025 Aaron Fiore (Founder, Evergreen Crypto LLC) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -174,17 +174,15 @@ namespace docker_finance\exchanges\internal\exchanges\coinbase // Format: 1970-01-01T12:34:56Z $created_at = $info['created_at']; $at_year = explode('-', $created_at)[0]; - if ($at_year != $given_year) { - break 2; + if ($at_year == $given_year) { + $stack[$id][] = $txs[$i]; } - - $stack[$id][] = $txs[$i]; } // Paginate (if needed) $last = $txs[array_key_last($txs)]; - if (array_key_exists('next_starting_after', $last)) { - $account['starting_after'] = $last['next_starting_after']; + if (array_key_exists('next_starting_after', $last['info'])) { + $account['starting_after'] = $last['info']['next_starting_after']; } else { break; } From 95c7212a3d8bc4c894697a26f0d985a3111b897f Mon Sep 17 00:00:00 2001 From: Aaron Fiore Date: Tue, 7 Jan 2025 20:42:51 -0800 Subject: [PATCH 2/2] container: fetch: coinbase: remove sort (optimize) Received transactions are already sorted. --- .../lib/internal/fetch/exchanges/internal/exchanges/coinbase.php | 1 - 1 file changed, 1 deletion(-) diff --git a/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php b/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php index 267cf66..0cd82d4 100644 --- a/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php +++ b/container/src/finance/lib/internal/fetch/exchanges/internal/exchanges/coinbase.php @@ -188,7 +188,6 @@ namespace docker_finance\exchanges\internal\exchanges\coinbase } } - sort($stack); return $stack; } }