Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/predict_sdk/order_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ def build_order(
raise MissingSignerError()

return Order(
salt=str(data.salt or self._generate_salt()),
salt=str(data.salt if data.salt is not None else self._generate_salt()),
maker=effective_maker,
signer=effective_signer,
taker=data.taker or ZERO_ADDRESS,
Expand Down
16 changes: 16 additions & 0 deletions tests/test_order_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,22 @@ def test_build_order_with_custom_salt(self, builder_with_signer: OrderBuilder):

assert order.salt == "123456789"

def test_build_order_with_zero_salt(self, builder_with_signer: OrderBuilder):
"""Preserve an explicitly provided zero salt."""
order = builder_with_signer.build_order(
"LIMIT",
BuildOrderInput(
side=Side.BUY,
token_id="12345",
maker_amount="1000000000000000000",
taker_amount="2000000000000000000",
fee_rate_bps=100,
salt=0,
),
)

assert order.salt == "0"

def test_build_order_with_expiration(self, builder_with_signer: OrderBuilder):
"""Build order with custom expiration."""
future_date = datetime(2100, 1, 1, tzinfo=timezone.utc)
Expand Down