avantis-trader-sdk 0.8.11__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.
Files changed (224) hide show
  1. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/PKG-INFO +1 -1
  2. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/__init__.py +1 -1
  3. avantis_trader_sdk-0.8.13/avantis_trader_sdk/abis/Multicall.sol/Multicall.json +3 -0
  4. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/config.py +1 -0
  5. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/feed/feed_client.py +7 -1
  6. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/pairs_cache.py +29 -2
  7. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/trade.py +261 -65
  8. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/trading_parameters.py +3 -1
  9. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/types.py +72 -25
  10. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/PKG-INFO +1 -1
  11. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/setup.py +1 -1
  12. avantis_trader_sdk-0.8.11/avantis_trader_sdk/abis/Multicall.sol/Multicall.json +0 -1
  13. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/MANIFEST.in +0 -0
  14. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/README.md +0 -0
  15. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ABDK.t.sol/ABDKTest.json +0 -0
  16. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AbstractPyth.sol/AbstractPyth.json +0 -0
  17. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AccessControl.sol/AccessControl.json +0 -0
  18. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Address.sol/Address.json +0 -0
  19. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Address.sol/Addresses.json +0 -0
  20. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AddressUpgradeable.sol/AddressUpgradeable.json +0 -0
  21. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorInterface.sol/AggregatorInterface.json +0 -0
  22. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV2V3Interface.sol/AggregatorV2V3Interface.json +0 -0
  23. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV3Interface.json +0 -0
  24. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/AggregatorV3Interface.sol/AggregatorV3Interface.json +0 -0
  25. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/BackupOracle.t.sol/BackupOracle.json +0 -0
  26. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/CommonBase.json +0 -0
  27. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/ScriptBase.json +0 -0
  28. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.sol/TestBase.json +0 -0
  29. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Base.t.sol/Base.json +0 -0
  30. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Constants.sol/Constants.json +0 -0
  31. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Context.sol/Context.json +0 -0
  32. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ContextUpgradeable.sol/ContextUpgradeable.json +0 -0
  33. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Counters.sol/Counters.json +0 -0
  34. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC165.sol/ERC165.json +0 -0
  35. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC165Upgradeable.sol/ERC165Upgradeable.json +0 -0
  36. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
  37. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
  38. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
  39. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
  40. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC20.sol/ERC20.json +0 -0
  41. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -0
  42. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC4626Upgradeable.sol/ERC4626Upgradeable.json +0 -0
  43. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ERC721Upgradeable.sol/ERC721Upgradeable.json +0 -0
  44. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Execute.sol/Execute.json +0 -0
  45. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IAccessControl.sol/IAccessControl.json +0 -0
  46. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IBeacon.sol/IBeacon.json +0 -0
  47. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ICallbacks.sol/ICallbacks.json +0 -0
  48. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC1155Receiver.sol/IERC1155Receiver.json +0 -0
  49. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC165.sol/IERC165.json +0 -0
  50. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC165Upgradeable.sol/IERC165Upgradeable.json +0 -0
  51. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC1967.sol/IERC1967.json +0 -0
  52. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20.sol/IERC20.json +0 -0
  53. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Metadata.sol/IERC20Metadata.json +0 -0
  54. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +0 -0
  55. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Permit.sol/IERC20Permit.json +0 -0
  56. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +0 -0
  57. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC20Upgradeable.sol/IERC20Upgradeable.json +0 -0
  58. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC4626.sol/IERC4626.json +0 -0
  59. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC4626Upgradeable.sol/IERC4626Upgradeable.json +0 -0
  60. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.json +0 -0
  61. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721Receiver.sol/IERC721Receiver.json +0 -0
  62. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721ReceiverUpgradeable.sol/IERC721ReceiverUpgradeable.json +0 -0
  63. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IERC721Upgradeable.sol/IERC721Upgradeable.json +0 -0
  64. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IExecute.sol/IExecute.json +0 -0
  65. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedPairInfos.json +0 -0
  66. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedPairStorage.json +0 -0
  67. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IExtendedTrading.json +0 -0
  68. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall.sol/IMulticall.json +0 -0
  69. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IMulticall3.sol/IMulticall3.json +0 -0
  70. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPairInfos.sol/IPairInfos.json +0 -0
  71. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPairStorage.sol/IPairStorage.json +0 -0
  72. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPausable.sol/IPausable.json +0 -0
  73. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPriceAggregator.sol/IPriceAggregator.json +0 -0
  74. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPyth.sol/IPyth.dbg.json +0 -0
  75. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPyth.sol/IPyth.json +0 -0
  76. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IPythEvents.sol/IPythEvents.json +0 -0
  77. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IReferral.sol/IReferral.json +0 -0
  78. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ITradingStorage.sol/ITradingStorage.json +0 -0
  79. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ITranche.sol/ITranche.json +0 -0
  80. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IVaultManager.sol/IVaultManager.json +0 -0
  81. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IVeTranche.sol/IVeTranche.json +0 -0
  82. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Initializable.sol/Initializable.json +0 -0
  83. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/IsolatedMargin.t.sol/IsolatedMargin.json +0 -0
  84. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LimitTrade.t.sol/LimitTrade.json +0 -0
  85. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LiquidBase.t.sol/LiquidBase.json +0 -0
  86. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LiquidateTrade.t.sol/LiquidateTrade.json +0 -0
  87. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/LossProtection.t.sol/LossProtection.json +0 -0
  88. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MarketTrade.t.sol/MarketTrade.json +0 -0
  89. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Math.sol/Math.json +0 -0
  90. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MathUpgradeable.sol/MathUpgradeable.json +0 -0
  91. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MockPyth.sol/MockPyth.json +0 -0
  92. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/MockV3Aggregator.sol/MockV3Aggregator.json +0 -0
  93. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Multicall.t.sol/MulticallGroup.json +0 -0
  94. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Multicall3.sol/Multicall3.json +0 -0
  95. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Ownable.sol/Ownable.json +0 -0
  96. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PairInfos.sol/PairInfos.json +0 -0
  97. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PairStorage.sol/PairStorage.json +0 -0
  98. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PausableUpgradeable.sol/PausableUpgradeable.json +0 -0
  99. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PositionMath.sol/PositionMath.json +0 -0
  100. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PriceAggregator.sol/PriceAggregator.json +0 -0
  101. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Proxy.sol/Proxy.json +0 -0
  102. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ProxyAdmin.sol/ProxyAdmin.json +0 -0
  103. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PythErrors.sol/PythErrors.json +0 -0
  104. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/PythStructs.sol/PythStructs.json +0 -0
  105. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +0 -0
  106. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.sol/Referral.json +0 -0
  107. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.sol/ReferralStorage.json +0 -0
  108. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Referral.t.sol/Referral.json +0 -0
  109. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SafeERC20.sol/SafeERC20.json +0 -0
  110. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +0 -0
  111. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Sanctions.json +0 -0
  112. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Script.sol/Script.json +0 -0
  113. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Setters.t.sol/Setters.json +0 -0
  114. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SignedMath.sol/SignedMath.json +0 -0
  115. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SignedMathUpgradeable.sol/SignedMathUpgradeable.json +0 -0
  116. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/SkewedBase.t.sol/SkewedBase.json +0 -0
  117. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdAssertions.sol/StdAssertions.json +0 -0
  118. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdChains.sol/StdChains.json +0 -0
  119. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdCheats.sol/StdCheats.json +0 -0
  120. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdCheats.sol/StdCheatsSafe.json +0 -0
  121. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdError.sol/stdError.json +0 -0
  122. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdInvariant.sol/StdInvariant.json +0 -0
  123. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdJson.sol/stdJson.json +0 -0
  124. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdMath.sol/stdMath.json +0 -0
  125. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStorage.sol/stdStorage.json +0 -0
  126. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStorage.sol/stdStorageSafe.json +0 -0
  127. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdStyle.sol/StdStyle.json +0 -0
  128. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StdUtils.sol/StdUtils.json +0 -0
  129. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StopLimit.t.sol/StopLimitTrade.json +0 -0
  130. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StorageSlot.sol/StorageSlot.json +0 -0
  131. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Strings.sol/Strings.json +0 -0
  132. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/StringsUpgradeable.sol/StringsUpgradeable.json +0 -0
  133. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Timelock.sol/AvantisTimelockOwner.json +0 -0
  134. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Timelock.t.sol/Timelock.json +0 -0
  135. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TimelockBase.t.sol/TimelockBase.json +0 -0
  136. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TimelockController.sol/TimelockController.json +0 -0
  137. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradeBase.t.sol/TradeBase.json +0 -0
  138. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Trading.sol/Trading.json +0 -0
  139. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradingCallbacks.sol/TradingCallbacks.json +0 -0
  140. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TradingStorage.sol/TradingStorage.json +0 -0
  141. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Tranche.sol/Tranche.json +0 -0
  142. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
  143. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
  144. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/USDC.sol/USDC.dbg.json +0 -0
  145. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/USDC.sol/USDC.json +0 -0
  146. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Upgradability.t.sol/Upgradability.json +0 -0
  147. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vault.t.sol/Vault.json +0 -0
  148. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/VaultManager.sol/VaultManager.json +0 -0
  149. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/VeTranche.sol/VeTranche.json +0 -0
  150. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vm.sol/Vm.json +0 -0
  151. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/Vm.sol/VmSafe.json +0 -0
  152. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/__init__.py +0 -0
  153. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/abdkQuadMathExt.sol/ABDKMathQuadExt.json +0 -0
  154. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/beacon/IBeacon.sol/IBeacon.json +0 -0
  155. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/console.sol/console.json +0 -0
  156. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/console2.sol/console2.json +0 -0
  157. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/contracts/proxy/Proxy.sol/Proxy.json +0 -0
  158. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/deployBase.s.sol/DeployScript.json +0 -0
  159. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/deployBaseMulticall.s.sol/MulticallDeployScript.json +0 -0
  160. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/draft-IERC1822.sol/IERC1822Proxiable.json +0 -0
  161. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getPair.s.sol/UpdateScript.json +0 -0
  162. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getTrade.s.sol/UpdateScript.json +0 -0
  163. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/getTranche.s.sol/UpdateScript.json +0 -0
  164. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ICallbacks.sol/ICallbacks.json +0 -0
  165. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IExecute.sol/IExecute.json +0 -0
  166. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPairInfos.sol/IPairInfos.json +0 -0
  167. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPairStorage.sol/IPairStorage.json +0 -0
  168. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IPriceAggregator.sol/IPriceAggregator.json +0 -0
  169. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IReferral.sol/IReferral.json +0 -0
  170. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ITradingStorage.sol/ITradingStorage.json +0 -0
  171. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/ITranche.sol/ITranche.json +0 -0
  172. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IVaultManager.sol/IVaultManager.json +0 -0
  173. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/interfaces/IVeTranche.sol/IVeTranche.json +0 -0
  174. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/library/PositionMath.sol/PositionMath.dbg.json +0 -0
  175. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/library/PositionMath.sol/PositionMath.json +0 -0
  176. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/liquidityBase.s.sol/LiquidityScript.json +0 -0
  177. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/lp.s.sol/Lp.json +0 -0
  178. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +0 -0
  179. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -0
  180. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/Proxy.sol/Proxy.json +0 -0
  181. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/beacon/IBeacon.sol/IBeacon.json +0 -0
  182. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +0 -0
  183. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
  184. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
  185. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/safeconsole.sol/safeconsole.json +0 -0
  186. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupLossProtection.s.sol/SetupLossProtection.json +0 -0
  187. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupPairs.s.sol/SetupPairs.json +0 -0
  188. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupTimelock.s.sol/SetupTimelock.json +0 -0
  189. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/setupTimelock.sol/SetupTimelock.json +0 -0
  190. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/test.sol/DSTest.json +0 -0
  191. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/test.sol/Test.json +0 -0
  192. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/testnet/USDC.sol/USDC.dbg.json +0 -0
  193. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/testnet/USDC.sol/USDC.json +0 -0
  194. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/ProxyAdmin.sol/ProxyAdmin.json +0 -0
  195. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +0 -0
  196. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +0 -0
  197. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/updateBase.s.sol/UpdateScript.json +0 -0
  198. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/updateOP.s.sol/UpdateScript.json +0 -0
  199. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/upgradesBase.s.sol/UpgradeScript.json +0 -0
  200. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/veTranche.t.sol/veTranche.json +0 -0
  201. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/abis/wire.s.sol/Wire.json +0 -0
  202. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/client.py +0 -0
  203. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/crypto/__init__.py +0 -0
  204. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/crypto/spki.py +0 -0
  205. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/feed/__init__.py +0 -0
  206. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/__init__.py +0 -0
  207. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/asset_parameters.py +0 -0
  208. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/blended.py +0 -0
  209. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/category_parameters.py +0 -0
  210. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/fee_parameters.py +0 -0
  211. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/rpc_helpers.py +0 -0
  212. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/rpc/snapshot.py +0 -0
  213. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/__init__.py +0 -0
  214. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/base.py +0 -0
  215. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/kms_signer.py +0 -0
  216. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/signers/local_signer.py +0 -0
  217. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk/utils.py +0 -0
  218. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/SOURCES.txt +0 -0
  219. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/dependency_links.txt +0 -0
  220. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/requires.txt +0 -0
  221. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/avantis_trader_sdk.egg-info/top_level.txt +0 -0
  222. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/setup.cfg +0 -0
  223. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/tests/__init__.py +0 -0
  224. {avantis_trader_sdk-0.8.11 → avantis_trader_sdk-0.8.13}/tests/test_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: avantis_trader_sdk
