Skip to content
Merged
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
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Disclaimer

Here is our first public release of Dexalot SDK for Python. It is in alpha testing right now. Fork it, contribute to it and use it to integrate with Dexalot and let us know how we can improve it.
Here is our public release of Dexalot SDK for Python. It is in beta testing right now. Fork it, contribute to it and use it to integrate with Dexalot and let us know how we can improve it.

**Please Note**: The public interface may undergo breaking changes.

Expand Down Expand Up @@ -979,10 +979,11 @@ Orders are normalized into one canonical SDK shape regardless of whether the sou
- `min_trade_amount`, `max_trade_amount`

**RFQ Quotes API:**
- `chainId` (from `chainid`, `chain_id`)
- `secureQuote` (from `securequote`, `secure_quote`)
- `quoteId` (from `quoteid`, `quote_id`)
- Nested order data: `nonceAndMeta`, `makerAsset`, `takerAsset`, `makerAmount`, `takerAmount`
- HTTP envelope `{"success": true, "quote": {...}}` is unwrapped so callers see only the inner executable quote. Envelope-layer failures (`success: false`) become `Result.fail(...)` at the HTTP layer using the API's `reason`/`error` field.
- `chain_id` (from `chainid`, `chainId`)
- `quote_id` (from `quoteid`, `quoteId`)
- Top-level fields preserved as-is: `signature`, `order`, `tx`, `expiry`, `nonceAndMeta`, `pair`, `price`, `side`, `minOutputAmount`, `maxSlippageBps`, `bridgeFee`, `usdAmount`, `baseAddress`, `quoteAddress`, `baseAmount`, `quoteAmount`
- Inner `order` data normalized to snake_case: `nonce_and_meta`, `maker_asset`, `taker_asset`, `maker_amount`, `taker_amount` (camelCase originals retained)

**Deployment API:**
- `env`, `address`, `abi` (handles variations like `Env`, `Address`, `Abi`)
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.5.13
0.5.14
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ license = "MIT"
license-files = [
"LICENSE.txt"
]
version = "0.5.13"
version = "0.5.14"
description = "Dexalot Python SDK - Core library for Dexalot interaction"
readme = "README.md"
requires-python = ">=3.12,<3.15"
Expand All @@ -17,7 +17,7 @@ authors = [
]
keywords = ["dexalot", "dex", "defi", "web3", "trading", "avalanche"]
classifiers = [
"Development Status :: 3 - Alpha",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
Expand Down
2 changes: 1 addition & 1 deletion src/dexalot_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
secrets_vault_set,
)

__version__ = "0.5.13"
__version__ = "0.5.14"


def get_version() -> str:
Expand Down
15 changes: 12 additions & 3 deletions src/dexalot_sdk/core/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1271,12 +1271,21 @@ async def fetch_one(cid, chain_name):
async with await self._make_http_request(
"get", rfq_url, params={"chainid": cid}
) as response:
response.raise_for_status()
self.rfq_pairs[cid] = await response.json()
if response.status == 200:
self.rfq_pairs[cid] = await response.json()
return
log_event(
self.logger,
"debug",
"rfq_pairs_unavailable",
chain_id=cid,
chain_name=chain_name,
status=response.status,
)
except Exception as e:
log_event(
self.logger,
"warning",
"debug",
"rfq_pairs_fetch_failed",
chain_id=cid,
chain_name=chain_name,
Expand Down
Loading
Loading