avantis-trader-sdk 0.8.12__tar.gz → 0.8.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/PKG-INFO +1 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/__init__.py +1 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/config.py +1 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/feed/feed_client.py +7 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/pairs_cache.py +29 -2
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/trade.py +258 -66
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/trading_parameters.py +3 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/types.py +72 -26
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/PKG-INFO +1 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/setup.py +1 -1
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/MANIFEST.in +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/README.md +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ABDK.t.sol/ABDKTest.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AbstractPyth.sol/AbstractPyth.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AccessControl.sol/AccessControl.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Address.sol/Address.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Address.sol/Addresses.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AddressUpgradeable.sol/AddressUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorInterface.sol/AggregatorInterface.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV2V3Interface.sol/AggregatorV2V3Interface.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV3Interface.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV3Interface.sol/AggregatorV3Interface.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/BackupOracle.t.sol/BackupOracle.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/CommonBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/ScriptBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/TestBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.t.sol/Base.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Constants.sol/Constants.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Context.sol/Context.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ContextUpgradeable.sol/ContextUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Counters.sol/Counters.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC165.sol/ERC165.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC165Upgradeable.sol/ERC165Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC20.sol/ERC20.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC4626Upgradeable.sol/ERC4626Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC721Upgradeable.sol/ERC721Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Execute.sol/Execute.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IAccessControl.sol/IAccessControl.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IBeacon.sol/IBeacon.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ICallbacks.sol/ICallbacks.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC1155Receiver.sol/IERC1155Receiver.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC165.sol/IERC165.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC165Upgradeable.sol/IERC165Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC1967.sol/IERC1967.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20.sol/IERC20.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Metadata.sol/IERC20Metadata.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Permit.sol/IERC20Permit.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Upgradeable.sol/IERC20Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC4626.sol/IERC4626.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC4626Upgradeable.sol/IERC4626Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721Receiver.sol/IERC721Receiver.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721ReceiverUpgradeable.sol/IERC721ReceiverUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721Upgradeable.sol/IERC721Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IExecute.sol/IExecute.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedPairInfos.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedPairStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedTrading.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IMulticall.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall3.sol/IMulticall3.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPairInfos.sol/IPairInfos.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPairStorage.sol/IPairStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPausable.sol/IPausable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPriceAggregator.sol/IPriceAggregator.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPyth.sol/IPyth.dbg.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPyth.sol/IPyth.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPythEvents.sol/IPythEvents.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IReferral.sol/IReferral.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ITradingStorage.sol/ITradingStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ITranche.sol/ITranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IVaultManager.sol/IVaultManager.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IVeTranche.sol/IVeTranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Initializable.sol/Initializable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IsolatedMargin.t.sol/IsolatedMargin.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LimitTrade.t.sol/LimitTrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LiquidBase.t.sol/LiquidBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LiquidateTrade.t.sol/LiquidateTrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LossProtection.t.sol/LossProtection.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MarketTrade.t.sol/MarketTrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Math.sol/Math.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MathUpgradeable.sol/MathUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MockPyth.sol/MockPyth.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MockV3Aggregator.sol/MockV3Aggregator.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Multicall.sol/Multicall.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Multicall.t.sol/MulticallGroup.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Multicall3.sol/Multicall3.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Ownable.sol/Ownable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PairInfos.sol/PairInfos.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PairStorage.sol/PairStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PausableUpgradeable.sol/PausableUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PositionMath.sol/PositionMath.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PriceAggregator.sol/PriceAggregator.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Proxy.sol/Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ProxyAdmin.sol/ProxyAdmin.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PythErrors.sol/PythErrors.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PythStructs.sol/PythStructs.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.sol/Referral.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.sol/ReferralStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.t.sol/Referral.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SafeERC20.sol/SafeERC20.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Sanctions.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Script.sol/Script.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Setters.t.sol/Setters.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SignedMath.sol/SignedMath.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SignedMathUpgradeable.sol/SignedMathUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SkewedBase.t.sol/SkewedBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdAssertions.sol/StdAssertions.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdChains.sol/StdChains.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdCheats.sol/StdCheats.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdCheats.sol/StdCheatsSafe.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdError.sol/stdError.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdInvariant.sol/StdInvariant.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdJson.sol/stdJson.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdMath.sol/stdMath.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStorage.sol/stdStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStorage.sol/stdStorageSafe.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStyle.sol/StdStyle.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdUtils.sol/StdUtils.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StopLimit.t.sol/StopLimitTrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StorageSlot.sol/StorageSlot.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Strings.sol/Strings.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StringsUpgradeable.sol/StringsUpgradeable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Timelock.sol/AvantisTimelockOwner.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Timelock.t.sol/Timelock.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TimelockBase.t.sol/TimelockBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TimelockController.sol/TimelockController.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradeBase.t.sol/TradeBase.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Trading.sol/Trading.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradingCallbacks.sol/TradingCallbacks.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradingStorage.sol/TradingStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Tranche.sol/Tranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/USDC.sol/USDC.dbg.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/USDC.sol/USDC.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Upgradability.t.sol/Upgradability.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vault.t.sol/Vault.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/VaultManager.sol/VaultManager.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/VeTranche.sol/VeTranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vm.sol/Vm.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vm.sol/VmSafe.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/abdkQuadMathExt.sol/ABDKMathQuadExt.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/beacon/IBeacon.sol/IBeacon.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/console.sol/console.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/console2.sol/console2.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/contracts/proxy/Proxy.sol/Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/deployBase.s.sol/DeployScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/deployBaseMulticall.s.sol/MulticallDeployScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/draft-IERC1822.sol/IERC1822Proxiable.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getPair.s.sol/UpdateScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getTrade.s.sol/UpdateScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getTranche.s.sol/UpdateScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ICallbacks.sol/ICallbacks.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IExecute.sol/IExecute.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPairInfos.sol/IPairInfos.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPairStorage.sol/IPairStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPriceAggregator.sol/IPriceAggregator.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IReferral.sol/IReferral.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ITradingStorage.sol/ITradingStorage.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ITranche.sol/ITranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IVaultManager.sol/IVaultManager.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IVeTranche.sol/IVeTranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/library/PositionMath.sol/PositionMath.dbg.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/library/PositionMath.sol/PositionMath.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/liquidityBase.s.sol/LiquidityScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/lp.s.sol/Lp.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/Proxy.sol/Proxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/beacon/IBeacon.sol/IBeacon.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/safeconsole.sol/safeconsole.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupLossProtection.s.sol/SetupLossProtection.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupPairs.s.sol/SetupPairs.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupTimelock.s.sol/SetupTimelock.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupTimelock.sol/SetupTimelock.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/test.sol/DSTest.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/test.sol/Test.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/testnet/USDC.sol/USDC.dbg.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/testnet/USDC.sol/USDC.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/ProxyAdmin.sol/ProxyAdmin.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/updateBase.s.sol/UpdateScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/updateOP.s.sol/UpdateScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/upgradesBase.s.sol/UpgradeScript.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/veTranche.t.sol/veTranche.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/wire.s.sol/Wire.json +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/client.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/crypto/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/crypto/spki.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/feed/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/asset_parameters.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/blended.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/category_parameters.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/fee_parameters.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/rpc_helpers.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/snapshot.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/base.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/kms_signer.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/local_signer.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/utils.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/SOURCES.txt +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/dependency_links.txt +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/requires.txt +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/top_level.txt +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/setup.cfg +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/tests/__init__.py +0 -0
- {avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/tests/test_client.py +0 -0
{avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/feed/feed_client.py
RENAMED
|
@@ -122,7 +122,7 @@ class FeedClient:
|
|
|
122
122
|
return pairs
|
|
123
123
|
except (requests.RequestException, ValidationError) as e:
|
|
124
124
|
print(f"Error fetching pair feeds: {e}")
|
|
125
|
-
return []
|
|
125
|
+
return []
|
|
126
126
|
|
|
127
127
|
def load_pair_feeds(self):
|
|
128
128
|
"""
|
|
@@ -130,6 +130,9 @@ class FeedClient:
|
|
|
130
130
|
"""
|
|
131
131
|
|
|
132
132
|
try:
|
|
133
|
+
if self.pair_feeds:
|
|
134
|
+
return
|
|
135
|
+
|
|
133
136
|
try:
|
|
134
137
|
asyncio.get_running_loop()
|
|
135
138
|
except RuntimeError:
|
|
@@ -231,6 +234,9 @@ class FeedClient:
|
|
|
231
234
|
Returns:
|
|
232
235
|
A PriceFeedUpdatesResponse object containing the latest price updates.
|
|
233
236
|
"""
|
|
237
|
+
if not self.pair_feeds:
|
|
238
|
+
self.load_pair_feeds()
|
|
239
|
+
|
|
234
240
|
url = self.hermes_url
|
|
235
241
|
|
|
236
242
|
feedIds = []
|
{avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/pairs_cache.py
RENAMED
|
@@ -28,6 +28,7 @@ class PairsCache:
|
|
|
28
28
|
self._pair_mapping = {}
|
|
29
29
|
|
|
30
30
|
self._pair_info_from_socket_cache = {}
|
|
31
|
+
self._socket_info_cache = {}
|
|
31
32
|
|
|
32
33
|
async def get_pairs_info(self, force_update=False):
|
|
33
34
|
"""
|
|
@@ -87,10 +88,13 @@ class PairsCache:
|
|
|
87
88
|
|
|
88
89
|
return self._pair_info_cache
|
|
89
90
|
|
|
90
|
-
async def get_pair_info_from_socket(self, pair_index=None):
|
|
91
|
+
async def get_pair_info_from_socket(self, pair_index=None, use_cache=False):
|
|
91
92
|
"""
|
|
92
93
|
Retrieves the pair information from the socket.
|
|
93
94
|
"""
|
|
95
|
+
if not use_cache and self._pair_info_from_socket_cache:
|
|
96
|
+
return self._pair_info_from_socket_cache[str(pair_index)]
|
|
97
|
+
|
|
94
98
|
if not self.socket_api:
|
|
95
99
|
raise ValueError("socket_api is not set")
|
|
96
100
|
try:
|
|
@@ -98,7 +102,8 @@ class PairsCache:
|
|
|
98
102
|
response.raise_for_status()
|
|
99
103
|
|
|
100
104
|
result = response.json()
|
|
101
|
-
|
|
105
|
+
self._socket_info_cache = result["data"]
|
|
106
|
+
pairs = self._socket_info_cache["pairInfos"]
|
|
102
107
|
self._pair_info_from_socket_cache = pairs
|
|
103
108
|
except (requests.RequestException, ValidationError) as e:
|
|
104
109
|
print(f"Error fetching pair feeds: {e}")
|
|
@@ -108,6 +113,28 @@ class PairsCache:
|
|
|
108
113
|
return self._pair_info_from_socket_cache[str(pair_index)]
|
|
109
114
|
return self._pair_info_from_socket_cache
|
|
110
115
|
|
|
116
|
+
async def get_info_from_socket(self, force_update=False):
|
|
117
|
+
"""
|
|
118
|
+
Retrieves the socket information.
|
|
119
|
+
"""
|
|
120
|
+
if not force_update and self._socket_info_cache:
|
|
121
|
+
return self._socket_info_cache
|
|
122
|
+
|
|
123
|
+
if not self.socket_api:
|
|
124
|
+
raise ValueError("socket_api is not set")
|
|
125
|
+
try:
|
|
126
|
+
response = requests.get(self.socket_api)
|
|
127
|
+
response.raise_for_status()
|
|
128
|
+
|
|
129
|
+
result = response.json()
|
|
130
|
+
self._socket_info_cache = result["data"]
|
|
131
|
+
self._pair_info_from_socket_cache = self._socket_info_cache["pairInfos"]
|
|
132
|
+
except (requests.RequestException, ValidationError) as e:
|
|
133
|
+
print(f"Error fetching pair feeds: {e}")
|
|
134
|
+
return {}
|
|
135
|
+
|
|
136
|
+
return self._socket_info_cache
|
|
137
|
+
|
|
111
138
|
async def get_pairs_count(self):
|
|
112
139
|
"""
|
|
113
140
|
Retrieves the number of pairs from the blockchain.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from ..feed.feed_client import FeedClient
|
|
2
|
+
from ..config import AVANTIS_CORE_API_BASE_URL
|
|
2
3
|
from ..types import (
|
|
3
4
|
TradeInput,
|
|
4
5
|
TradeInputOrderType,
|
|
@@ -8,8 +9,10 @@ from ..types import (
|
|
|
8
9
|
PendingLimitOrderExtendedResponse,
|
|
9
10
|
MarginUpdateType,
|
|
10
11
|
)
|
|
11
|
-
from typing import Optional
|
|
12
|
+
from typing import Optional, List, Tuple
|
|
12
13
|
import math
|
|
14
|
+
import asyncio
|
|
15
|
+
import requests
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
class TradeRPC:
|
|
@@ -17,16 +20,23 @@ class TradeRPC:
|
|
|
17
20
|
The TradeRPC class contains methods for retrieving trading parameters from the Avantis Protocol.
|
|
18
21
|
"""
|
|
19
22
|
|
|
20
|
-
def __init__(
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
client,
|
|
26
|
+
feed_client: FeedClient,
|
|
27
|
+
core_api_base_url: Optional[str] = None,
|
|
28
|
+
):
|
|
21
29
|
"""
|
|
22
30
|
Constructor for the TradeRPC class.
|
|
23
31
|
|
|
24
32
|
Args:
|
|
25
33
|
client: The TraderClient object.
|
|
26
34
|
feed_client: The FeedClient object.
|
|
35
|
+
core_api_base_url: Optional override for the API base URL.
|
|
27
36
|
"""
|
|
28
37
|
self.client = client
|
|
29
38
|
self.feed_client = feed_client
|
|
39
|
+
self.core_api_base_url = core_api_base_url or AVANTIS_CORE_API_BASE_URL
|
|
30
40
|
|
|
31
41
|
async def build_trade_open_tx(
|
|
32
42
|
self,
|
|
@@ -193,28 +203,143 @@ class TradeRPC:
|
|
|
193
203
|
print("Error getting correct trade execution fee. Using fallback: ", e)
|
|
194
204
|
return execution_fee_wei
|
|
195
205
|
|
|
196
|
-
async def get_trades(
|
|
206
|
+
async def get_trades(
|
|
207
|
+
self,
|
|
208
|
+
trader: Optional[str] = None,
|
|
209
|
+
use_api: bool = True,
|
|
210
|
+
) -> Tuple[List[TradeExtendedResponse], List[PendingLimitOrderExtendedResponse]]:
|
|
197
211
|
"""
|
|
198
|
-
Gets the trades.
|
|
212
|
+
Gets the trades and pending limit orders for a trader.
|
|
213
|
+
|
|
214
|
+
Attempts to fetch from API first for better performance. Falls back to
|
|
215
|
+
paginated smart contract calls if API is unavailable or disabled.
|
|
199
216
|
|
|
200
217
|
Args:
|
|
201
218
|
trader: The trader's wallet address.
|
|
219
|
+
use_api: Whether to attempt API fetch first. Defaults to True.
|
|
202
220
|
|
|
203
221
|
Returns:
|
|
204
|
-
|
|
222
|
+
A tuple of (trades, pending_limit_orders).
|
|
205
223
|
"""
|
|
206
224
|
if trader is None:
|
|
207
225
|
trader = self.client.get_signer().get_ethereum_address()
|
|
208
226
|
|
|
227
|
+
if use_api:
|
|
228
|
+
api_enabled = await self._check_api_enabled(trader)
|
|
229
|
+
if api_enabled:
|
|
230
|
+
try:
|
|
231
|
+
return await self._fetch_trades_from_api(trader)
|
|
232
|
+
except Exception:
|
|
233
|
+
pass
|
|
234
|
+
|
|
235
|
+
return await self._fetch_trades_from_contracts(trader)
|
|
236
|
+
|
|
237
|
+
async def _check_api_enabled(self, trader: str) -> bool:
|
|
238
|
+
"""Checks if the API is enabled for the given trader."""
|
|
239
|
+
try:
|
|
240
|
+
response = requests.get(
|
|
241
|
+
f"{self.core_api_base_url}/user-data/config",
|
|
242
|
+
params={"wallet": trader},
|
|
243
|
+
timeout=5,
|
|
244
|
+
)
|
|
245
|
+
response.raise_for_status()
|
|
246
|
+
data = response.json()
|
|
247
|
+
return data.get("globallyEnabled", False) or data.get(
|
|
248
|
+
"enabledForWallet", False
|
|
249
|
+
)
|
|
250
|
+
except Exception:
|
|
251
|
+
return False
|
|
252
|
+
|
|
253
|
+
async def _fetch_trades_from_api(
|
|
254
|
+
self, trader: str
|
|
255
|
+
) -> Tuple[List[TradeExtendedResponse], List[PendingLimitOrderExtendedResponse]]:
|
|
256
|
+
"""Fetches trades from the API."""
|
|
257
|
+
response = requests.get(
|
|
258
|
+
f"{self.core_api_base_url}/user-data",
|
|
259
|
+
params={"trader": trader},
|
|
260
|
+
timeout=10,
|
|
261
|
+
)
|
|
262
|
+
response.raise_for_status()
|
|
263
|
+
data = response.json()
|
|
264
|
+
|
|
265
|
+
trades = []
|
|
266
|
+
for position in data.get("positions", []):
|
|
267
|
+
loss_protection_tier = int(position.get("lossProtection", 0))
|
|
268
|
+
pair_index = int(position.get("pairIndex", 0))
|
|
269
|
+
loss_protection_pct = await self.client.trading_parameters.get_loss_protection_percentage_by_tier(
|
|
270
|
+
loss_protection_tier, pair_index
|
|
271
|
+
)
|
|
272
|
+
position["lossProtectionPercentage"] = loss_protection_pct
|
|
273
|
+
trades.append(TradeExtendedResponse(**position))
|
|
274
|
+
|
|
275
|
+
limit_orders = [
|
|
276
|
+
PendingLimitOrderExtendedResponse(**order)
|
|
277
|
+
for order in data.get("limitOrders", [])
|
|
278
|
+
]
|
|
279
|
+
|
|
280
|
+
return trades, limit_orders
|
|
281
|
+
|
|
282
|
+
async def _fetch_trades_from_contracts(
|
|
283
|
+
self,
|
|
284
|
+
trader: str,
|
|
285
|
+
max_pairs_per_call: int = 12,
|
|
286
|
+
) -> Tuple[List[TradeExtendedResponse], List[PendingLimitOrderExtendedResponse]]:
|
|
287
|
+
"""Fetches trades from smart contracts with paginated calls."""
|
|
288
|
+
socket_info = await self.client.pairs_cache.get_info_from_socket()
|
|
289
|
+
max_trades_per_pair = socket_info.get("maxTradesPerPair", 40)
|
|
290
|
+
|
|
291
|
+
pairs_count = await self.client.pairs_cache.get_pairs_count()
|
|
292
|
+
pair_ranges = self._build_pair_ranges(pairs_count, max_pairs_per_call)
|
|
293
|
+
|
|
294
|
+
tasks = [
|
|
295
|
+
self._fetch_positions_for_range(trader, start, end, max_trades_per_pair)
|
|
296
|
+
for start, end in pair_ranges
|
|
297
|
+
]
|
|
298
|
+
results = await asyncio.gather(*tasks)
|
|
299
|
+
|
|
300
|
+
raw_trades = []
|
|
301
|
+
raw_orders = []
|
|
302
|
+
for trades_batch, orders_batch in results:
|
|
303
|
+
raw_trades.extend(trades_batch)
|
|
304
|
+
raw_orders.extend(orders_batch)
|
|
305
|
+
|
|
306
|
+
trades = await self._parse_raw_trades(raw_trades)
|
|
307
|
+
limit_orders = self._parse_raw_limit_orders(raw_orders)
|
|
308
|
+
|
|
309
|
+
return trades, limit_orders
|
|
310
|
+
|
|
311
|
+
def _build_pair_ranges(
|
|
312
|
+
self, pairs_count: int, max_pairs_per_call: int
|
|
313
|
+
) -> List[Tuple[int, int]]:
|
|
314
|
+
"""Builds pair index ranges for paginated fetching."""
|
|
315
|
+
ranges = []
|
|
316
|
+
for i in range(0, pairs_count, max_pairs_per_call):
|
|
317
|
+
start = i
|
|
318
|
+
end = min(i + max_pairs_per_call, pairs_count)
|
|
319
|
+
ranges.append((start, end))
|
|
320
|
+
return ranges
|
|
321
|
+
|
|
322
|
+
async def _fetch_positions_for_range(
|
|
323
|
+
self,
|
|
324
|
+
trader: str,
|
|
325
|
+
start_pair: int,
|
|
326
|
+
end_pair: int,
|
|
327
|
+
max_trades_per_pair: int,
|
|
328
|
+
) -> Tuple[list, list]:
|
|
329
|
+
"""Fetches positions for a range of pair indexes."""
|
|
209
330
|
result = (
|
|
210
331
|
await self.client.contracts.get("Multicall")
|
|
211
|
-
.functions.
|
|
332
|
+
.functions.getPositionsForPairIndexes(
|
|
333
|
+
trader, start_pair, end_pair, max_trades_per_pair
|
|
334
|
+
)
|
|
212
335
|
.call()
|
|
213
336
|
)
|
|
214
|
-
|
|
215
|
-
pendingOpenLimitOrders = []
|
|
337
|
+
return result[0], result[1]
|
|
216
338
|
|
|
217
|
-
|
|
339
|
+
async def _parse_raw_trades(self, raw_trades: list) -> List[TradeExtendedResponse]:
|
|
340
|
+
"""Parses raw contract trade data into TradeExtendedResponse objects."""
|
|
341
|
+
trades = []
|
|
342
|
+
for aggregated_trade in raw_trades:
|
|
218
343
|
(trade, trade_info, margin_fee, liquidation_price, is_zfp) = (
|
|
219
344
|
aggregated_trade
|
|
220
345
|
)
|
|
@@ -222,71 +347,64 @@ class TradeRPC:
|
|
|
222
347
|
if trade[7] <= 0:
|
|
223
348
|
continue
|
|
224
349
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
"pairIndex": trade[1],
|
|
230
|
-
"index": trade[2],
|
|
231
|
-
"initialPosToken": trade[3],
|
|
232
|
-
"positionSizeUSDC": trade[4],
|
|
233
|
-
"openPrice": trade[5],
|
|
234
|
-
"buy": trade[6],
|
|
235
|
-
"leverage": trade[7],
|
|
236
|
-
"tp": trade[8],
|
|
237
|
-
"sl": trade[9],
|
|
238
|
-
"timestamp": trade[10],
|
|
239
|
-
},
|
|
240
|
-
"additional_info": {
|
|
241
|
-
"openInterestUSDC": trade_info[0],
|
|
242
|
-
"tpLastUpdated": trade_info[1],
|
|
243
|
-
"slLastUpdated": trade_info[2],
|
|
244
|
-
"beingMarketClosed": trade_info[3],
|
|
245
|
-
"lossProtectionPercentage": await self.client.trading_parameters.get_loss_protection_percentage_by_tier(
|
|
246
|
-
trade_info[4], trade[1]
|
|
247
|
-
),
|
|
248
|
-
},
|
|
249
|
-
"margin_fee": margin_fee,
|
|
250
|
-
"liquidationPrice": liquidation_price,
|
|
251
|
-
"is_zfp": is_zfp,
|
|
252
|
-
}
|
|
350
|
+
loss_protection = await self.client.trading_parameters.get_loss_protection_percentage_by_tier(
|
|
351
|
+
trade_info[4], trade[1]
|
|
352
|
+
)
|
|
353
|
+
|
|
253
354
|
trades.append(
|
|
254
355
|
TradeExtendedResponse(
|
|
255
|
-
trade=TradeResponse(
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
356
|
+
trade=TradeResponse(
|
|
357
|
+
trader=trade[0],
|
|
358
|
+
pairIndex=trade[1],
|
|
359
|
+
index=trade[2],
|
|
360
|
+
initialPosToken=trade[3],
|
|
361
|
+
positionSizeUSDC=trade[3],
|
|
362
|
+
openPrice=trade[5],
|
|
363
|
+
buy=trade[6],
|
|
364
|
+
leverage=trade[7],
|
|
365
|
+
tp=trade[8],
|
|
366
|
+
sl=trade[9],
|
|
367
|
+
timestamp=trade[10],
|
|
368
|
+
),
|
|
369
|
+
additional_info=TradeInfo(
|
|
370
|
+
lossProtectionPercentage=loss_protection,
|
|
371
|
+
),
|
|
372
|
+
margin_fee=margin_fee,
|
|
373
|
+
liquidation_price=liquidation_price,
|
|
374
|
+
is_zfp=is_zfp,
|
|
260
375
|
)
|
|
261
376
|
)
|
|
262
|
-
|
|
263
|
-
|
|
377
|
+
return trades
|
|
378
|
+
|
|
379
|
+
def _parse_raw_limit_orders(
|
|
380
|
+
self, raw_orders: list
|
|
381
|
+
) -> List[PendingLimitOrderExtendedResponse]:
|
|
382
|
+
"""Parses raw contract order data into PendingLimitOrderExtendedResponse objects."""
|
|
383
|
+
orders = []
|
|
384
|
+
for aggregated_order in raw_orders:
|
|
264
385
|
(order, liquidation_price) = aggregated_order
|
|
265
386
|
|
|
266
387
|
if order[5] <= 0:
|
|
267
388
|
continue
|
|
268
389
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
pendingOpenLimitOrders.append(
|
|
286
|
-
PendingLimitOrderExtendedResponse(**order_details)
|
|
390
|
+
orders.append(
|
|
391
|
+
PendingLimitOrderExtendedResponse(
|
|
392
|
+
trader=order[0],
|
|
393
|
+
pairIndex=order[1],
|
|
394
|
+
index=order[2],
|
|
395
|
+
positionSize=order[3],
|
|
396
|
+
buy=order[4],
|
|
397
|
+
leverage=order[5],
|
|
398
|
+
tp=order[6],
|
|
399
|
+
sl=order[7],
|
|
400
|
+
price=order[8],
|
|
401
|
+
slippageP=order[9],
|
|
402
|
+
block=order[10],
|
|
403
|
+
executionFee=order[11],
|
|
404
|
+
liquidation_price=liquidation_price,
|
|
405
|
+
)
|
|
287
406
|
)
|
|
288
|
-
|
|
289
|
-
return trades, pendingOpenLimitOrders
|
|
407
|
+
return orders
|
|
290
408
|
|
|
291
409
|
async def build_trade_close_tx(
|
|
292
410
|
self,
|
|
@@ -666,8 +784,6 @@ class TradeRPC:
|
|
|
666
784
|
if trader is None:
|
|
667
785
|
trader = self.client.get_signer().get_ethereum_address()
|
|
668
786
|
|
|
669
|
-
feed_client = self.FeedClient()
|
|
670
|
-
|
|
671
787
|
pair_name = await self.client.pairs_cache.get_pair_name_from_index(pair_index)
|
|
672
788
|
|
|
673
789
|
price_data = await self.feed_client.get_latest_price_updates([pair_name])
|
|
@@ -707,3 +823,79 @@ class TradeRPC:
|
|
|
707
823
|
}
|
|
708
824
|
)
|
|
709
825
|
return delegate_transaction
|
|
826
|
+
|
|
827
|
+
async def get_delegate(self, trader: Optional[str] = None) -> str:
|
|
828
|
+
"""
|
|
829
|
+
Gets the delegate address for a trader.
|
|
830
|
+
|
|
831
|
+
Args:
|
|
832
|
+
trader: The trader's wallet address. Defaults to signer's address.
|
|
833
|
+
|
|
834
|
+
Returns:
|
|
835
|
+
The delegate address, or zero address if no delegate is set.
|
|
836
|
+
"""
|
|
837
|
+
Trading = self.client.contracts.get("Trading")
|
|
838
|
+
|
|
839
|
+
if trader is None:
|
|
840
|
+
trader = self.client.get_signer().get_ethereum_address()
|
|
841
|
+
|
|
842
|
+
delegate = await Trading.functions.delegations(trader).call()
|
|
843
|
+
return delegate
|
|
844
|
+
|
|
845
|
+
async def build_set_delegate_tx(
|
|
846
|
+
self,
|
|
847
|
+
delegate: str,
|
|
848
|
+
trader: Optional[str] = None,
|
|
849
|
+
):
|
|
850
|
+
"""
|
|
851
|
+
Builds a transaction to set a delegate for trading.
|
|
852
|
+
|
|
853
|
+
The delegate can perform all trade-related actions on behalf of the trader.
|
|
854
|
+
Each wallet can have at most one delegate.
|
|
855
|
+
|
|
856
|
+
Args:
|
|
857
|
+
delegate: The delegate's wallet address.
|
|
858
|
+
trader: The trader's wallet address. Defaults to signer's address.
|
|
859
|
+
|
|
860
|
+
Returns:
|
|
861
|
+
A transaction object.
|
|
862
|
+
"""
|
|
863
|
+
Trading = self.client.contracts.get("Trading")
|
|
864
|
+
|
|
865
|
+
if trader is None:
|
|
866
|
+
trader = self.client.get_signer().get_ethereum_address()
|
|
867
|
+
|
|
868
|
+
transaction = await Trading.functions.setDelegate(delegate).build_transaction(
|
|
869
|
+
{
|
|
870
|
+
"from": trader,
|
|
871
|
+
"chainId": self.client.chain_id,
|
|
872
|
+
"nonce": await self.client.get_transaction_count(trader),
|
|
873
|
+
}
|
|
874
|
+
)
|
|
875
|
+
|
|
876
|
+
return transaction
|
|
877
|
+
|
|
878
|
+
async def build_remove_delegate_tx(self, trader: Optional[str] = None):
|
|
879
|
+
"""
|
|
880
|
+
Builds a transaction to remove the current delegate.
|
|
881
|
+
|
|
882
|
+
Args:
|
|
883
|
+
trader: The trader's wallet address. Defaults to signer's address.
|
|
884
|
+
|
|
885
|
+
Returns:
|
|
886
|
+
A transaction object.
|
|
887
|
+
"""
|
|
888
|
+
Trading = self.client.contracts.get("Trading")
|
|
889
|
+
|
|
890
|
+
if trader is None:
|
|
891
|
+
trader = self.client.get_signer().get_ethereum_address()
|
|
892
|
+
|
|
893
|
+
transaction = await Trading.functions.removeDelegate().build_transaction(
|
|
894
|
+
{
|
|
895
|
+
"from": trader,
|
|
896
|
+
"chainId": self.client.chain_id,
|
|
897
|
+
"nonce": await self.client.get_transaction_count(trader),
|
|
898
|
+
}
|
|
899
|
+
)
|
|
900
|
+
|
|
901
|
+
return transaction
|
{avantis_trader_sdk-0.8.12 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/trading_parameters.py
RENAMED
|
@@ -57,7 +57,9 @@ class TradingParametersRPC:
|
|
|
57
57
|
Returns:
|
|
58
58
|
The loss protection percentage.
|
|
59
59
|
"""
|
|
60
|
-
pair_info = await self.client.pairs_cache.get_pair_info_from_socket(
|
|
60
|
+
pair_info = await self.client.pairs_cache.get_pair_info_from_socket(
|
|
61
|
+
pair_index, use_cache=True
|
|
62
|
+
)
|
|
61
63
|
return pair_info["lossProtectionMultiplier"][str(tier)]
|
|
62
64
|
|
|
63
65
|
async def get_loss_protection_percentage(self, trade: TradeInput):
|