3
- Version: 0.8.11
3
+ Version: 0.8.13
4
4
  Summary: SDK for interacting with Avantis trading contracts.
5
5
  Home-page: https://avantisfi.com/
6
6
  Author: Avantis Labs
@@ -2,4 +2,4 @@ from .client import TraderClient
2
2
  from .feed.feed_client import FeedClient
3
3
  from .signers.base import BaseSigner
4
4
 
5
- __version__ = "0.8.11"
5
+ __version__ = "0.8.13"
@@ -0,0 +1,3 @@
1
+ {
2
+ "abi": [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call3[]","name":"calls","type":"tuple[]"}],"name":"aggregate3","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call3Value[]","name":"calls","type":"tuple[]"}],"name":"aggregate3Value","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getFirstEmptyTradeIndexes","outputs":[{"internalType":"uint256[]","name":"firstEmptyTradeIndexes","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getLiquidationPrice","outputs":[{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLongShortRatios","outputs":[{"internalType":"uint256[]","name":"longRatio","type":"uint256[]"},{"internalType":"uint256[]","name":"shortRatio","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMargins","outputs":[{"internalType":"uint256[]","name":"rolloverFeePerBlockP","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockLong","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockShort","type":"uint256[]"},{"internalType":"uint256[]","name":"openInterestUSDCLong","type":"uint256[]"},{"internalType":"uint256[]","name":"openInterestUSDCShort","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"}],"name":"getMarginsForPair","outputs":[{"internalType":"uint256","name":"rolloverFeePerBlockP","type":"uint256"},{"internalType":"uint256","name":"rolloverFeePerBlockLong","type":"uint256"},{"internalType":"uint256","name":"rolloverFeePerBlockShort","type":"uint256"},{"internalType":"uint256","name":"openInterestUSDCLong","type":"uint256"},{"internalType":"uint256","name":"openInterestUSDCShort","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getOpenLimitOrdersCounts","outputs":[{"internalType":"uint256[]","name":"openLimitOrdersCounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"}],"name":"getPendingOrder","outputs":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"wantedPrice","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"}],"internalType":"struct ITradingStorage.PendingMarketOrder","name":"orderInfo","type":"tuple"}],"internalType":"struct IMulticall.AggregatedPendingOrder[]","name":"pendingOrders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getPositions","outputs":[{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"components":[{"internalType":"uint256","name":"openInterestUSDC","type":"uint256"},{"internalType":"uint256","name":"tpLastUpdated","type":"uint256"},{"internalType":"uint256","name":"slLastUpdated","type":"uint256"},{"internalType":"bool","name":"beingMarketClosed","type":"bool"},{"internalType":"uint256","name":"lossProtection","type":"uint256"}],"internalType":"struct ITradingStorage.TradeInfo","name":"tradeInfo","type":"tuple"},{"internalType":"uint256","name":"rolloverFee","type":"uint256"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"},{"internalType":"bool","name":"isPnl","type":"bool"}],"internalType":"struct IMulticall.AggregatedTrade[]","name":"","type":"tuple[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"positionSize","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"executionFee","type":"uint256"}],"internalType":"struct ITradingStorage.OpenLimitOrder","name":"order","type":"tuple"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"internalType":"struct IMulticall.AggregatedOrder[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"startPairIndex","type":"uint256"},{"internalType":"uint256","name":"endPairIndex","type":"uint256"},{"internalType":"uint256","name":"maxTradesPerPair","type":"uint256"}],"name":"getPositionsForPairIndexes","outputs":[{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"components":[{"internalType":"uint256","name":"openInterestUSDC","type":"uint256"},{"internalType":"uint256","name":"tpLastUpdated","type":"uint256"},{"internalType":"uint256","name":"slLastUpdated","type":"uint256"},{"internalType":"bool","name":"beingMarketClosed","type":"bool"},{"internalType":"uint256","name":"lossProtection","type":"uint256"}],"internalType":"struct ITradingStorage.TradeInfo","name":"tradeInfo","type":"tuple"},{"internalType":"uint256","name":"rolloverFee","type":"uint256"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"},{"internalType":"bool","name":"isPnl","type":"bool"}],"internalType":"struct IMulticall.AggregatedTrade[]","name":"","type":"tuple[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"positionSize","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"executionFee","type":"uint256"}],"internalType":"struct ITradingStorage.OpenLimitOrder","name":"order","type":"tuple"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"internalType":"struct IMulticall.AggregatedOrder[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pairInfos","outputs":[{"internalType":"contract IExtendedPairInfos","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairsStorage","outputs":[{"internalType":"contract IExtendedPairStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract ITradingStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"contract IExtendedTrading","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"tryAggregate","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"name":"updateContracts","outputs":[],"stateMutability":"nonpayable","type":"function"}]
3
+ }
@@ -10,5 +10,6 @@ MAINNET_ADDRESSES = {
10
10
  }
11
11
 
12
12
  AVANTIS_SOCKET_API = "https://socket-api-pub.avantisfi.com/socket-api/v1/data"
13
+ AVANTIS_CORE_API_BASE_URL = "https://core.avantisfi.com"
13
14
 
14
15
  CONTRACT_ADDRESSES = MAINNET_ADDRESSES
@@ -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 = []
@@ -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
- pairs = result["data"]["pairInfos"]
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__(self, client, feed_client: FeedClient):
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,96 +203,208 @@ 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(self, trader: Optional[str] = None):
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
- The trades.
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.getPositions(trader)
332
+ .functions.getPositionsForPairIndexes(
333
+ trader, start_pair, end_pair, max_trades_per_pair
334
+ )
212
335
  .call()
213
336
  )
214
- trades = []
215
- pendingOpenLimitOrders = []
337
+ return result[0], result[1]
216
338
 
217
- for aggregated_trade in result[0]: # Access the list of aggregated trades
218
- (trade, trade_info, margin_fee, liquidation_price) = aggregated_trade
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:
343
+ (trade, trade_info, margin_fee, liquidation_price, is_zfp) = (
344
+ aggregated_trade
345
+ )
219
346
 
220
347
  if trade[7] <= 0:
221
348
  continue
222
349
 
223
- # Extract and format the trade data
224
- trade_details = {
225
- "trade": {
226
- "trader": trade[0],
227
- "pairIndex": trade[1],
228
- "index": trade[2],
229
- "initialPosToken": trade[3],
230
- "positionSizeUSDC": trade[4],
231
- "openPrice": trade[5],
232
- "buy": trade[6],
233
- "leverage": trade[7],
234
- "tp": trade[8],
235
- "sl": trade[9],
236
- "timestamp": trade[10],
237
- },
238
- "additional_info": {
239
- "openInterestUSDC": trade_info[0],
240
- "tpLastUpdated": trade_info[1],
241
- "slLastUpdated": trade_info[2],
242
- "beingMarketClosed": trade_info[3],
243
- "lossProtectionPercentage": await self.client.trading_parameters.get_loss_protection_percentage_by_tier(
244
- trade_info[4], trade[1]
245
- ),
246
- },
247
- "margin_fee": margin_fee,
248
- "liquidationPrice": liquidation_price,
249
- }
350
+ loss_protection = await self.client.trading_parameters.get_loss_protection_percentage_by_tier(
351
+ trade_info[4], trade[1]
352
+ )
353
+
250
354
  trades.append(
251
355
  TradeExtendedResponse(
252
- trade=TradeResponse(**trade_details["trade"]),
253
- additional_info=TradeInfo(**trade_details["additional_info"]),
254
- margin_fee=trade_details["margin_fee"],
255
- liquidation_price=trade_details["liquidationPrice"],
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,
256
375
  )
257
376
  )
258
-
259
- for aggregated_order in result[1]: # Access the list of aggregated orders
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:
260
385
  (order, liquidation_price) = aggregated_order
261
386
 
262
387
  if order[5] <= 0:
263
388
  continue
264
389
 
265
- # Extract and format the order data
266
- order_details = {
267
- "trader": order[0],
268
- "pairIndex": order[1],
269
- "index": order[2],
270
- "positionSize": order[3],
271
- "buy": order[4],
272
- "leverage": order[5],
273
- "tp": order[6],
274
- "sl": order[7],
275
- "price": order[8],
276
- "slippageP": order[9],
277
- "block": order[10],
278
- # 'executionFee': order[11],
279
- "liquidation_price": liquidation_price,
280
- }
281
- pendingOpenLimitOrders.append(
282
- 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
+ )
283
406
  )
284
-
285
- return trades, pendingOpenLimitOrders
407
+ return orders
286
408
 
287
409
  async def build_trade_close_tx(
288
410
  self,
@@ -662,8 +784,6 @@ class TradeRPC:
662
784
  if trader is None:
663
785
  trader = self.client.get_signer().get_ethereum_address()
664
786
 
665
- feed_client = self.FeedClient()
666
-
667
787
  pair_name = await self.client.pairs_cache.get_pair_name_from_index(pair_index)
668
788
 
669
789
  price_data = await self.feed_client.get_latest_price_updates([pair_name])
@@ -703,3 +823,79 @@ class TradeRPC:
703
823
  }
704
824
  )
705
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
@@ -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(pair_index)
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):