Skip to content

Commit 9c1bba3

Browse files
committed
Get abiHash back to router DTO
1 parent 1a73376 commit 9c1bba3

3 files changed

Lines changed: 11 additions & 1 deletion

File tree

app/routers/models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,17 @@ class ProjectPublic(CamelModel):
2929
class AbiPublic(CamelModel):
3030
model_config = ConfigDict(from_attributes=True)
3131

32+
abi_hash: str | None = None
3233
abi_json: list[dict] | dict | None
3334
modified: datetime
3435

36+
@field_validator("abi_hash", mode="before")
37+
@classmethod
38+
def bytes_to_hex(cls, v: bytes | str | None) -> str | None:
39+
if isinstance(v, bytes):
40+
return "0x" + v.hex()
41+
return v
42+
3543

3644
class ContractsPublic(CamelModel):
3745
model_config = ConfigDict(from_attributes=True)

app/tests/datasources/db/test_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ async def test_abi_hash_generated_column(self):
409409
await abi.create()
410410

411411
self.assertIsNotNone(abi.abi_hash)
412-
assert abi.abi_hash is not None # narrow type for len()
412+
assert abi.abi_hash is not None
413413
self.assertEqual(len(abi.abi_hash), 32)
414414
first_hash = abi.abi_hash
415415

app/tests/routers/test_contracts.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ async def test_view_contracts(self):
7979
self.assertEqual(results[0]["address"], address_expected)
8080
self.assertEqual(results[0]["abi"]["abiJson"], mock_abi_json)
8181
self.assertEqual(results[0]["abi"]["modified"], datetime_to_str(abi.modified))
82+
assert abi.abi_hash is not None
83+
self.assertEqual(results[0]["abi"]["abiHash"], "0x" + abi.abi_hash.hex())
8284
self.assertEqual(results[0]["displayName"], None)
8385
self.assertEqual(results[0]["chainId"], 1)
8486
self.assertEqual(results[0]["project"], None)

0 commit comments

Comments
 (0)