Skip to content

[Bug]: DISABLE_PAYG and COUNTER_SYNC are incorrectly decoded as SET_TIME in extended token mode #24

@dmohns

Description

@dmohns

Preflight Checklist

Expected Behavior

When using OpenPAYGO in Extended Token mode I would expect DISABLE_PAYG and COUNTER_SYNC to be decoded as such.

Actual Behavior

However, they are decoded as SET_TIME Tokens.

Steps to reproduce

# OpenPAYGO-python
from openpaygo import OpenPAYGOTokenEncoder, TokenType

encoder = OpenPAYGOTokenEncoder()


new_count, final_token = encoder.generate_token(
    secret_key="bc41ec9530f6dac86b1a29ab82edc5fb",
    count=4,
    value=None,
    token_type=TokenType.DISABLE_PAYG,
    starting_code=516959010,
    restricted_digit_set=False,
    extended_token=True,
)

print(f"{new_count=}")
print(f"{final_token=}")
new_count=5
final_token='223770960008'
# OpenPAYGO-python
from openpaygo import OpenPAYGOTokenDecoder

decoder = OpenPAYGOTokenDecoder()


value, token_type, count, updated_counts = decoder.decode_token(
    secret_key="bc41ec9530f6dac86b1a29ab82edc5fb",
    starting_code=516959010,
    restricted_digit_set=False,
    token="223770960008",
    count=4,
)

print(f"{value=}")
print(f"{token_type=}")
print(f"{count=}")
print(f"{updated_counts=}")
value=998.0
token_type=2
count=5
updated_counts=None

Note that token_type=2 is wrong.

What operating system(s) are you using?

macOS

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions