Skip to content

Commit

Permalink
chore: PR reviews
Browse files Browse the repository at this point in the history
  • Loading branch information
negar-abbasi committed Aug 5, 2024
1 parent 9f9117a commit d6aecf0
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 16 deletions.
21 changes: 15 additions & 6 deletions src/algokit/cli/tasks/mint.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import json
import logging
import math
from pathlib import Path
Expand Down Expand Up @@ -89,9 +90,13 @@ def _validate_asset_name(context: click.Context, param: click.Parameter, value:
if len(value.encode("utf-8")) <= MAX_ASSET_NAME_BYTE_LENGTH:
token_metadata_path = context.params.get("token_metadata_path")
if token_metadata_path is not None:
token_metadata = TokenMetadata.from_json_file(token_metadata_path, None, None)
if token_metadata.name != value:
raise click.BadParameter("Token name in metadata JSON must match CLI argument providing token name!")
with Path(token_metadata_path).open("r") as metadata_file:
data = json.load(metadata_file)
token_name = data.get("name")
if token_name is not None and token_name != value:
raise click.BadParameter(
"Token name in metadata JSON must match CLI argument providing token name!"
)
return value
else:
raise click.BadParameter(
Expand Down Expand Up @@ -156,9 +161,13 @@ def _validate_decimals(context: click.Context, _: click.Parameter, value: int) -
"""
token_metadata_path = context.params.get("token_metadata_path")
if token_metadata_path is not None:
token_metadata = TokenMetadata.from_json_file(token_metadata_path, None, None)
if token_metadata.decimals != value:
raise click.BadParameter("Token metadata JSON and CLI arguments providing decimals amount must be equal!")
with Path(token_metadata_path).open("r") as metadata_file:
data = json.load(metadata_file)
token_decimals = data.get("decimals")
if token_decimals is not None and token_decimals != value:
raise click.BadParameter(
"The value for decimals in the metadata JSON must match the decimals argument."
)
return value


Expand Down
13 changes: 4 additions & 9 deletions src/algokit/core/tasks/mint/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,15 @@ def to_file_path(self) -> Path:
raise ValueError(f"Failed to decode JSON from file {file_path}: {err}") from err

@classmethod
def from_json_file(cls, file_path: Path | None, name: str | None, decimals: int | None) -> "TokenMetadata":
def from_json_file(cls, file_path: Path | None, name: str, decimals: int | None = 0) -> "TokenMetadata":
if not file_path:
if name is not None:
return cls(name=name, decimals=decimals)
else:
raise ValueError("file_path or name must be provided")
return cls(name=name, decimals=decimals)

try:
with file_path.open() as file:
data = json.load(file)
if name is not None:
data["name"] = name
if decimals is not None:
data["decimals"] = decimals
data["name"] = name
data["decimals"] = decimals
return cls(**data)
except FileNotFoundError as err:
raise ValueError(f"No such file or directory: '{file_path}'") from err
Expand Down
2 changes: 1 addition & 1 deletion tests/tasks/test_mint.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,6 @@ def test_mint_token_acfg_token_metadata_mismatch_on_decimals(
value = 0

with pytest.raises(
click.BadParameter, match="Token metadata JSON and CLI arguments providing decimals amount must be equal!"
click.BadParameter, match="The value for decimals in the metadata JSON must match the decimals argument"
):
_validate_decimals(context, param, value)

0 comments on commit d6aecf0

Please sign in to comment.