Changelog
This section outlines the changes made in each version of the Avantis Trader SDK
Version 0.8.0 (2025-02-21)
More Info: https://avantisfi.notion.site/avantis-contracts-v1-5-upgrade
Breaking Changes:
New ABIs Introduced: - PairInfos ABI - PriceAggregator ABI - Trading ABI - TradingCallbacks ABI - TradingStorage ABI
Price Impact Spread Calculations:
The following methods now support the isPnl parameter:
get_price_impact_spread
get_skew_impact_spread
get_opening_price_impact_spread
Trade Transactions:
Open and Close Trade Transactions: The last parameter for execution_fee has been removed in the contract.
Previous Behavior: Required execution_fee as the last parameter.
New Behavior: No longer requires execution_fee. Ensure transaction-building logic is updated accordingly.
⚠️ This is an important change—ensure your integration reflects this update.
Loss Protection Tier: - Updated get_loss_protection_tier to support the new PnL order type.
Referral Rebates: - Updated get_trade_referral_rebate_percentage: The contract method for tiers has changed to referralTiers.
Order Type Enum Update:
The TradeInputOrderType enum has been updated to support the new PnL order type:
class TradeInputOrderType(Enum): ... MARKET_PNL = 3
Version 0.7.0 (2025-02-09)
Breaking Changes: - Modified Write Contract:
Previous Behavior: The write_contract method would return the transaction hash.
New Behavior: The write_contract method now returns the transaction receipt.
Modified Get Balance:
Previous Behavior: The get_balance method would return the balance of the account in wei.
New Behavior: The get_balance method now returns the balance of the account in ETH.
Improvements:
Removed dependency on hardcoded pair feed ids.
Added support for fetching feed mappings dynamically from an API or trader client.
Introduced an optional pair_fetcher function in feed client for full customization.
Revised example to demonstrate how to use both an API or trader client to retrieve the latest price updates.
Version 0.6.0 (2025-01-24)
Breaking Changes: - Modified ABI:
`PairStorage` ABI:
Previous Behavior: The ABI had a simpler structure for accessing pair data.
New Behavior: Updated to include more detailed and flexible structures for pair data access.
Modified Data Models:
`PairInfo`:
Previous Behavior: Limited fields for leverage and pair metrics.
New Behavior: Enhanced with additional fields to accommodate new metrics: - Leverages:
min_leverage: Minimum leverage for pairs.
max_leverage: Maximum leverage for pairs.
pnl_min_leverage: Minimum leverage for PnL calculations.
pnl_max_leverage: Maximum leverage for PnL calculations.
Values:
max_gain_percentage: Maximum allowable gain percentage.
max_sl_percentage: Maximum stop-loss percentage.
max_long_oi_percentage: Maximum open interest percentage for long trades.
max_short_oi_percentage: Maximum open interest percentage for short trades.
group_open_interest_percentage: Group-level open interest percentage limit.
max_wallet_oi_percentage: Maximum open interest percentage per wallet.
is_usdc_aligned: Boolean indicating USDC alignment.
Additional Fields:
backup_feed: Backup source for price feeds.
constant_pnl_spread_bps: Basis points for constant PnL spreads.
New Data Models: - `PairInfoWithData`:
Combines detailed pair data (PairInfo) with additional metrics (PairData).
Includes all new fields from PairInfo as well as the following: - PairData: Contains essential details such as from, to, and pair-related attributes.
Improvements: - Enhanced data model flexibility for pair configurations. - Updated documentation to reflect the new ABI structure.
Version 0.5.0 (2025-01-17) - Breaking Changes:
Modified Methods: - `build_trade_close_tx`:
Previous Behavior: Required a 6 decimal precision float for collateral_to_close. e.g. 100500000 for 100.5 USDC
New Behavior: Now requires a normal float value for collateral_to_close. e.g. 100.5 for 100.5 USDC
New Methods: - `build_trade_tp_sl_update_tx`:
Description: Introduced a new method specifically for updating the take profit and stop loss of a trade.
Purpose: To allow traders to update the take profit and stop loss of a trade without having to close and open a new trade.
Input: Accepts a pair_index, trade_index, take_profit_price, stop_loss_price, and trader (optional).
Output: Returns the transaction object to update the take profit and stop loss of a trade.
- Improvements:
Added warning for upcoming v1.5 contracts upgrade
Fixed margin update and USDC approval methods
Optimized fee values for margin updates
write_contract will now auto fill the nonce and chainId if not provided
Version 0.4.0 (2024-12-02) - Breaking Changes:
Modified Methods: - `get_opening_fee`:
Previous Behavior: Returned a Fee instance with fee details based on input parameters. If the parameters included trade_input, it would calculate and return the final fee in USDC.
New Behavior: Now strictly returns fee details in basis points (bps) based on input parameters. It no longer accepts trade_input as an argument. This ensures consistent behavior and avoids ambiguity.
New Methods: - `get_new_trade_opening_fee`:
Description: Introduced a new method specifically for calculating the final opening fee in USDC for a trade, based on the provided trade_input.
Purpose: To handle trade-specific fee calculations consistently and separately from the broader get_opening_fee method.
Input: Accepts a TradeInput object.
Output: Returns the calculated opening fee in USDC, adjusted for referral rebates.
- Version 0.3.1 (2024-10-23)
Added feed ids for new pairs
Version 0.3.0 (2024-10-20)
Breaking Changes:
Refactored transaction signing:
Existing integrations may require updates to align with the new signing approach (see updated examples: trade and GitHub Examples).
Made the trader parameter optional in select trading methods:
Ensure your code accounts for cases where trader may not be explicitly provided. Affected methods include:
build_trade_close_tx
build_order_cancel_tx
build_trade_margin_update_tx
- New Features:
Added support for approving USDC for trading.
Introduced support for transaction signing via AWS KMS.
Implemented a BaseSigner class to allow custom signer integrations.
- Improvements:
Refactored transaction signing for better flexibility and integration.
Enhanced examples to demonstrate the new allowance and approve methods.
Updated examples to utilize the new signer methods.
Expanded documentation with additional examples and use cases.
- Version 0.2.2 (2024-10-16)
Added support for Python v3.6
Handled de-listed pairs gracefully
- Version 0.2.1 (2024-08-31)
Added support for trading.
Improved error handling and logging.
Updated to pydantic 2.0 for data validation.
Updated documentation with more examples and use cases.
Added support for price updates on demand.
- Version 0.1.0 (2024-03-01)
Initial release of the Avantis Trader SDK.
Added support for asset parameters, category parameters, trading parameters, and fee parameters.
Implemented a websocket client for real-time price feed updates.