Skip to content

Commit

Permalink
Merge pull request #1861 from CounterpartyXCP/compose
Browse files Browse the repository at this point in the history
tweaks and fixes
  • Loading branch information
adamkrellenstein authored Jun 5, 2024
2 parents 291d108 + 8fb5011 commit d66a3ea
Show file tree
Hide file tree
Showing 19 changed files with 413 additions and 228 deletions.
458 changes: 239 additions & 219 deletions counterparty-core/counterpartycore/lib/api/api_v1.py

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions counterparty-core/counterpartycore/lib/api/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def healthz(db, check_type: str = "heavy"):
healthz_light(db)
healthz_heavy(db)
except Exception as e:
# logger.exception(e)
logger.error(f"Health check failed: {e}")
return False
return True
Expand Down
3 changes: 3 additions & 0 deletions counterparty-core/counterpartycore/lib/blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,7 @@ def initialise(db):
["block_index"],
["event"],
["action"],
["quantity"],
],
)

Expand Down Expand Up @@ -512,6 +513,7 @@ def initialise(db):
["block_index"],
["event"],
["calling_function"],
["quantity"],
],
)

Expand Down Expand Up @@ -539,6 +541,7 @@ def initialise(db):
["address"],
["asset"],
["block_index"],
["quantity"],
],
)

Expand Down
3 changes: 2 additions & 1 deletion counterparty-core/counterpartycore/lib/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ def connection(self):
db.close()

def close(self):
for db in self.connections:
while len(self.connections) > 0:
db = self.connections.pop()
db.close()


Expand Down
6 changes: 3 additions & 3 deletions counterparty-core/counterpartycore/lib/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ def format(self, record):
and util.CURRENT_BLOCK_INDEX is not None
and "/counterpartycore/lib/messages/" in record.pathname
):
if util.CURRENT_BLOCK_INDEX != config.MEMPOOL_BLOCK_INDEX:
log_format = f"%(asctime)s - [%(levelname)8s] - Block {util.CURRENT_BLOCK_INDEX} - %(message)s"
else:
if util.PARSING_MEMPOOL:
log_format = "%(asctime)s - [%(levelname)8s] - Mempool - %(message)s"
else:
log_format = f"%(asctime)s - [%(levelname)8s] - Block {util.CURRENT_BLOCK_INDEX} - %(message)s"
else:
log_format = "%(asctime)s - [%(levelname)8s] - %(message)s"
attrs = ["bold"] if hasattr(record, "bold") and record.bold else []
Expand Down
2 changes: 2 additions & 0 deletions counterparty-core/counterpartycore/lib/messages/dispenser.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ def initialise(db):
["source", "asset", "origin", "status"],
["last_status_tx_hash"],
["close_block_index", "status"],
["give_quantity"],
],
)

Expand Down Expand Up @@ -139,6 +140,7 @@ def initialise(db):
["asset"],
["source"],
["destination"],
["dispense_quantity"],
],
)

Expand Down
2 changes: 2 additions & 0 deletions counterparty-core/counterpartycore/lib/messages/order.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ def initialise(db):
["get_asset", "give_asset"],
["status"],
["source", "give_asset"],
["get_quantity"],
["give_quantity"],
],
)

Expand Down
2 changes: 1 addition & 1 deletion counterparty-core/counterpartycore/lib/script.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,6 @@ def ensure_script_pub_key_for_inputs(coins):
txid = coin["txid"]
for vout in txs[txid]["vout"]:
if vout["n"] == coin["vout"]:
coin["script_pub_key"] = vout["script_pub_key"]["hex"]
coin["script_pub_key"] = vout["scriptPubKey"]["hex"]

return coins
19 changes: 18 additions & 1 deletion counterparty-core/counterpartycore/test/complex_unit_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import json
import tempfile
from contextlib import contextmanager

import pytest
from apsw import ConstraintError
Expand All @@ -21,7 +22,8 @@

@pytest.mark.usefixtures("server_db")
@pytest.mark.usefixtures("api_server")
def test_alice_bob(server_db):
@pytest.mark.usefixtures("cp_server")
def test_alice_bob(server_db, cp_server, api_server):
alice = ADDR[0]
bob = "miJqNkHhC5xsB61gsiSWXeTLnEGSQnWbXB"

