Skip to content

Commit ec513ee

Browse files
committed
add hardcoded messages to test verify_signature
1 parent bd6a170 commit ec513ee

File tree

4 files changed

+92
-0
lines changed

4 files changed

+92
-0
lines changed

tests/unit/conftest.py

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import json
12
from pathlib import Path
23
from tempfile import NamedTemporaryFile
34

@@ -42,3 +43,9 @@ def substrate_account() -> substrate.DOTAccount:
4243
with NamedTemporaryFile(delete=False) as private_key_file:
4344
private_key_file.close()
4445
yield substrate.get_fallback_account(path=Path(private_key_file.name))
46+
47+
48+
@pytest.fixture
49+
def messages():
50+
with open("./messages.json") as f:
51+
return json.load(f)

tests/unit/messages.json

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
[
2+
{
3+
"item_hash": "24717e60ba577b17c1f47796a4c4e3de887cbf99ce3276157fe7015857d1ba47",
4+
"type": "POST",
5+
"chain": "SOL",
6+
"sender": "fishbsxxtW2iRwBgihKZEWGv4EMZ47G6ypx3P22Nhqx",
7+
"signature": "{\"signature\":\"53uHLe8nGgHG5Pub2ZpGk2WSTNmspu8hoK7vRM1Lz1gBbaN5t6LLLDix585pJR3LpotinEMtYYrcyZsw4QfY2nf1\",\"publicKey\":\"fishbsxxtW2iRwBgihKZEWGv4EMZ47G6ypx3P22Nhqx\"}",
8+
"item_type": "inline",
9+
"item_content": "{\"type\":\"Permission\",\"address\":\"fishbsxxtW2iRwBgihKZEWGv4EMZ47G6ypx3P22Nhqx\",\"content\":{\"datasetID\":\"55998e1e21ac4d9fbd7612194fc175407320eb2e53c4e02719850a6ccfac4f26\",\"authorizer\":\"8zWzM8NVDrgqZMqcKhESsTumo1JTyhLjRDpBMZBCy394\",\"status\":\"GRANTED\",\"requestor\":\"FseBmSzpvpTTNiVyvTxSiVpyhQ5ChgViwCuvYNsfFqCS\",\"tags\":[\"FseBmSzpvpTTNiVyvTxSiVpyhQ5ChgViwCuvYNsfFqCS\",\"2JCJXePWQgBWZz4d7UuHFYhBwaPkuEhMrb4EEqf94qyu\"],\"executionCount\":0,\"maxExecutionCount\":1},\"time\":1693749978.337}",
10+
"content": {
11+
"time": 1693749978.337,
12+
"type": "Permission",
13+
"address": "fishbsxxtW2iRwBgihKZEWGv4EMZ47G6ypx3P22Nhqx",
14+
"content": {
15+
"tags": [
16+
"FseBmSzpvpTTNiVyvTxSiVpyhQ5ChgViwCuvYNsfFqCS",
17+
"2JCJXePWQgBWZz4d7UuHFYhBwaPkuEhMrb4EEqf94qyu"
18+
],
19+
"status": "GRANTED",
20+
"datasetID": "55998e1e21ac4d9fbd7612194fc175407320eb2e53c4e02719850a6ccfac4f26",
21+
"requestor": "FseBmSzpvpTTNiVyvTxSiVpyhQ5ChgViwCuvYNsfFqCS",
22+
"authorizer": "8zWzM8NVDrgqZMqcKhESsTumo1JTyhLjRDpBMZBCy394",
23+
"executionCount": 0,
24+
"maxExecutionCount": 1
25+
}
26+
},
27+
"time": 1693749978.337,
28+
"channel": "FISHNET_DEMO_BERLIN_2",
29+
"size": 472,
30+
"confirmations": [
31+
{
32+
"chain": "ETH",
33+
"hash": "0x723b7bb333fd9a97ef0abe3a424ce5a61a64231a405f2aa5df0f8107506df8c2",
34+
"height": 18056735
35+
}
36+
],
37+
"confirmed": true
38+
},
39+
{
40+
"item_hash": "a17588da875f17a0775d7d80a87a2e1719edef401671d4a65936746c00a6a234",
41+
"type": "AGGREGATE",
42+
"chain": "ETH",
43+
"sender": "0x51A58800b26AA1451aaA803d1746687cB88E0501",
44+
"signature": "0x7a808edfecf2abac1606612ab7f9d52ff31eea7e2bc549824187eae9107a9c1a46ece07ec1cb28411d08394304c651b578658d2de4af30ca1a0526441dc543c11b",
45+
"item_type": "inline",
46+
"item_content": "{\"address\":\"0x51A58800b26AA1451aaA803d1746687cB88E0501\",\"key\":\"0x1ef1f1bb75314f8ef86039c96cf39f11754d9ad0binance\",\"content\":{\"1693923683606\":{\"version\":\"x25519-xsalsa20-poly1305\",\"nonce\":\"hX6Xt8UJbWMjDO9Q8oF1iboZYUu1DXzR\",\"ephemPublicKey\":\"8kvL6HEq3MefSfXBMjozkoQbLmHciRrkdKedIDXJsCA=\",\"ciphertext\":\"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\",\"sha256\":\"df4ba2c781428d5d92341f518895a57c697f1871ec672872e67a51c849ec5042\"}},\"time\":1693923684.147}",
47+
"content": {
48+
"key": "0x1ef1f1bb75314f8ef86039c96cf39f11754d9ad0binance",
49+
"time": 1693923684.147,
50+
"address": "0x51A58800b26AA1451aaA803d1746687cB88E0501",
51+
"content": {
52+
"1693923683606": {
53+
"nonce": "hX6Xt8UJbWMjDO9Q8oF1iboZYUu1DXzR",
54+
"sha256": "df4ba2c781428d5d92341f518895a57c697f1871ec672872e67a51c849ec5042",
55+
"version": "x25519-xsalsa20-poly1305",
56+
"ciphertext": "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",
57+
"ephemPublicKey": "8kvL6HEq3MefSfXBMjozkoQbLmHciRrkdKedIDXJsCA="
58+
}
59+
}
60+
},
61+
"time": 1693923684.147,
62+
"channel": "UNSLASHED",
63+
"size": 4006,
64+
"confirmations": [],
65+
"confirmed": false
66+
}
67+
]

tests/unit/test_chain_ethereum.py

+8
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ async def test_verify_signature(ethereum_account):
8181
)
8282

8383

84+
@pytest.mark.asyncio
85+
async def test_verify_signature_with_processed_message(ethereum_account, messages):
86+
message = messages[1]
87+
verify_signature(
88+
message["signature"], message["sender"], get_verification_buffer(message)
89+
)
90+
91+
8492
@pytest.mark.asyncio
8593
async def test_verify_signature_with_forged_signature(ethereum_account):
8694
account = ethereum_account

tests/unit/test_chain_solana.py

+10
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,16 @@ async def test_verify_signature(solana_account):
102102
)
103103

104104

105+
@pytest.mark.asyncio
106+
async def test_verify_signature_with_processed_message(solana_account, messages):
107+
message = messages[0]
108+
signature = json.loads(message["signature"])["signature"]
109+
verify_signature(
110+
signature, message["sender"], get_verification_buffer(message)
111+
)
112+
113+
114+
105115
@pytest.mark.asyncio
106116
async def test_verify_signature_with_forged_signature(solana_account):
107117
message = asdict(

0 commit comments

Comments
 (0)