test(solana): sign and verify off-chain messages
What changed, and why it matters
This commit only adds new automated tests for a Solana feature that signs and verifies off-chain messages. It does not change the actual wallet firmware code that users rely on, so it cannot by itself introduce a security vulnerability or fix one. The tests exercise parsing, signing, and verification logic and include checks for invalid inputs.
No security action required; treat as routine test coverage. If reviewing the feature itself, inspect the production Solana off-chain message implementation in a separate commit that touches apps.solana source files.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff is entirely test infrastructure: a new unit-test file for Solana off-chain message parsing (core/tests/test_apps.solana.offchain_message.py), a new device-level integration test (tests/device_tests/solana/test_sign_message.py), updated translation signature metadata, and a large set of UI test fixture hashes. No production source files under apps.solana or core/src are modified. The tests cover valid/invalid message formats, signer counts, length limits, missing signer handling, and invalid signature envelopes.
Changed components
tests/device_tests/solana/test_sign_message.pycore/tests/test_apps.solana.offchain_message.pycore/translations/signatures.jsontests/ui_tests/fixtures.jsonInspect captured patch +514 / −3
diff --git a/core/tests/test_apps.solana.offchain_message.py b/core/tests/test_apps.solana.offchain_message.py
new file mode 100644
index 00000000..66d90371
--- /dev/null
+++ b/core/tests/test_apps.solana.offchain_message.py
@@ -0,0 +1,203 @@
+# flake8: noqa: F403,F405
+from ubinascii import unhexlify
+
+from trezor.crypto import base58
+from trezor.wire import DataError
+
+from common import unittest, utils
+
+if not utils.BITCOIN_ONLY:
+ from apps.solana.constants import *
+ from apps.solana.offchain_message import *
+
+ DOM = OffchainMessage.SIGNING_DOMAIN
+ APP = b"a" * OffchainMessageV0.APP_DOMAIN_LEN
+else:
+ DOM = b""
+ APP = b""
+ ADDRESS_SIZE = 0
+
+
+VER_0 = b"\x00"
+
+FORM_ASCII = b"\x00"
+FORM_UTF8_S = b"\x01"
+FORM_UTF8_L = b"\x02"
+
+MSG_ASCII = b"Hello, world!"
+MSG_UTF8_S = "Hello, 🌍!".encode()
+MSG_UTF8_L = MSG_UTF8_S * 1000
+
+PUB0 = b"p" * ADDRESS_SIZE
+PUB1 = b"q" * ADDRESS_SIZE
+
+# Generated using Solana Kit
+# https://www.solanakit.com/docs/advanced-guides/offchain-messages
+TEST_VECTORS = [
+ {
+ "app": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
+ "signers": ["11111111111111111111111111111111"],
+ "message": "Hello, world!",
+ "format": 0,
+ "hex": "ff736f6c616e61206f6666636861696e00054a535a992921064d24e87160da387c7c35b5ddbc92bb81e41fa8404105448d000100000000000000000000000000000000000000000000000000000000000000000d0048656c6c6f2c20776f726c6421",
+ },
+ {
+ "app": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
+ "signers": ["11111111111111111111111111111111"],
+ "message": "Solana off-chain message with émojis ☀️🏖️ and spëcial châräctérs! 日本語テスト ",
+ "format": 1,
+ "hex": "ff736f6c616e61206f6666636861696e00054a535a992921064d24e87160da387c7c35b5ddbc92bb81e41fa8404105448d010100000000000000000000000000000000000000000000000000000000000000006300536f6c616e61206f66662d636861696e206d657373616765207769746820c3a96d6f6a697320e29880efb88ff09f8f96efb88f20616e64207370c3ab6369616c206368c3a272c3a46374c3a972732120e697a5e69cace8aa9ee38386e382b9e3838820",
+ },
+ {
+ "app": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
+ "signers": ["11111111111111111111111111111111"],
+ "message": "This uses the extended UTF-8 format allowing up to 65535 bytes.",
+ "format": 2,
+ "hex": "ff736f6c616e61206f6666636861696e00054a535a992921064d24e87160da387c7c35b5ddbc92bb81e41fa8404105448d020100000000000000000000000000000000000000000000000000000000000000003f005468697320757365732074686520657874656e646564205554462d3820666f726d617420616c6c6f77696e6720757020746f2036353533352062797465732e",
+ },
+ {
+ "app": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
+ "signers": [
+ "11111111111111111111111111111111",
+ "Vote111111111111111111111111111111111111111",
+ "Stake11111111111111111111111111111111111111",
+ ],
+ "message": "Multi-party agreement.",
+ "format": 0,
+ "hex": "ff736f6c616e61206f6666636861696e00054a535a992921064d24e87160da387c7c35b5ddbc92bb81e41fa8404105448d000300000000000000000000000000000000000000000000000000000000000000000761481d357474bb7c4d7624ebd3bdb3d8355e73d11043fc0da353800000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000016004d756c74692d70617274792061677265656d656e742e",
+ },
+]
+
+
+@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
+class TestMessageV0(unittest.TestCase):
+
+ def assertMsgEqual(self, offchain, app, signers, form, message):
+ self.assertEqual(offchain.app, app)
+ self.assertListEqual(offchain.signers, signers)
+ self.assertEqual(offchain.format, form)
+ self.assertEqual(offchain.message, message)
+
+ def try_parse(
+ self,
+ dom=DOM,
+ ver=VER_0,
+ app=APP,
+ pubs=(PUB0,),
+ n_pubs=None,
+ form=FORM_ASCII,
+ msg=MSG_ASCII,
+ msg_len=None,
+ ):
+ if n_pubs is None:
+ n_pubs = len(pubs).to_bytes(1, "little")
+ if msg_len is None:
+ msg_len = len(msg).to_bytes(2, "little")
+
+ data = dom + ver + app + form + n_pubs + b"".join(pubs) + msg_len + msg
+ offchain = OffchainMessage.from_bytes(data)
+
+ self.assertMsgEqual(offchain, app, pubs, form[0], msg.decode())
+
+ return data, offchain
+
+ def test_vectors(self):
+ for vector in TEST_VECTORS:
+ offchain = OffchainMessage.from_bytes(unhexlify(vector["hex"]))
+
+ self.assertMsgEqual(
+ offchain,
+ base58.decode(vector["app"]),
+ [base58.decode(s) for s in vector["signers"]],
+ vector["format"],
+ vector["message"],
+ )
+
+ def test_basic(self):
+ configs = (
+ (FORM_ASCII, MSG_ASCII),
+ (FORM_UTF8_S, MSG_ASCII),
+ (FORM_UTF8_S, MSG_UTF8_S),
+ (FORM_UTF8_L, MSG_ASCII),
+ (FORM_UTF8_L, MSG_UTF8_S),
+ (FORM_UTF8_L, MSG_UTF8_L),
+ )
+
+ for form, msg in configs:
+ self.try_parse(form=form, msg=msg)
+
+ def test_multi(self):
+ self.try_parse(pubs=[PUB0, PUB1])
+
+ def test_domain_invalid(self):
+ with self.assertRaises(DataError):
+ self.try_parse(dom=b"\x00solana offchain")
+
+ def test_version_unsupported(self):
+ with self.assertRaises(DataError):
+ self.try_parse(ver=b"\xff")
+
+ def test_format_mismatch(self):
+ with self.assertRaises(DataError):
+ self.try_parse(form=FORM_ASCII, msg=MSG_UTF8_S)
+ with self.assertRaises(DataError):
+ self.try_parse(form=FORM_UTF8_S, msg=MSG_UTF8_L)
+
+ def test_format_invalid(self):
+ with self.assertRaises(DataError):
+ self.try_parse(form=b"\x03")
+
+ def test_ascii_restricted(self):
+ self.try_parse(form=FORM_ASCII, msg=bytes(range(0x20, 0x7F)))
+
+ def test_ascii_unrestricted(self):
+ with self.assertRaises(DataError):
+ self.try_parse(form=FORM_ASCII, msg=b"\x1f")
+ with self.assertRaises(DataError):
+ self.try_parse(form=FORM_ASCII, msg=b"\x7f")
+
+ def test_utf8_invalid(self):
+ with self.assertRaises(DataError):
+ self.try_parse(form=FORM_UTF8_S, msg=b"\xff\xfe")
+
+ def test_signer_count_zero(self):
+ with self.assertRaises(DataError):
+ self.try_parse(pubs=[], n_pubs=b"\x00")
+
+ def test_signer_count_mismatch(self):
+ with self.assertRaises(DataError):
+ self.try_parse(pubs=[PUB0, PUB1], n_pubs=b"\x01")
+ with self.assertRaises(DataError):
+ self.try_parse(pubs=[PUB0], n_pubs=b"\x02")
+
+ def test_message_length_zero(self):
+ with self.assertRaises(DataError):
+ self.try_parse(msg=b"", msg_len=b"\x00\x00")
+
+ def test_message_length_mismatch(self):
+ with self.assertRaises(DataError):
+ self.try_parse(msg=b"12345", msg_len=b"\x06\x00")
+ with self.assertRaises(DataError):
+ self.try_parse(msg=b"12345", msg_len=b"\x04\x00")
+
+ def test_message_length_limits(self):
+ configs = (
+ (FORM_ASCII, OffchainMessageV0.MAX_COMBINED_MSG_LEN_SHORT),
+ (FORM_UTF8_S, OffchainMessageV0.MAX_COMBINED_MSG_LEN_SHORT),
+ (FORM_UTF8_L, OffchainMessageV0.MAX_COMBINED_MSG_LEN),
+ )
+ PREAMBLE_LEN = 0x35 + ADDRESS_SIZE # for 1 signer
+
+ for form, max_len in configs:
+ max_msg_len = max_len - PREAMBLE_LEN
+ msg = b"m" * max_msg_len
+
+ msg_bytes, _ = self.try_parse(form=form, msg=msg)
+ self.assertEqual(len(msg_bytes), max_len)
+
+ with self.assertRaises(DataError):
+ self.try_parse(form=form, msg=msg + b"m")
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/core/translations/signatures.json b/core/translations/signatures.json
index ba823a51..cf1768d5 100644
--- a/core/translations/signatures.json
+++ b/core/translations/signatures.json
@@ -1,8 +1,8 @@
{
"current": {
- "merkle_root": "bceb0fac400b0d37672d392be2f10799d647c6d962e1b7865e4ee69c50543fd6",
- "datetime": "2026-05-26T20:00:33.224841+00:00",
- "commit": "a33c7f28ac6e5116e072b71d92aa2c84c4448f48"
+ "merkle_root": "ddd789ba7b38d841ea828d0d0860c99ca138c2f3d91a6d7cd373ecc02d6760cd",
+ "datetime": "2026-05-26T21:23:59.101182+00:00",
+ "commit": "b8e502a517259fc95f508f24cb42325c67663bf2"
},
"history": [
{
diff --git a/tests/device_tests/solana/test_sign_message.py b/tests/device_tests/solana/test_sign_message.py
new file mode 100644
index 00000000..deae34b2
--- /dev/null
+++ b/tests/device_tests/solana/test_sign_message.py
@@ -0,0 +1,92 @@
+from random import Random
+
+import pytest
+from cryptography.hazmat.primitives.asymmetric.ed25519 import (
+ Ed25519PrivateKey,
+ Ed25519PublicKey,
+)
+
+from trezorlib import exceptions, solana
+from trezorlib.debuglink import DebugSession as Session
+from trezorlib.tools import parse_path
+
+pytestmark = [pytest.mark.altcoin, pytest.mark.solana, pytest.mark.models("core")]
+
+ADDRESS_N = parse_path("m/44h/501h/0h/0h")
+ED25519_PRIV_SIZE = 32
+
+
+@pytest.mark.parametrize(
+ ["n_cosigners", "message"],
+ [
+ pytest.param(0, "Hello, world!", id="ascii"),
+ pytest.param(0, "Hello, 🌍! Spëcial châräctérs.", id="utf-8"),
+ pytest.param(0, "Much " + "much " * 42 + "longer message.", id="long"),
+ pytest.param(2, "Multi-party agreement.", id="multi"),
+ ],
+)
+def test_sign_verify(session: Session, n_cosigners: int, message: str) -> None:
+ signer_pub = Ed25519PublicKey.from_public_bytes(
+ solana.get_public_key(session, ADDRESS_N, show_display=True)
+ )
+
+ rng = Random(0)
+ cosigner_privs = [
+ Ed25519PrivateKey.from_private_bytes(rng.randbytes(ED25519_PRIV_SIZE))
+ for _ in range(n_cosigners)
+ ]
+ cosigner_pubs = [priv.public_key() for priv in cosigner_privs]
+
+ pubs = cosigner_pubs + [signer_pub]
+
+ offchain_message = solana.OffchainMessageV0(
+ app=b"\x00" * solana.OffchainMessageV0.APP_LEN,
+ signers=[pub.public_bytes_raw() for pub in pubs],
+ message=message,
+ ).to_bytes()
+
+ signatures = [priv.sign(offchain_message) for priv in cosigner_privs]
+ signatures.append(solana.sign_message(session, ADDRESS_N, offchain_message))
+
+ for pub, sig in zip(pubs, signatures):
+ pub.verify(sig, offchain_message)
+
+ envelope = solana.Envelope(signatures, offchain_message).to_bytes()
+
+ assert solana.verify_message(session, envelope)
+
+
+def test_missing_signer(session: Session) -> None:
+ offchain_message = solana.OffchainMessageV0(
+ app=b"\x00" * solana.OffchainMessageV0.APP_LEN,
+ signers=[b"\x00" * solana.OffchainMessageV0.PUB_KEY_LEN],
+ message="Missing signer!",
+ ).to_bytes()
+
+ with pytest.raises(
+ exceptions.TrezorFailure, match="Requested key not among signers"
+ ):
+ solana.sign_message(session, ADDRESS_N, offchain_message)
+
+
+@pytest.mark.parametrize(
+ "signatures",
+ [
+ pytest.param([], id="missing"),
+ pytest.param([b"\x00" * (solana.Envelope.SIG_LEN - 1)], id="malformed"),
+ pytest.param([b"\x00" * solana.Envelope.SIG_LEN], id="invalid"),
+ pytest.param([b"\x00" * solana.Envelope.SIG_LEN] * 2, id="extra"),
+ ],
+)
+def test_invalid_envelope(session: Session, signatures: list[bytes]) -> None:
+ offchain_message = solana.OffchainMessageV0(
+ app=b"\x00" * solana.OffchainMessageV0.APP_LEN,
+ signers=[solana.get_public_key(session, ADDRESS_N, show_display=False)],
+ message="Invalid envelope!",
+ ).to_bytes()
+
+ solana.sign_message(session, ADDRESS_N, offchain_message)
+
+ envelope = solana.Envelope(signatures, offchain_message).to_bytes()
+
+ assert not solana.verify_message(session, envelope)
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index ca15de31..dfc1cd53 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -2588,6 +2588,15 @@
"T2T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "4b48d2d6131bdf3a0d6a27a3ea5a4a050de7df7512466a6b2fb8648b0a7d4516",
"T2T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "557f9b32f0198a05ff85f1426c37e189f232f113ea95b1b2c2a33d4f9b16a6c4",
"T2T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "c69fcf2acb60b5e057fa5e4ebcb0f9780463e44882ffeb8588206a537e51b5a0",
+"T2T1_cs_solana-test_sign_message.py::test_invalid_envelope[extra]": "3931fd61d7434bd59bcc611afb082855dbcc6733b93ac1ff608e43f4fa511ea1",
+"T2T1_cs_solana-test_sign_message.py::test_invalid_envelope[invalid]": "3931fd61d7434bd59bcc611afb082855dbcc6733b93ac1ff608e43f4fa511ea1",
+"T2T1_cs_solana-test_sign_message.py::test_invalid_envelope[malformed]": "3931fd61d7434bd59bcc611afb082855dbcc6733b93ac1ff608e43f4fa511ea1",
+"T2T1_cs_solana-test_sign_message.py::test_invalid_envelope[missing]": "3931fd61d7434bd59bcc611afb082855dbcc6733b93ac1ff608e43f4fa511ea1",
+"T2T1_cs_solana-test_sign_message.py::test_missing_signer": "f2b80196c81ce473b7f24f16f6192ac76d9d2ca23fb0b40053c00d02b53d5111",
+"T2T1_cs_solana-test_sign_message.py::test_sign_verify[ascii]": "b6e237d1627e49862ec5d892e32e399d97602209d93174a169eeffd7609d7986",
+"T2T1_cs_solana-test_sign_message.py::test_sign_verify[long]": "410edd4fa5c1487de772a39ddb68121bfa76acd0e2fcb4d350070628768ed478",
+"T2T1_cs_solana-test_sign_message.py::test_sign_verify[multi]": "9bdb4750fb4b80f005166b1bfe32de0402d73099813787ae1cd542afe7de6127",
+"T2T1_cs_solana-test_sign_message.py::test_sign_verify[utf-8]": "81e5d1675f40b8b1a1f90cb4eb74c4a945f996966f93c2020f7738a0e637cd55",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "9fdce3eabf07881d7369c7421e9a6acafbc89e7c2edfaa9ed31a8c44093709f4",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "38bd71d8fcfaca14d7dfbb3beddb03681cccfb55d30050b0c47d66486639fc1f",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "bb84298c8007c9ba7bbbe5af7abf819a94136fae38d8abd4808e902f9083badf",
@@ -4355,6 +4364,15 @@
"T2T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "f9db1e405c434e2ab9db2eb847437284fafd47925ce9669b076693bb5c8269be",
"T2T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "1c11071a029a71bcb059500559fbbe63f6b514123b17aff214271404c2319405",
"T2T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "65f6d46ed269f9a742f562c80c64a4a26d9f7be252fd59d63d7c0b0cac034dd4",
+"T2T1_de_solana-test_sign_message.py::test_invalid_envelope[extra]": "f198e4ef2aca96d02e3da0327bbf118b4c77831dfdb33425336ceaa489bd2247",
+"T2T1_de_solana-test_sign_message.py::test_invalid_envelope[invalid]": "f198e4ef2aca96d02e3da0327bbf118b4c77831dfdb33425336ceaa489bd2247",
+"T2T1_de_solana-test_sign_message.py::test_invalid_envelope[malformed]": "f198e4ef2aca96d02e3da0327bbf118b4c77831dfdb33425336ceaa489bd2247",
+"T2T1_de_solana-test_sign_message.py::test_invalid_envelope[missing]": "f198e4ef2aca96d02e3da0327bbf118b4c77831dfdb33425336ceaa489bd2247",
+"T2T1_de_solana-test_sign_message.py::test_missing_signer": "efeaf51fe18b983e9b1a6947a939ad305a92e57798fe07110bb61c0f65755881",
+"T2T1_de_solana-test_sign_message.py::test_sign_verify[ascii]": "3745604932b5b15c4154a963dd60bed45172eb054ea833e423ff275750eacd6e",
+"T2T1_de_solana-test_sign_message.py::test_sign_verify[long]": "2edae9af5cf58e2720d3456c2430f8a1fe3107f4c4f8cb5a1fb9e3c9d47aceb0",
+"T2T1_de_solana-test_sign_message.py::test_sign_verify[multi]": "81eabe71bff44cd66a87f466c1473592c68c632cc4a104a2cef5231d12882d29",
+"T2T1_de_solana-test_sign_message.py::test_sign_verify[utf-8]": "3ac406b98374cffb303b15f60a977742c8abefb0dc7ace34e2d7687c25973919",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "cbbfff10c7b86b6631ba7873f2364ed9bf589583fd7f238a2a9672512d32fb9e",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "d6bd38341b32d670b9121bdba57505922dadcaf8234cce9463baf47083600a5e",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "6d277cf73e9342de649cd2231458c8954cec5255c781034ac31dc00e82c8d62a",
@@ -6122,6 +6140,15 @@
"T2T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "63b0de3b9e52ab4667c4d8b8dea83b548fa846954274ff56d4ddbaf0d99bfad4",
"T2T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "e1bdbbdef5914cd69e257a1cce610d7d6f0af73f8aaf1a6ba1de26a8ac614568",
"T2T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "5d3769564e5669fad4df6ddb507ad16f6138864dc69752cc792cb3d9ed7506cc",
+"T2T1_en_solana-test_sign_message.py::test_invalid_envelope[extra]": "435d2dc1164b3a3dc3e3e08cb50582e5a697a44d79fb472ef8bfcfe7531d3552",
+"T2T1_en_solana-test_sign_message.py::test_invalid_envelope[invalid]": "435d2dc1164b3a3dc3e3e08cb50582e5a697a44d79fb472ef8bfcfe7531d3552",
+"T2T1_en_solana-test_sign_message.py::test_invalid_envelope[malformed]": "435d2dc1164b3a3dc3e3e08cb50582e5a697a44d79fb472ef8bfcfe7531d3552",
+"T2T1_en_solana-test_sign_message.py::test_invalid_envelope[missing]": "435d2dc1164b3a3dc3e3e08cb50582e5a697a44d79fb472ef8bfcfe7531d3552",
+"T2T1_en_solana-test_sign_message.py::test_missing_signer": "8aa7c68cd09e700e8c6903dcfc39c4a66214481c12c34dc56762829478399b79",
+"T2T1_en_solana-test_sign_message.py::test_sign_verify[ascii]": "d78bfc00591a2cbe4cc119f164c9951a1963f681947e15977c867ddb009197db",
+"T2T1_en_solana-test_sign_message.py::test_sign_verify[long]": "4c7a6fd5acba80f6b02d5c59e55e2b0ec7b291581a0a904d54c02a8907564440",
+"T2T1_en_solana-test_sign_message.py::test_sign_verify[multi]": "33e2a18c86744d91f7bffa14d170beab7c8600b914f9f1698ed674037394077f",
+"T2T1_en_solana-test_sign_message.py::test_sign_verify[utf-8]": "9e3a971c0ec15023b7ec1e4a51bba659ff04e7c079b923ca8e50e1e0f19403bd",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "e1d1a05823decc59da87ea70f6290c72ac0d13d8d632242918d991c69984d4dc",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "81f090cef716976fdf487d727b10c7573ade37e3f200981e6870d84383850c92",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "965eedaf569af81990239d755dc7d5d2546971d88fd48f2af469ce0dfd4f1a75",
@@ -7907,6 +7934,15 @@
"T2T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "ac7f8a01dcb3665e51562e12c9187ba48c3f67bf03226c356b733e288bb3c8f7",
"T2T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "9d7aa88fb67588abf11b19385a07e1b5e4f1e3e1ea96a8614517dd8623007208",
"T2T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "a29cea492b18f3bb6b99d414ff533e26d62f107121e1dacd5f366c24a2a4f255",
+"T2T1_es_solana-test_sign_message.py::test_invalid_envelope[extra]": "e1ac8441259ba4d05afcac5c4012e5e843f724caeb89bbfc8fc839901647a940",
+"T2T1_es_solana-test_sign_message.py::test_invalid_envelope[invalid]": "e1ac8441259ba4d05afcac5c4012e5e843f724caeb89bbfc8fc839901647a940",
+"T2T1_es_solana-test_sign_message.py::test_invalid_envelope[malformed]": "e1ac8441259ba4d05afcac5c4012e5e843f724caeb89bbfc8fc839901647a940",
+"T2T1_es_solana-test_sign_message.py::test_invalid_envelope[missing]": "e1ac8441259ba4d05afcac5c4012e5e843f724caeb89bbfc8fc839901647a940",
+"T2T1_es_solana-test_sign_message.py::test_missing_signer": "17d836396f272c01cafa175aa87b0c076aedf7698c935d1921c7d3d7e8911903",
+"T2T1_es_solana-test_sign_message.py::test_sign_verify[ascii]": "62ad1427541856978fcfb1866ffbd4444fb0c1fb6325bdba20be77cba33dbdfd",
+"T2T1_es_solana-test_sign_message.py::test_sign_verify[long]": "95d53d773ed3c51c2360da1b4fb82b70c5f91858e249cd7c2f0eaf39b5616bcf",
+"T2T1_es_solana-test_sign_message.py::test_sign_verify[multi]": "663d674e8679cae5f2b33c92a3b025d7988ef9a7543d697ad0df4e245018f623",
+"T2T1_es_solana-test_sign_message.py::test_sign_verify[utf-8]": "551d0044ef2dad51f4e9ec32b9a0172960c659324112e35783ea010828f8a696",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "89cc3db13bd0312197b2b6ed59dbdf02e7a280d0f66b4096988526fc4078725b",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "3f8db4b2df40fdfa8b2640b154005809c07aca8b29299d1f67479c4de978a94d",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "668629c82806524c1ff2133f700e76834a1e6433b48077244dd751c525c1309d",
@@ -9674,6 +9710,15 @@
"T2T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "f00be270e549cf8c6a4646d4ef1fe97a3feb452a4ed90f31c5ec7e2fc7b54c0a",
"T2T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "55499fe8f27d690b4ae3d0f59a2fb43e93fd0aedab863a8ce2f79abb2f7a1eb4",
"T2T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "4c905e07b2cc71fc23ebcd4d751a6d62b9b3ada569bec1e211a2db41e26816af",
+"T2T1_fr_solana-test_sign_message.py::test_invalid_envelope[extra]": "43c8dc2c94980b2455917b62eb9b30ce342571be4b4a95659c7d036ac80a240c",
+"T2T1_fr_solana-test_sign_message.py::test_invalid_envelope[invalid]": "43c8dc2c94980b2455917b62eb9b30ce342571be4b4a95659c7d036ac80a240c",
+"T2T1_fr_solana-test_sign_message.py::test_invalid_envelope[malformed]": "43c8dc2c94980b2455917b62eb9b30ce342571be4b4a95659c7d036ac80a240c",
+"T2T1_fr_solana-test_sign_message.py::test_invalid_envelope[missing]": "43c8dc2c94980b2455917b62eb9b30ce342571be4b4a95659c7d036ac80a240c",
+"T2T1_fr_solana-test_sign_message.py::test_missing_signer": "7e5a99a4b6aad4cdf7a9f9aecf483faa381108ee2108efaba88f261e29ac1f8a",
+"T2T1_fr_solana-test_sign_message.py::test_sign_verify[ascii]": "812a072077ecf7cc9365d4b37d5d55e5eddaf627e499376b5f9c493b4a4da11b",
+"T2T1_fr_solana-test_sign_message.py::test_sign_verify[long]": "a83635cac9a760d6642dff9c172e0cfd12ea853a7b151074d5df4a89996ea765",
+"T2T1_fr_solana-test_sign_message.py::test_sign_verify[multi]": "4bcfe44e6d47b4c977564303671479254bce8e49d7597e812c87c9280f16a07e",
+"T2T1_fr_solana-test_sign_message.py::test_sign_verify[utf-8]": "57ec040ae7e3e3bb8d4ba3600d84cf85c6f50c99f0b108b2315e98dd4913f1f9",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "e7111a5742c14d71d81dfa177685987400e11a66fb9a372d93231a51d9bef6b2",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "13e8f246a26644935d29acb68e7d4964e4fa72ba48a75b9638743fb8c774641e",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "ce06ff3432325e0d44196bea3107b47213bad6fdee4ade169214b3d30e2d6b73",
@@ -11441,6 +11486,15 @@
"T2T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "529ea5306f84f73a629903a5bd147c116d742463b7948b8c2c9b1767046a721b",
"T2T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "49240470d19934a7e3c3f6a74c1b24c989dd8e1351938b02f670d47e98accc85",
"T2T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "a4695d0bf35a63d0ebfea78cb81a7f15c4352538cd0085e71ffbc1b58bcfdfc8",
+"T2T1_pt_solana-test_sign_message.py::test_invalid_envelope[extra]": "2543461170d60e2513382a6cdf55ab255b6ac241603cf76b3d8b205666728e60",
+"T2T1_pt_solana-test_sign_message.py::test_invalid_envelope[invalid]": "2543461170d60e2513382a6cdf55ab255b6ac241603cf76b3d8b205666728e60",
+"T2T1_pt_solana-test_sign_message.py::test_invalid_envelope[malformed]": "2543461170d60e2513382a6cdf55ab255b6ac241603cf76b3d8b205666728e60",
+"T2T1_pt_solana-test_sign_message.py::test_invalid_envelope[missing]": "2543461170d60e2513382a6cdf55ab255b6ac241603cf76b3d8b205666728e60",
+"T2T1_pt_solana-test_sign_message.py::test_missing_signer": "020b255e04b59e53d2aa87ae960038f4538d350de28df15a1ac41b376e9d04f2",
+"T2T1_pt_solana-test_sign_message.py::test_sign_verify[ascii]": "96f66ad7982b97f24d2e1542c0f24be2822ee401a2c728c20c5dcbefa6f5e8dd",
+"T2T1_pt_solana-test_sign_message.py::test_sign_verify[long]": "6dce297efaa7a7149ec4b08a00b6817ff1cda6317462b0e9c6bfe49bbc170f21",
+"T2T1_pt_solana-test_sign_message.py::test_sign_verify[multi]": "63564041a1b0cdab94fb7ebd515190b736226ba12287f52456167be0b080c077",
+"T2T1_pt_solana-test_sign_message.py::test_sign_verify[utf-8]": "99a63cc6196351d9c2533aed8fa15e8cef2d66b7e69a375ecc05e8a506c602ef",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "a240fb97bea561c2dee8a0c7b789e25ed470eac167886854608db07bfa9adf6e",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "2d5978ecab9da0897791c1e0906881397f06a40209cea49cdc527a34fdb3cbb9",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "0bfc5ab21b761a042aa61c5610c535fbafd59d298c05008ed2022640530ea596",
@@ -13448,6 +13502,15 @@
"T3B1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "6629717ba225dc056b3cc45d7a075779f38af52eba86e693f34116e2a1f5c7aa",
"T3B1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "479e8921ba426a639fe0c0c12c6f5a117299b1ad7b3e44d3e8a91d8977534ab0",
"T3B1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "6b157b9b1380068c033fd915510483f90666ed6addfe58b002d049e9a2893a22",
+"T3B1_cs_solana-test_sign_message.py::test_invalid_envelope[extra]": "5c2cc103e0aed88253d3e27593208eb836f17e67c1a4188a76e70b811c498ffd",
+"T3B1_cs_solana-test_sign_message.py::test_invalid_envelope[invalid]": "5c2cc103e0aed88253d3e27593208eb836f17e67c1a4188a76e70b811c498ffd",
+"T3B1_cs_solana-test_sign_message.py::test_invalid_envelope[malformed]": "5c2cc103e0aed88253d3e27593208eb836f17e67c1a4188a76e70b811c498ffd",
+"T3B1_cs_solana-test_sign_message.py::test_invalid_envelope[missing]": "5c2cc103e0aed88253d3e27593208eb836f17e67c1a4188a76e70b811c498ffd",
+"T3B1_cs_solana-test_sign_message.py::test_missing_signer": "aec89f6952811bcfa54db3842b2e2e24d7ae162a65bf19424b4e6b6620fe70bb",
+"T3B1_cs_solana-test_sign_message.py::test_sign_verify[ascii]": "49864253bf034ae386e389263b727710f95294c142342e8cacb161788ae2c74d",
+"T3B1_cs_solana-test_sign_message.py::test_sign_verify[long]": "2a1568d0714b77d626e7e12a0920a436224da20535d12e3f4c06aa6a6ec26e43",
+"T3B1_cs_solana-test_sign_message.py::test_sign_verify[multi]": "7657e8a9b5d558e8752b221bd531bc169dfc0dc93368b5545f15cd0165b26f38",
+"T3B1_cs_solana-test_sign_message.py::test_sign_verify[utf-8]": "4a293c5b02cf83478f9c63124f71d02cde7288cc4df93e6ff1ed50d819db8146",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "f3f9afbe2aa44ce7d11804928a520fa87687567471205cda76e93e1d28432a0d",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "3e7c090b404b3b4c6ec6916a2ec23745bc44f45acc46d5d2df36d829d309e4fb",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "f688921d3b0f6a4d8c109c0c2fd02638a575be1cdbeb4a0c10c50479d8f843c5",
@@ -15156,6 +15219,15 @@
"T3B1_de_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "31a5aa53651f5124027ed1d530355dd40c429f0d256776527008237d3ce69df2",
"T3B1_de_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "258f41ee7bb6b00289f42a68dde441bae98f65e52e71a0606cf01547a9523dab",
"T3B1_de_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "d855cb1dc8ac08ea021f9b144efd401fb15c685b2d5ea3503cbefe33ecc68155",
+"T3B1_de_solana-test_sign_message.py::test_invalid_envelope[extra]": "45007d5ea40b2c87bff811b796d3107be406d2f32eb91c2da41193e05ee65bd2",
+"T3B1_de_solana-test_sign_message.py::test_invalid_envelope[invalid]": "45007d5ea40b2c87bff811b796d3107be406d2f32eb91c2da41193e05ee65bd2",
+"T3B1_de_solana-test_sign_message.py::test_invalid_envelope[malformed]": "45007d5ea40b2c87bff811b796d3107be406d2f32eb91c2da41193e05ee65bd2",
+"T3B1_de_solana-test_sign_message.py::test_invalid_envelope[missing]": "45007d5ea40b2c87bff811b796d3107be406d2f32eb91c2da41193e05ee65bd2",
+"T3B1_de_solana-test_sign_message.py::test_missing_signer": "14dfefb39e3707b5294815085c5d94626e4e632f7fd9ca60df4b28e57d015dde",
+"T3B1_de_solana-test_sign_message.py::test_sign_verify[ascii]": "87fb98a5f1e63bdcf16fecce41ff1b8f7a2755bace0949e055d2ff44d61e050f",
+"T3B1_de_solana-test_sign_message.py::test_sign_verify[long]": "a55da296f2d2a87b781f7e7b1aeffbd5b2c50c4fbc91061d61466cecb7653c0f",
+"T3B1_de_solana-test_sign_message.py::test_sign_verify[multi]": "5acd6e4387b9807863f2830d4a2ab9e9913fdd028260d759a23f2948b81e90eb",
+"T3B1_de_solana-test_sign_message.py::test_sign_verify[utf-8]": "035e0ed75f6be3b344cca8434dca129714a41697776a8a1b70633888f8afbe2b",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "8d4aa8d24203f174ea4f85390a2145671caca7a9e8744c919b70a14ff3f0f793",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "bf57daf46af6e9cf128865a32650ec1fa1de785068ee04dee258279588d8890c",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "ed102dc8ef91d55ad8c3244d13e29941c16ed79aecd1217c49bf50e47001a798",
@@ -16864,6 +16936,15 @@
"T3B1_en_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "7227c2e86fbd9c5e7b804a84ef5e538242dbb6108dfc7b1fa54c3a6bde89a8d6",
"T3B1_en_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "a4a463c8397938ddbe0446bc1ecbbab877e2adf16eeecee6ed287f1aec72815a",
"T3B1_en_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "73fb90ac4115808f72a5968d5a4fac008b119c96ce1e4c28f2e6c408fd05f702",
+"T3B1_en_solana-test_sign_message.py::test_invalid_envelope[extra]": "1d1372507083cf29fe446bbe75f89d2346e6f24f4bcafaf4b6923ec2369beae5",
+"T3B1_en_solana-test_sign_message.py::test_invalid_envelope[invalid]": "1d1372507083cf29fe446bbe75f89d2346e6f24f4bcafaf4b6923ec2369beae5",
+"T3B1_en_solana-test_sign_message.py::test_invalid_envelope[malformed]": "1d1372507083cf29fe446bbe75f89d2346e6f24f4bcafaf4b6923ec2369beae5",
+"T3B1_en_solana-test_sign_message.py::test_invalid_envelope[missing]": "1d1372507083cf29fe446bbe75f89d2346e6f24f4bcafaf4b6923ec2369beae5",
+"T3B1_en_solana-test_sign_message.py::test_missing_signer": "7945fdf0623a34efada654fe62a57fa06c6ab0cf4383bc14c6b7acd594b10596",
+"T3B1_en_solana-test_sign_message.py::test_sign_verify[ascii]": "f6297e791630bf84fdb679e5e55138ada9a26ffcf7a04744186e4f97e17c6bb6",
+"T3B1_en_solana-test_sign_message.py::test_sign_verify[long]": "6b8f99f4cdb98f44ab29dfcbb883d2d50e1848a0118056ade9ad88feb18a3ba5",
+"T3B1_en_solana-test_sign_message.py::test_sign_verify[multi]": "0a3ddad594328952aa36622a260d7141ad7e30c546eca6663cdf025fe278f819",
+"T3B1_en_solana-test_sign_message.py::test_sign_verify[utf-8]": "e645fce51e75ee290ce17bb38ffcad10b78e189e837bec68f951e6e85f188d31",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "972025803dd4e1e110c5d245afec4f8f666739626c6c0cd8e7d4ae14e4200377",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "d1001a9c0fc1144c56412b399dca2f550158d1184e7b1c0ab01045bdfb607248",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "ad4f6fa38dfac8d082ab9e3f181d7a68e1231fbd03644f7aafd14701e882a982",
@@ -18572,6 +18653,15 @@
"T3B1_es_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "de5dab9ef0ae19f446164d314205926dc555b9a295afdd66f29f3a4d8a2a33c8",
"T3B1_es_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "ed1a938b25667089d175eee4f5fb45189f8fb344de2fb0e1eda0ac47897571f6",
"T3B1_es_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "e9afb7e582034f2242fa3801dd072912f526f29fe10037d4844789d88e09d461",
+"T3B1_es_solana-test_sign_message.py::test_invalid_envelope[extra]": "189af34fda5c9f6f23eebc3bc7f3f192ef3a24e79e7a30b4e311812c80e5352b",
+"T3B1_es_solana-test_sign_message.py::test_invalid_envelope[invalid]": "189af34fda5c9f6f23eebc3bc7f3f192ef3a24e79e7a30b4e311812c80e5352b",
+"T3B1_es_solana-test_sign_message.py::test_invalid_envelope[malformed]": "189af34fda5c9f6f23eebc3bc7f3f192ef3a24e79e7a30b4e311812c80e5352b",
+"T3B1_es_solana-test_sign_message.py::test_invalid_envelope[missing]": "189af34fda5c9f6f23eebc3bc7f3f192ef3a24e79e7a30b4e311812c80e5352b",
+"T3B1_es_solana-test_sign_message.py::test_missing_signer": "1c43a01a3864c17b781e3a68121bb7c4378f858ab5c4db5b3d012f138eba5fb8",
+"T3B1_es_solana-test_sign_message.py::test_sign_verify[ascii]": "3f72196a8d043bf1f758e8662b99605dedcfdfb9b07b51b84e6ae553325840c6",
+"T3B1_es_solana-test_sign_message.py::test_sign_verify[long]": "852804c0500a3ff01cfacd5fe96e19fe41dac7eb2d44bf7c602bfbc4fe459717",
+"T3B1_es_solana-test_sign_message.py::test_sign_verify[multi]": "fdadace8de02a2c405ff898725ae64e9885e476b9b9189ea7a8d4ce696ca95df",
+"T3B1_es_solana-test_sign_message.py::test_sign_verify[utf-8]": "fc856a46db982ad2e5daa2d497171e0be7f87f6a6de6da3506a3c1a17fb2db93",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "f799a8d8b2e1df1d6b81cf0664f60a293756a538464c56e3fa4ed7b56fc61a29",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "60edb8f0307c6e0c4e76ee1f78c5026c586e1ebd79cbf934374bfae49f172647",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "574befc505984d9ab5a8b247bb1df9bbaf8b3852edd3b09f3667b7f477c55877",
@@ -20280,6 +20370,15 @@
"T3B1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "1f55f6e2870bf5c60d8bd456ed6ff6a670abb017c105a6a0f4463f94031c1c40",
"T3B1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "8c6c525582dae58161db551cad56a7d79d997da8f977078c5e30a06b9e7871a0",
"T3B1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "e94756efc368c275542ff63750392e398d207d2dfb8ea969489ec540b26a75ae",
+"T3B1_fr_solana-test_sign_message.py::test_invalid_envelope[extra]": "e7fb92407703ede56882fc56153175ef4470c314f80e92685c25a7ffe8751620",
+"T3B1_fr_solana-test_sign_message.py::test_invalid_envelope[invalid]": "e7fb92407703ede56882fc56153175ef4470c314f80e92685c25a7ffe8751620",
+"T3B1_fr_solana-test_sign_message.py::test_invalid_envelope[malformed]": "e7fb92407703ede56882fc56153175ef4470c314f80e92685c25a7ffe8751620",
+"T3B1_fr_solana-test_sign_message.py::test_invalid_envelope[missing]": "e7fb92407703ede56882fc56153175ef4470c314f80e92685c25a7ffe8751620",
+"T3B1_fr_solana-test_sign_message.py::test_missing_signer": "979886e5de665a0a5bd752457a29ad2bd0aad9d94702754cb351dc7d31979b42",
+"T3B1_fr_solana-test_sign_message.py::test_sign_verify[ascii]": "a654f4183c583bfbe53df058a7a181147fbdc2f872013f31c16fc692ff71f4f3",
+"T3B1_fr_solana-test_sign_message.py::test_sign_verify[long]": "b07e502821413961aecd1c9491b45d94d2297280ccd7b51f3062977ed8ff38ce",
+"T3B1_fr_solana-test_sign_message.py::test_sign_verify[multi]": "abdd3949c9ca2ff6dd8e65e00c2438f47a48cb2983d5676eb279a892e52cef2c",
+"T3B1_fr_solana-test_sign_message.py::test_sign_verify[utf-8]": "9c69b80e240794dd9768cd2050fc1acece44cd6792c30639494c806ec4f1a5fb",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "e7edc12cc809630d6397bc65a7e9861a07de0456edf5f35a145ddb03d1035346",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "b01b6bbd599824b6b64c9b1dbc40f23fefbe02a69b2d673a95fd9d8368a5ccb9",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "36eb0793d6af974b7a38155c15eeee0ee19a2e16a384592bf576b7c946327384",
@@ -21988,6 +22087,15 @@
"T3B1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "32c59ef9c968bfa6e1c0039ca6bc5b6fa652bf0d43408c8863491198f9cfffd8",
"T3B1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "0c541c068d4b7d64f3f05f035d4d1846fcf1622035cb02bf277763e61376522a",
"T3B1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "8d3a7cf13a8606dd6fc17dc30ccdd80887995d62f49f1b3f804f843792ab1bdb",
+"T3B1_pt_solana-test_sign_message.py::test_invalid_envelope[extra]": "841fe022ae08583005a0bbaa568d8630438fa3e1d4d96a68859edaeb39870ac5",
+"T3B1_pt_solana-test_sign_message.py::test_invalid_envelope[invalid]": "841fe022ae08583005a0bbaa568d8630438fa3e1d4d96a68859edaeb39870ac5",
+"T3B1_pt_solana-test_sign_message.py::test_invalid_envelope[malformed]": "841fe022ae08583005a0bbaa568d8630438fa3e1d4d96a68859edaeb39870ac5",
+"T3B1_pt_solana-test_sign_message.py::test_invalid_envelope[missing]": "841fe022ae08583005a0bbaa568d8630438fa3e1d4d96a68859edaeb39870ac5",
+"T3B1_pt_solana-test_sign_message.py::test_missing_signer": "bbd866375fe164eb4caaddceb8a49d710b09ad01ca2cf67a0006d3a0d3ecb121",
+"T3B1_pt_solana-test_sign_message.py::test_sign_verify[ascii]": "80277d96c132d4dae329ab259932a08dda306d4f3bd8347b48f450ba00945378",
+"T3B1_pt_solana-test_sign_message.py::test_sign_verify[long]": "8ce1cc4b64cd43ae516ab54eb401edd888d302ef7d3b8fc3ca6862547d5d9d1b",
+"T3B1_pt_solana-test_sign_message.py::test_sign_verify[multi]": "85b1ae5e769396f13397b07a0a18fba0e73243226b50b1a039a26a99360fa465",
+"T3B1_pt_solana-test_sign_message.py::test_sign_verify[utf-8]": "1f64c32e777fa3e75ea822688933a5137a8135d16dd1fe76e9fc433b320e568a",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "8de080f468e65303c3768d8ec49c075b00c5da6642fc2fc620089993e707c5c9",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "5cfebe690372460acc42066970e2455d99022a8aa68e1416fd2187b021404ece",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "97eedd7e16424f4f02fe06a42e8901acac2b4caf9ffd33873aac6f4b57879ce1",
@@ -24093,6 +24201,15 @@
"T3T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "39a8d65e3415dffd36d4e734fa4db1027d56ffd64940b90b630c67e594ed88be",
"T3T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "4f73761c8a1e6a9ff96ab53d50a341d03d23ccea5c24dfda377907ffdfea2654",
"T3T1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "88c5324858437fec3d08c3a3940afd59a245c88e78fbb3c8b6f93ba46d7ad059",
+"T3T1_cs_solana-test_sign_message.py::test_invalid_envelope[extra]": "53dc99bd06966200b3a7adcb21fae550088e638d984b734ea1ed448e70b90981",
+"T3T1_cs_solana-test_sign_message.py::test_invalid_envelope[invalid]": "53dc99bd06966200b3a7adcb21fae550088e638d984b734ea1ed448e70b90981",
+"T3T1_cs_solana-test_sign_message.py::test_invalid_envelope[malformed]": "53dc99bd06966200b3a7adcb21fae550088e638d984b734ea1ed448e70b90981",
+"T3T1_cs_solana-test_sign_message.py::test_invalid_envelope[missing]": "53dc99bd06966200b3a7adcb21fae550088e638d984b734ea1ed448e70b90981",
+"T3T1_cs_solana-test_sign_message.py::test_missing_signer": "9c20243bc5dacf2442af5a8778b66a0ab7cb978e11c02fec371f109fbc9d55f6",
+"T3T1_cs_solana-test_sign_message.py::test_sign_verify[ascii]": "e8a53f2e1a5043081c3496aa42429570e0895a5c69f081c76fe4fc89c792882b",
+"T3T1_cs_solana-test_sign_message.py::test_sign_verify[long]": "a8ac5a9e02d104556a24698025369f2126bd2da7567a528f9698c936aeef89d3",
+"T3T1_cs_solana-test_sign_message.py::test_sign_verify[multi]": "30f4a91c454e221699a518e1d8c5c116a6a2d776c96b4b4bfb45e3fdfb443cc7",
+"T3T1_cs_solana-test_sign_message.py::test_sign_verify[utf-8]": "476f3f1e2521580515e9a47def117ee13631c2e1bf99b0e398f70a97192d71e4",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "b9228b8a3b7c7f2a5aedb19b0ca86d403c5a24cd12457086e0a99f47df0dd67b",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "7fdd398b289c22f1242fd20232509cd19e80e57d68d0bd461d7c54e2974b8691",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "c6a6a423c702f5da5e180dd48ead83d6b0f45b9f64cb04e784c4db228ea6179f",
@@ -25834,6 +25951,15 @@
"T3T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "f8a63f8ef2284c0cb78b06787dc2539c8a8a4d729583f919923aa24e7df708e6",
"T3T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "5abe9f0c369e66bfb900bb2c3bfcf2fde3231ce04df95578e03f4dfc0fc17bef",
"T3T1_de_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "c0eec0f00c5178fe8725a5ac3b85561448b1ba2d2ec98741b67c77a33235e7db",
+"T3T1_de_solana-test_sign_message.py::test_invalid_envelope[extra]": "02ce961a514cd00547ea8b1742ba35745ebf747fa369d763dc129f760431f832",
+"T3T1_de_solana-test_sign_message.py::test_invalid_envelope[invalid]": "02ce961a514cd00547ea8b1742ba35745ebf747fa369d763dc129f760431f832",
+"T3T1_de_solana-test_sign_message.py::test_invalid_envelope[malformed]": "02ce961a514cd00547ea8b1742ba35745ebf747fa369d763dc129f760431f832",
+"T3T1_de_solana-test_sign_message.py::test_invalid_envelope[missing]": "02ce961a514cd00547ea8b1742ba35745ebf747fa369d763dc129f760431f832",
+"T3T1_de_solana-test_sign_message.py::test_missing_signer": "68c146f13417be0845fee20b1d8de4a05e0844608c2efb3cfae9f573be39f0c4",
+"T3T1_de_solana-test_sign_message.py::test_sign_verify[ascii]": "bb8cbea54251f8a022dabdba52844e29af3386f2ba4d3ce1aed1fe38a4d3c5bd",
+"T3T1_de_solana-test_sign_message.py::test_sign_verify[long]": "1949f486844062929fbe6bf81a0643ef23903134743e970b5ea78e34282f9ebf",
+"T3T1_de_solana-test_sign_message.py::test_sign_verify[multi]": "b2b0208c0ded22e244a649872de13786365a68199eca24121fc2dad4ffe404eb",
+"T3T1_de_solana-test_sign_message.py::test_sign_verify[utf-8]": "df25218b1b38f93ac4a4ea4cfdf4ca7ce1593cb973f575b50da9c30d806614de",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "04776bb3aa605428f9954db8d28582a2fff4aa240ce05273f3cbaf61719c4f53",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "bdc07cc2cc309434adec0e3d49b6302f54569c55478247b7aa51cc5c0df65970",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "fff9363f789f90c13011102ad3194427812d5867267205dc4f02d8cc6b6a9ea9",
@@ -27575,6 +27701,15 @@
"T3T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "04dbbf5b101731795ad6a4988906f03da3b5b13abd50b6c05903895d1534487e",
"T3T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "bfaebe964a1b84c46f48c4028b4704640253607950c625f52a1b34dc97041a37",
"T3T1_en_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "b1fd569505e3fca630777dfcce4baca7160dd670a1598dfb257c1d6c58f41a3f",
+"T3T1_en_solana-test_sign_message.py::test_invalid_envelope[extra]": "56e50fcd695740c44b77b33570c5e43517779ef97bc2048de045d910b1099d1a",
+"T3T1_en_solana-test_sign_message.py::test_invalid_envelope[invalid]": "56e50fcd695740c44b77b33570c5e43517779ef97bc2048de045d910b1099d1a",
+"T3T1_en_solana-test_sign_message.py::test_invalid_envelope[malformed]": "56e50fcd695740c44b77b33570c5e43517779ef97bc2048de045d910b1099d1a",
+"T3T1_en_solana-test_sign_message.py::test_invalid_envelope[missing]": "56e50fcd695740c44b77b33570c5e43517779ef97bc2048de045d910b1099d1a",
+"T3T1_en_solana-test_sign_message.py::test_missing_signer": "0064e8a52b9bff0c2a31432fa781b800afb21e8910d60f303671bdfc8d8425fc",
+"T3T1_en_solana-test_sign_message.py::test_sign_verify[ascii]": "1f0ea26c317e8ec1c9ade4173e48187db4c86975614b233e64b9c1684865489d",
+"T3T1_en_solana-test_sign_message.py::test_sign_verify[long]": "d3665692a4009b28a008cf30d859374c9eba5f634ab80f198c77f4b725685461",
+"T3T1_en_solana-test_sign_message.py::test_sign_verify[multi]": "85a9c0140059106446c1a92b874d776cd8931d582b603172d74f3849704791de",
+"T3T1_en_solana-test_sign_message.py::test_sign_verify[utf-8]": "2c9de5cf59379ed710b29f8178139a09eb16b43e39623c3f19ac6c58b76bfaca",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "f63b5e09233414bc5b6bf399bf67b5825d945640b2224788ea63c750db1d6c81",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "43327fdf54b1a77e364f15ec749f99475b46df0a879b8566f715911a12f402b3",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "69376401ab85f10b89ed7685f970cfdbc0d273374203a0721ff80f32c1abf6c7",
@@ -29316,6 +29451,15 @@
"T3T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "724e587481266f58c8db9a4906a65167f5162005566efa21ad33227d96c22c50",
"T3T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "dc0289c96e53066b0ec768234b75e19e2fe6c68bc70f8f9172814df117dc0909",
"T3T1_es_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "bd495005f8a94cae823ec5059285f8845543f32a354ff4f620fee706265a4e7f",
+"T3T1_es_solana-test_sign_message.py::test_invalid_envelope[extra]": "b08e06c98308d5a33fe3771fa882968acd9db9bc2105870b2676253d023bd3ff",
+"T3T1_es_solana-test_sign_message.py::test_invalid_envelope[invalid]": "b08e06c98308d5a33fe3771fa882968acd9db9bc2105870b2676253d023bd3ff",
+"T3T1_es_solana-test_sign_message.py::test_invalid_envelope[malformed]": "b08e06c98308d5a33fe3771fa882968acd9db9bc2105870b2676253d023bd3ff",
+"T3T1_es_solana-test_sign_message.py::test_invalid_envelope[missing]": "b08e06c98308d5a33fe3771fa882968acd9db9bc2105870b2676253d023bd3ff",
+"T3T1_es_solana-test_sign_message.py::test_missing_signer": "41b9c9e85d64891dcfd03d675df77c533f035a2d191b161144d00afab69a589d",
+"T3T1_es_solana-test_sign_message.py::test_sign_verify[ascii]": "5182b87f54c906a71f21488485c4d3a2c0cd62db64b4ab42fb43e83da32b1365",
+"T3T1_es_solana-test_sign_message.py::test_sign_verify[long]": "38fe6e9bc77dae9b395396b51fd3190e8f87cff103d58d762d1a1d673cf43b6f",
+"T3T1_es_solana-test_sign_message.py::test_sign_verify[multi]": "fcfd0d731a0dec15f682448ab727609776609526ee46ab8da4189e1bbe3988d8",
+"T3T1_es_solana-test_sign_message.py::test_sign_verify[utf-8]": "ce377f31bd3ba476a5590630b4e56df0705ea81e4eb86dfc4bbc72a91474336a",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "7469329929dc737ac3cc5deb3b130a2c0a0644dc9c9947cd70a3fcddaa8f10e8",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "513f527c54bfbdff93f88a3515071d1e5a1a120ce91110474079bf31e689e41a",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "ede5a6b0139db6fb0074a0c19604a3fcf592cc2666b09772be6b1573da55e466",
@@ -31057,6 +31201,15 @@
"T3T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "a069ed19138d4af0b8781152e0a89f8b5947f19f035e4f265ee0caa7fcb7f0ec",
"T3T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "1ce7f09897b18d953c5992f6f92d39831e535fdf7923d9b8238f6f4f77a7c0a0",
"T3T1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "992f48601f2a2895255c5fba4ee7c3ef67738cb5125f175f047b35874327e488",
+"T3T1_fr_solana-test_sign_message.py::test_invalid_envelope[extra]": "a3c125fc86894290160ae0dc835ee5f2cb01a00f685e0a053edb68a1a7bc075e",
+"T3T1_fr_solana-test_sign_message.py::test_invalid_envelope[invalid]": "a3c125fc86894290160ae0dc835ee5f2cb01a00f685e0a053edb68a1a7bc075e",
+"T3T1_fr_solana-test_sign_message.py::test_invalid_envelope[malformed]": "a3c125fc86894290160ae0dc835ee5f2cb01a00f685e0a053edb68a1a7bc075e",
+"T3T1_fr_solana-test_sign_message.py::test_invalid_envelope[missing]": "a3c125fc86894290160ae0dc835ee5f2cb01a00f685e0a053edb68a1a7bc075e",
+"T3T1_fr_solana-test_sign_message.py::test_missing_signer": "116c64aa168d12181b7a5317677ddf135d739fdac22d38ff08571dc3301c2f47",
+"T3T1_fr_solana-test_sign_message.py::test_sign_verify[ascii]": "5f727b17ad5a1514d84834a84cf7631a7b604194235fdf458f822a8b1b0c3e88",
+"T3T1_fr_solana-test_sign_message.py::test_sign_verify[long]": "bab801d5702a37eaba0a519821a3c065fee52fabfa60f85faa93c2c892cd3839",
+"T3T1_fr_solana-test_sign_message.py::test_sign_verify[multi]": "794065b5af726a3b2c50a9eda0144d9dd8d67711131f538c581d23e0767ccb38",
+"T3T1_fr_solana-test_sign_message.py::test_sign_verify[utf-8]": "675696a902156e10aa9af823ceea86874fbdc2ca1427c4c0ab11fc559f5ad349",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "42ad13488b211a8c4d68b432e02ad4ae2e8301a272b2cc4439f9e00fecdcb264",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "9ee77f1d2e23260e7a2c682c6d1aa4a3c887de3626d6da6b8ce9918cd57de75d",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "29c46af2ba4396aff5f5fbf323fafe94a5aa6a204a6fbfae0b50059842990890",
@@ -32798,6 +32951,15 @@
"T3T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "2c1e40e0ef216e107957a5672fcbbd96116ee14eda58ba90bb9bb96261330680",
"T3T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "390d9ccb251df4b1d83bd14a79197b3c107d7c35a6e05b6e434e51929484e7cf",
"T3T1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "48d076e547f1c6c3651244b09f0231b438db65442513c13cb1f66cc400dd24c7",
+"T3T1_pt_solana-test_sign_message.py::test_invalid_envelope[extra]": "589b62964c3d15cc3641251e01ba4fb1e0f1cef771b8ab9c01f6b05710ba12af",
+"T3T1_pt_solana-test_sign_message.py::test_invalid_envelope[invalid]": "589b62964c3d15cc3641251e01ba4fb1e0f1cef771b8ab9c01f6b05710ba12af",
+"T3T1_pt_solana-test_sign_message.py::test_invalid_envelope[malformed]": "589b62964c3d15cc3641251e01ba4fb1e0f1cef771b8ab9c01f6b05710ba12af",
+"T3T1_pt_solana-test_sign_message.py::test_invalid_envelope[missing]": "589b62964c3d15cc3641251e01ba4fb1e0f1cef771b8ab9c01f6b05710ba12af",
+"T3T1_pt_solana-test_sign_message.py::test_missing_signer": "14256cd1b801d1b67a37de1198d61a80d342f39e5c5d6fa991ec7fb526d683be",
+"T3T1_pt_solana-test_sign_message.py::test_sign_verify[ascii]": "875ae406754b2c90efb3b437b25b78e4b814943739da48909b3e3b572b6db2e4",
+"T3T1_pt_solana-test_sign_message.py::test_sign_verify[long]": "b0e2056feefcc8024e0ea39f8fce70dc085a3c1786f9ea41fccf4237023f773e",
+"T3T1_pt_solana-test_sign_message.py::test_sign_verify[multi]": "df6ed6a38812925a20ff812bbc88e5238e41e3da3a2b8175145a551fc6a3b3e9",
+"T3T1_pt_solana-test_sign_message.py::test_sign_verify[utf-8]": "5dbe9f3ae413a906d10795019217fc8444e2e8d9486ef3c72b8667670c3a272d",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "4bdf0b84902bcbbf8be1a1eebabba45b57ae83e4bc003471380ad075f2436f57",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "4f4c660ddc0fe0d3db11460be14caebe066692aed7b53430cda351df0cba7e7b",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "25782460030cc6c3bf92f097da93d6f4f12f7cfee3c413118f86b9cf70d8a6a1",
@@ -35188,6 +35350,15 @@
"T3W1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "8a1ca86c2c5ccd8e6d417ecba34dc2063489ecd62e77e8528f7250af75b04a76",
"T3W1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "0514d2c19acd136b8fec9104925028e0516e5ab6a01d17f174910c53b7aa7bac",
"T3W1_cs_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "62e090b5ddc3e22bd6093267482e923eff46dca53adaedf5c967e01ef7ca3ab2",
+"T3W1_cs_solana-test_sign_message.py::test_invalid_envelope[extra]": "0336c269e9a3e3138c7be5509a34e3021580fa0b0fffe767961f1015df79ff2c",
+"T3W1_cs_solana-test_sign_message.py::test_invalid_envelope[invalid]": "0336c269e9a3e3138c7be5509a34e3021580fa0b0fffe767961f1015df79ff2c",
+"T3W1_cs_solana-test_sign_message.py::test_invalid_envelope[malformed]": "0336c269e9a3e3138c7be5509a34e3021580fa0b0fffe767961f1015df79ff2c",
+"T3W1_cs_solana-test_sign_message.py::test_invalid_envelope[missing]": "0336c269e9a3e3138c7be5509a34e3021580fa0b0fffe767961f1015df79ff2c",
+"T3W1_cs_solana-test_sign_message.py::test_missing_signer": "25675032fe6b1628161f0cd2398edae2feace6873ae31c44ce545c91f7ced796",
+"T3W1_cs_solana-test_sign_message.py::test_sign_verify[ascii]": "bed55e1b35da08dc1a8ad82f61278b92a5ebebf63fbe33549330a029f7996f7d",
+"T3W1_cs_solana-test_sign_message.py::test_sign_verify[long]": "638e99383ddf3fedf0aa1b509bdbdf68ac637baaf9afe6840a3e252cd945b80d",
+"T3W1_cs_solana-test_sign_message.py::test_sign_verify[multi]": "fabbd08867fd7992c17f87d5d962372fefb4c5a8d14f99a3a82a595264d69b3a",
+"T3W1_cs_solana-test_sign_message.py::test_sign_verify[utf-8]": "839d11efe368d36663479650cbf6a24f114867bc45f454c279af9ba78f3d0473",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "becc10f9687d5b82a0cd9a87f34f71039ab464f0b80f2c21b2fa5ac427cb5d69",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "dc70dc7bcd6d6aa0cdf5e2bd9698f8fe32003e084c1e7292f7f9e91d7e4ae659",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "f70a4da29cce27791b2c82243e5478c7f38ced2d86950f3405bac1eed03d31f0",
@@ -36946,6 +37117,15 @@
"T3W1_de_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "6e3a46faf7407beccdb90d87ee11348cd86fa51a55908c059285e7a4ca1e47e1",
"T3W1_de_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "8f6b16c802341390703233fc423de3eaff66b5007840687fdcc98619de51d8e2",
"T3W1_de_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "8c5fa54d68029db1b76a17b4dc857b89b00e588adce9ccc39a70e1d48be0bc61",
+"T3W1_de_solana-test_sign_message.py::test_invalid_envelope[extra]": "90336862012ab68fb19e90eb6b347e43abae78bcedf41e5a52f505ade4f88dbc",
+"T3W1_de_solana-test_sign_message.py::test_invalid_envelope[invalid]": "90336862012ab68fb19e90eb6b347e43abae78bcedf41e5a52f505ade4f88dbc",
+"T3W1_de_solana-test_sign_message.py::test_invalid_envelope[malformed]": "90336862012ab68fb19e90eb6b347e43abae78bcedf41e5a52f505ade4f88dbc",
+"T3W1_de_solana-test_sign_message.py::test_invalid_envelope[missing]": "90336862012ab68fb19e90eb6b347e43abae78bcedf41e5a52f505ade4f88dbc",
+"T3W1_de_solana-test_sign_message.py::test_missing_signer": "aaafdc361a1d1494db1b142427ede204b978fbde090811b1ff02e54df49414f9",
+"T3W1_de_solana-test_sign_message.py::test_sign_verify[ascii]": "d0e63a3644a4e1b7e4fa515fade3117321a451b749b629efdbf9bc4a621e8e57",
+"T3W1_de_solana-test_sign_message.py::test_sign_verify[long]": "3cb6b76245097c3120a434ecb0649316e9fe5e8cc4c887a2dd9e9227e3f449b6",
+"T3W1_de_solana-test_sign_message.py::test_sign_verify[multi]": "59fb5b661165fe5f45a71710af3b7b0e64601428c0702c2cc8ad5a9ed11755f2",
+"T3W1_de_solana-test_sign_message.py::test_sign_verify[utf-8]": "70a314508d5b58119ba77d702296f67d91dd1b27de7fc47d04fb9b68cac0d275",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "8cef9b3ec00e1d1730efc7e8dd9972afb6585bcdef3f08d0e65d5af942941fb0",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "a45c193ebbe530958e2d7935949c9b655db623a8b6338c6d49851dd41e541b5e",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "3537e0e39831aad64673a5391c5bb24caefa2f7bd073623f405fee4040f32e77",
@@ -38704,6 +38884,15 @@
"T3W1_en_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "590301a291882936ac52e58cbcd0d9a302337315f541a3ba8c0ea21009d5263e",
"T3W1_en_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "ea7d4699bfb65187e2ae6a4024d2c7ee3da5806ffda87c56d49d1f1bceb5bc08",
"T3W1_en_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "98fab083e797e99c1daff1b9ba829d1f4c2bea16aaae4d6ad04be3c45683050d",
+"T3W1_en_solana-test_sign_message.py::test_invalid_envelope[extra]": "422d260bc9f739fa85f3bef0088ff683879c6b5a3ebe49de8a5605e4eca3c878",
+"T3W1_en_solana-test_sign_message.py::test_invalid_envelope[invalid]": "422d260bc9f739fa85f3bef0088ff683879c6b5a3ebe49de8a5605e4eca3c878",
+"T3W1_en_solana-test_sign_message.py::test_invalid_envelope[malformed]": "422d260bc9f739fa85f3bef0088ff683879c6b5a3ebe49de8a5605e4eca3c878",
+"T3W1_en_solana-test_sign_message.py::test_invalid_envelope[missing]": "422d260bc9f739fa85f3bef0088ff683879c6b5a3ebe49de8a5605e4eca3c878",
+"T3W1_en_solana-test_sign_message.py::test_missing_signer": "778dbcfb96e575c652b06902ef2842f6cc261dd3d457cc66b8b6c9338e82e1fb",
+"T3W1_en_solana-test_sign_message.py::test_sign_verify[ascii]": "7fc35cfb3835a1f652df0d231f8543cd9cbe87f9bc4b4e7bd3a1aaee2567a81a",
+"T3W1_en_solana-test_sign_message.py::test_sign_verify[long]": "731ff0fd2d7627d6bce0c36a85cadeafbe5bb1a808232967b968664c0aa921e6",
+"T3W1_en_solana-test_sign_message.py::test_sign_verify[multi]": "bf78c96d21aaa742bf663e82a0fb2db75a777bbe0bdad429cec169b637be715b",
+"T3W1_en_solana-test_sign_message.py::test_sign_verify[utf-8]": "4c4030d4b792f1a0b4efc008cb42e582438e9a059f82ed1e25487e24978b286b",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "9675f7d40129e50327df2ad13cc11706937b076addf91f5a7b160b4432655cde",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "3208641872234e7f8d6fb1f117e64946fddebc976f2f6c6888b711099e82ac0c",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "d1766d3055970a6ae8b3e9b06e022040a107609a0c5c1813d65378bb58870c56",
@@ -40462,6 +40651,15 @@
"T3W1_es_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "3fbaa923e137a41684a2340e382e72aed3503d7a197d21735a8b1f8fcca739d4",
"T3W1_es_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "9893d81e8f0e22ae0bf3445b09cc832afe35d2523b352f7650412bba5a766489",
"T3W1_es_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "115869ca564043ef9947c78053b1cef8094106f3236d0e06292a1d23598a1b77",
+"T3W1_es_solana-test_sign_message.py::test_invalid_envelope[extra]": "fc560675ed04ceeaa198b5af61c4a97dd6d6bad64391b2a44d3e47bcdbe45fe8",
+"T3W1_es_solana-test_sign_message.py::test_invalid_envelope[invalid]": "fc560675ed04ceeaa198b5af61c4a97dd6d6bad64391b2a44d3e47bcdbe45fe8",
+"T3W1_es_solana-test_sign_message.py::test_invalid_envelope[malformed]": "fc560675ed04ceeaa198b5af61c4a97dd6d6bad64391b2a44d3e47bcdbe45fe8",
+"T3W1_es_solana-test_sign_message.py::test_invalid_envelope[missing]": "fc560675ed04ceeaa198b5af61c4a97dd6d6bad64391b2a44d3e47bcdbe45fe8",
+"T3W1_es_solana-test_sign_message.py::test_missing_signer": "ea59c9d24216e9bad1b1fdd99068e34dbc5beeea54b06c34219d37720f17a470",
+"T3W1_es_solana-test_sign_message.py::test_sign_verify[ascii]": "cfef6be482562281e7334710669a6782ba1347b931eeb99573cf090618a84c24",
+"T3W1_es_solana-test_sign_message.py::test_sign_verify[long]": "2c1e5559a9b10e130aa63313ff326be8288d79c99588091076de6fce7c9b0593",
+"T3W1_es_solana-test_sign_message.py::test_sign_verify[multi]": "ff99db1bcfb176dd90e40769e33d0b20932d2bbf9cbc1f0d1f9c4aa100540b49",
+"T3W1_es_solana-test_sign_message.py::test_sign_verify[utf-8]": "0d3fa56e017a0a0d284a8aa7b4df5be326b3b7e2a1ac0e91a0b87c99d8855c42",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "9ca9337fd3f5f3034e8bf4c16c9b6586a6ef5c58925d0c9c8de55abf8627c71f",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "dd2aee0d8c041d59e2e2313641041eb0a37ef477000893b0f4c6630d522718af",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "a85e0964b2e164907e583695f39521b4691934de6a18a4ffceb6597b2fa46047",
@@ -42220,6 +42418,15 @@
"T3W1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "7fc220df83340db2269c776479516b5264c1260e84c4b67b281ef070caff2637",
"T3W1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "811ba9b9008d63506d199e0513470583b7e15af82edd7b161518c3265945ffa1",
"T3W1_fr_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "5c510bfbb9992be05f7ed76321be805bfbf7c95df0d8297856ebb0a2d036397a",
+"T3W1_fr_solana-test_sign_message.py::test_invalid_envelope[extra]": "16a56fbd2bda60f9d39bc1ec2eb26e18fd1e16abd85050c376ccd050b127f60e",
+"T3W1_fr_solana-test_sign_message.py::test_invalid_envelope[invalid]": "16a56fbd2bda60f9d39bc1ec2eb26e18fd1e16abd85050c376ccd050b127f60e",
+"T3W1_fr_solana-test_sign_message.py::test_invalid_envelope[malformed]": "16a56fbd2bda60f9d39bc1ec2eb26e18fd1e16abd85050c376ccd050b127f60e",
+"T3W1_fr_solana-test_sign_message.py::test_invalid_envelope[missing]": "16a56fbd2bda60f9d39bc1ec2eb26e18fd1e16abd85050c376ccd050b127f60e",
+"T3W1_fr_solana-test_sign_message.py::test_missing_signer": "1cceb37657549d7798a606fb01cffd95cdd3ab59cda2e25228d11f1bb906cd31",
+"T3W1_fr_solana-test_sign_message.py::test_sign_verify[ascii]": "ad9228e0e25cda2de267a06b7b713c5a956a693d4d1130f3225fb72c508a4212",
+"T3W1_fr_solana-test_sign_message.py::test_sign_verify[long]": "288dde76593bbe50001505f02e0347a7f51c8217298f59c0e1cc547155711e65",
+"T3W1_fr_solana-test_sign_message.py::test_sign_verify[multi]": "9cd73c0f79eceb389a912663cb2c83a57c7bb640c1617aedc2811577fc3aab3b",
+"T3W1_fr_solana-test_sign_message.py::test_sign_verify[utf-8]": "0f943412f3a12d483aed750b08337b7687325171f93bbc141d933d2a5e16b693",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "545fcfd229e4e02fc029b052997fbb19d1d69252ee7723ed86e8b8ba744da244",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "c21b588994eab1170a90310eddba5206c06716cb08e6ee450e3e59be69106b4c",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "4da2b15e1dbc813b6a5ba63f2884fe8350577cc1e1f3164750cccb4f73213680",
@@ -43983,6 +44190,15 @@
"T3W1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters0-result0]": "b82dcffe28eaab9a18d396acf7c108d3a95afbdfc67552c136b6dac17d7ee66f",
"T3W1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters1-result1]": "71eda10068c0fbe74b0928b63e9bbe029f3eae5a8779520c9a05a5b2e0a7e2d6",
"T3W1_pt_solana-test_public_key.py::test_solana_get_public_key[parameters2-result2]": "f5e1bc137845a2145dd526b784c7f00b048489fc97402c27e9be462f89956a0b",
+"T3W1_pt_solana-test_sign_message.py::test_invalid_envelope[extra]": "07a96b0ec281cb8fa2e6c8ceb6ee4ce4a5a7ad9b98efceb74e7c6daff267987d",
+"T3W1_pt_solana-test_sign_message.py::test_invalid_envelope[invalid]": "07a96b0ec281cb8fa2e6c8ceb6ee4ce4a5a7ad9b98efceb74e7c6daff267987d",
+"T3W1_pt_solana-test_sign_message.py::test_invalid_envelope[malformed]": "07a96b0ec281cb8fa2e6c8ceb6ee4ce4a5a7ad9b98efceb74e7c6daff267987d",
+"T3W1_pt_solana-test_sign_message.py::test_invalid_envelope[missing]": "07a96b0ec281cb8fa2e6c8ceb6ee4ce4a5a7ad9b98efceb74e7c6daff267987d",
+"T3W1_pt_solana-test_sign_message.py::test_missing_signer": "67695a9de4ea2860aa20568a42ba0dd34e1fdf983ff4cf32347e6dd81e79c6e3",
+"T3W1_pt_solana-test_sign_message.py::test_sign_verify[ascii]": "33812836088c95654fe40ed488b9aa00043347d3e42515276bee2fb9dc55d062",
+"T3W1_pt_solana-test_sign_message.py::test_sign_verify[long]": "3ebfade9e98c2bc89b5ab61031b36089ec1354c65249bfaae8d2c1bc26efcd03",
+"T3W1_pt_solana-test_sign_message.py::test_sign_verify[multi]": "2e71798e80421f02a4c5010a6d2fcfa6f41d7c2f0db7231254995a167d0afc23",
+"T3W1_pt_solana-test_sign_message.py::test_sign_verify[utf-8]": "dffce8dd73a7ba26a24c9e2ef3e03d0222ff12cb2cbc0a8b47939e52ad94095d",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[advance_nonce_account]": "0f09e181f997ac7aa5534ee2d52ac8051186cdf33b827f1502b10843eaea25fe",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate]": "e67db112835504254be4d563ac0d1f23b6b27ae16608af471710751a18b1adf7",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[allocate_with_seed]": "86ffce3a0bf5c65f4c39d33400001727566f5034545e66af16f4c20976213a29",
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.