Expand Down Expand Up @@ -65,6 +67,17 @@ def test_alice_bob(server_db):
assert alice_balance2 == alice_balance - v
assert bob_balance2 == bob_balance + v

class DBConnectionPoolMock(metaclass=util.SingletonMeta):
@contextmanager
def connection(self):
try:
yield server_db
finally:
pass

api_server_connection_pool = api_server.connection_pool
api_server.connection_pool = DBConnectionPoolMock()

# check API result
result = util.api(
"get_balances",
Expand All @@ -76,6 +89,10 @@ def test_alice_bob(server_db):
},
)

api_server.connection_pool = api_server_connection_pool

print(result)

assert result[0]["quantity"] == alice_balance2

# -- do another TX
Expand Down
3 changes: 2 additions & 1 deletion counterparty-core/counterpartycore/test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ def rawtransactions_db(request):
def server_db(request, cp_server, api_server):
"""Enable database access for unit test vectors."""
db = database.get_connection(read_only=False)
api_server.db = db # inject into api_server
cursor = db.cursor()
cursor.execute("""BEGIN""")
util_test.reset_current_block_index(db)
Expand Down Expand Up @@ -335,6 +334,8 @@ def cp_server(request):

request.addfinalizer(lambda: util_test.remove_database_files(dbfile))

return db


class MockUTXOSet(object):
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -348,6 +350,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -412,6 +416,8 @@ CREATE INDEX credits_calling_function_idx ON credits (calling_function)
;
CREATE INDEX credits_event_idx ON credits (event)
;
CREATE INDEX credits_quantity_idx ON credits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -464,6 +470,8 @@ CREATE INDEX debits_block_index_idx ON debits (block_index)
;
CREATE INDEX debits_event_idx ON debits (event)
;
CREATE INDEX debits_quantity_idx ON debits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -1008,8 +1016,12 @@ CREATE INDEX orders_expire_index_idx ON orders (expire_index)
;
CREATE INDEX orders_get_asset_give_asset_idx ON orders (get_asset, give_asset)
;
CREATE INDEX orders_get_quantity_idx ON orders (get_quantity)
;
CREATE INDEX orders_give_asset_idx ON orders (give_asset)
;
CREATE INDEX orders_give_quantity_idx ON orders (give_quantity)
;
CREATE INDEX orders_source_give_asset_idx ON orders (source, give_asset)
;
CREATE INDEX orders_status_idx ON orders (status)
Expand Down Expand Up @@ -1817,6 +1829,8 @@ CREATE INDEX dispensers_block_index_idx ON dispensers (block_index)
;
CREATE INDEX dispensers_close_block_index_status_idx ON dispensers (close_block_index, status)
;
CREATE INDEX dispensers_give_quantity_idx ON dispensers (give_quantity)
;
CREATE INDEX dispensers_give_remaining_idx ON dispensers (give_remaining)
;
CREATE INDEX dispensers_last_status_tx_hash_idx ON dispensers (last_status_tx_hash)
Expand Down Expand Up @@ -1869,6 +1883,8 @@ CREATE INDEX dispenses_block_index_idx ON dispenses (block_index)
;
CREATE INDEX dispenses_destination_idx ON dispenses (destination)
;
CREATE INDEX dispenses_dispense_quantity_idx ON dispenses (dispense_quantity)
;
CREATE INDEX dispenses_dispenser_tx_hash_idx ON dispenses (dispenser_tx_hash)
;
CREATE INDEX dispenses_source_idx ON dispenses (source)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -348,6 +350,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -412,6 +416,8 @@ CREATE INDEX credits_calling_function_idx ON credits (calling_function)
;
CREATE INDEX credits_event_idx ON credits (event)
;
CREATE INDEX credits_quantity_idx ON credits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -464,6 +470,8 @@ CREATE INDEX debits_block_index_idx ON debits (block_index)
;
CREATE INDEX debits_event_idx ON debits (event)
;
CREATE INDEX debits_quantity_idx ON debits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -1008,8 +1016,12 @@ CREATE INDEX orders_expire_index_idx ON orders (expire_index)
;
CREATE INDEX orders_get_asset_give_asset_idx ON orders (get_asset, give_asset)
;
CREATE INDEX orders_get_quantity_idx ON orders (get_quantity)
;
CREATE INDEX orders_give_asset_idx ON orders (give_asset)
;
CREATE INDEX orders_give_quantity_idx ON orders (give_quantity)
;
CREATE INDEX orders_source_give_asset_idx ON orders (source, give_asset)
;
CREATE INDEX orders_status_idx ON orders (status)
Expand Down Expand Up @@ -1817,6 +1829,8 @@ CREATE INDEX dispensers_block_index_idx ON dispensers (block_index)
;
CREATE INDEX dispensers_close_block_index_status_idx ON dispensers (close_block_index, status)
;
CREATE INDEX dispensers_give_quantity_idx ON dispensers (give_quantity)
;
CREATE INDEX dispensers_give_remaining_idx ON dispensers (give_remaining)
;
CREATE INDEX dispensers_last_status_tx_hash_idx ON dispensers (last_status_tx_hash)
Expand Down Expand Up @@ -1869,6 +1883,8 @@ CREATE INDEX dispenses_block_index_idx ON dispenses (block_index)
;
CREATE INDEX dispenses_destination_idx ON dispenses (destination)
;
CREATE INDEX dispenses_dispense_quantity_idx ON dispenses (dispense_quantity)
;
CREATE INDEX dispenses_dispenser_tx_hash_idx ON dispenses (dispenser_tx_hash)
;
CREATE INDEX dispenses_source_idx ON dispenses (source)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -348,6 +350,8 @@ CREATE INDEX balances_asset_idx ON balances (asset)
;
CREATE INDEX balances_block_index_idx ON balances (block_index)
;
CREATE INDEX balances_quantity_idx ON balances (quantity)
;
CREATE TRIGGER block_update_balances
BEFORE UPDATE ON balances BEGIN
SELECT RAISE(FAIL, "UPDATES NOT ALLOWED");
Expand Down Expand Up @@ -412,6 +416,8 @@ CREATE INDEX credits_calling_function_idx ON credits (calling_function)
;
CREATE INDEX credits_event_idx ON credits (event)
;
CREATE INDEX credits_quantity_idx ON credits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -464,6 +470,8 @@ CREATE INDEX debits_block_index_idx ON debits (block_index)
;
CREATE INDEX debits_event_idx ON debits (event)
;
CREATE INDEX debits_quantity_idx ON debits (quantity)
;

