From 20a90339efd045b1100b8b81ec19c0a1976b0a07 Mon Sep 17 00:00:00 2001 From: deucalioncodes Date: Sun, 19 Apr 2026 18:39:35 +0200 Subject: [PATCH] chore: bump ic-basilisk to 0.11.26 and remove monkey-patch v0.11.26 fixes _to_candid_text string escaping and makes candid_encode raise a catchable Python ValueError instead of trapping. The _ServiceCall monkey-patch in realm_installer is no longer needed. Made-with: Cursor --- cli/realms/cli/requirements.txt | 2 +- requirements.txt | 2 +- src/marketplace_backend/requirements.txt | 2 +- src/realm_installer/main.py | 38 --------------------- src/realm_installer/requirements.txt | 2 +- src/realm_registry_backend/requirements.txt | 2 +- 6 files changed, 5 insertions(+), 43 deletions(-) diff --git a/cli/realms/cli/requirements.txt b/cli/realms/cli/requirements.txt index ca9e16d26..c8a4fb324 100644 --- a/cli/realms/cli/requirements.txt +++ b/cli/realms/cli/requirements.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=cli/realms/cli/requirements.txt --strip-extras cli/realms/cli/requirements.in # -ic-basilisk==0.11.25 +ic-basilisk==0.11.26 # via -r cli/realms/cli/requirements.in ic-python-db==0.7.9 # via -r cli/realms/cli/requirements.in diff --git a/requirements.txt b/requirements.txt index 865433a4d..9a5f0057e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=requirements.txt --strip-extras requirements.in # -ic-basilisk==0.11.25 +ic-basilisk==0.11.26 # via ic-basilisk-toolkit ic-basilisk-toolkit==0.1.5 # via -r requirements.in diff --git a/src/marketplace_backend/requirements.txt b/src/marketplace_backend/requirements.txt index 2ede87981..3ef4b65a6 100644 --- a/src/marketplace_backend/requirements.txt +++ b/src/marketplace_backend/requirements.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=src/marketplace_backend/requirements.txt --strip-extras src/marketplace_backend/requirements.in # -ic-basilisk==0.11.25 +ic-basilisk==0.11.26 # via # -r src/marketplace_backend/requirements.in # ic-basilisk-toolkit diff --git a/src/realm_installer/main.py b/src/realm_installer/main.py index 6080c5a2d..19f6e50b4 100644 --- a/src/realm_installer/main.py +++ b/src/realm_installer/main.py @@ -104,44 +104,6 @@ TimestampedMixin, ) -# --------------------------------------------------------------------------- -# Monkey-patch: fix Basilisk's _ServiceCall to avoid trap on string encoding. -# -# The built-in _ServiceCall.__init__ calls _to_candid_text (which doesn't -# escape inner quotes in strings) followed by _basilisk_ic.candid_encode() -# (which calls ic_cdk::trap instead of raising a Python exception on parse -# errors). This combination is fatal for inter-canister calls whose -# arguments contain JSON strings like '{"key":"val"}'. -# -# When the Service class provides _arg_types for a method, we skip the -# broken text-encoding path and let the Rust-side typed encoding handle -# serialisation via _python_call_args + _candid_arg_type. For methods -# WITHOUT _arg_types (e.g. FileRegistryService), we fall back to the -# original __init__ which works fine for simple string arguments. -# --------------------------------------------------------------------------- -try: - import basilisk as _bsk - _SC = _bsk._ServiceCall - _original_sc_init = _SC.__init__ - - def _safe_sc_init(self, canister_principal, method_name, call_args=None, - payment=0, arg_type=None): - if arg_type is not None: - self._python_call_args = call_args if call_args else () - self._candid_arg_type = arg_type - self._raw_args = b'DIDL\x00\x00' - self.canister_principal = canister_principal - self.method_name = method_name - self.payment = payment - else: - _original_sc_init(self, canister_principal, method_name, - call_args, payment, arg_type) - - _SC.__init__ = _safe_sc_init -except Exception: - pass - - # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- diff --git a/src/realm_installer/requirements.txt b/src/realm_installer/requirements.txt index 024c8cdef..785bd780e 100644 --- a/src/realm_installer/requirements.txt +++ b/src/realm_installer/requirements.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=src/realm_installer/requirements.txt --strip-extras src/realm_installer/requirements.in # -ic-basilisk==0.11.25 +ic-basilisk==0.11.26 # via # -r src/realm_installer/requirements.in # ic-basilisk-toolkit diff --git a/src/realm_registry_backend/requirements.txt b/src/realm_registry_backend/requirements.txt index eae30be75..94b2d3a65 100644 --- a/src/realm_registry_backend/requirements.txt +++ b/src/realm_registry_backend/requirements.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=src/realm_registry_backend/requirements.txt --strip-extras src/realm_registry_backend/requirements.in # -ic-basilisk==0.11.25 +ic-basilisk==0.11.26 # via -r src/realm_registry_backend/requirements.in ic-python-db==0.7.9 # via -r src/realm_registry_backend/requirements.in