COMMIT TRANSACTION;
PRAGMA page_size=4096;
Expand Down Expand Up @@ -1008,8 +1016,12 @@ CREATE INDEX orders_expire_index_idx ON orders (expire_index)
;
CREATE INDEX orders_get_asset_give_asset_idx ON orders (get_asset, give_asset)
;
CREATE INDEX orders_get_quantity_idx ON orders (get_quantity)
;
CREATE INDEX orders_give_asset_idx ON orders (give_asset)
;
CREATE INDEX orders_give_quantity_idx ON orders (give_quantity)
;
CREATE INDEX orders_source_give_asset_idx ON orders (source, give_asset)
;
CREATE INDEX orders_status_idx ON orders (status)
Expand Down Expand Up @@ -1817,6 +1829,8 @@ CREATE INDEX dispensers_block_index_idx ON dispensers (block_index)
;
CREATE INDEX dispensers_close_block_index_status_idx ON dispensers (close_block_index, status)
;
CREATE INDEX dispensers_give_quantity_idx ON dispensers (give_quantity)
;
CREATE INDEX dispensers_give_remaining_idx ON dispensers (give_remaining)
;
CREATE INDEX dispensers_last_status_tx_hash_idx ON dispensers (last_status_tx_hash)
Expand Down Expand Up @@ -1869,6 +1883,8 @@ CREATE INDEX dispenses_block_index_idx ON dispenses (block_index)
;
CREATE INDEX dispenses_destination_idx ON dispenses (destination)
;
CREATE INDEX dispenses_dispense_quantity_idx ON dispenses (dispense_quantity)
;
CREATE INDEX dispenses_dispenser_tx_hash_idx ON dispenses (dispenser_tx_hash)
;
CREATE INDEX dispenses_source_idx ON dispenses (source)
Expand Down
Loading

0 comments on commit d66a3ea

Please sign in to comment.