afp-sdk 0.2.0__tar.gz → 0.2.2__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 (51) hide show
  1. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/.env.template +1 -0
  2. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/CHANGELOG.md +25 -6
  3. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/PKG-INFO +1 -1
  4. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/__init__.py +4 -0
  5. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/auctioneer_facet.py +1 -7
  6. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/clearing_facet.py +4 -9
  7. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/facade.py +13 -0
  8. afp_sdk-0.2.2/afp/bindings/system_viewer.py +1171 -0
  9. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/trading_protocol.py +1 -145
  10. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/config.py +3 -0
  11. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/schemas.py +2 -1
  12. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/pyproject.toml +1 -1
  13. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/uv.lock +1 -1
  14. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/.envrc +0 -0
  15. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/LICENSE +0 -0
  16. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/README.md +0 -0
  17. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/__init__.py +0 -0
  18. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/__init__.py +0 -0
  19. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/admin.py +0 -0
  20. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/base.py +0 -0
  21. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/builder.py +0 -0
  22. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/clearing.py +0 -0
  23. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/liquidation.py +0 -0
  24. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/api/trading.py +0 -0
  25. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/bankruptcy_facet.py +0 -0
  26. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/erc20.py +0 -0
  27. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/final_settlement_facet.py +0 -0
  28. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/margin_account.py +0 -0
  29. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/margin_account_registry.py +0 -0
  30. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/mark_price_tracker_facet.py +0 -0
  31. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/oracle_provider.py +0 -0
  32. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/bindings/product_registry.py +0 -0
  33. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/decorators.py +0 -0
  34. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/enums.py +0 -0
  35. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/exceptions.py +0 -0
  36. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/exchange.py +0 -0
  37. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/py.typed +0 -0
  38. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/signing.py +0 -0
  39. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/afp/validators.py +0 -0
  40. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/devenv.lock +0 -0
  41. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/devenv.nix +0 -0
  42. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/devenv.yaml +0 -0
  43. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/examples/cancel_order.py +0 -0
  44. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/examples/create_product.py +0 -0
  45. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/examples/execute_trade.py +0 -0
  46. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/__init__.py +0 -0
  47. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/test_decorators.py +0 -0
  48. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/test_hashing.py +0 -0
  49. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/test_login.py +0 -0
  50. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/test_schemas.py +0 -0
  51. {afp_sdk-0.2.0 → afp_sdk-0.2.2}/tests/test_validators.py +0 -0
@@ -4,3 +4,4 @@
4
4
  # AFP_MARGIN_ACCOUNT_REGISTRY_ADDRESS=
5
5
  # AFP_ORACLE_PROVIDER_ADDRESS=
6
6
  # AFP_PRODUCT_REGISTRY_ADDRESS=
7
+ # AFP_SYSTEM_VIEWER_ADDRESS=
@@ -1,16 +1,33 @@
1
+ ## [v0.2.2] - 2025-09-03
2
+
3
+ ### Added
4
+
5
+ - Add public facade for SystemViewer contract binding ([#16](https://github.com/autonity/afp-sdk/pull/16))
6
+
7
+ ### Fixed
8
+
9
+ - Remove duplicates of ports of Solidity data structures ([#16](https://github.com/autonity/afp-sdk/pull/16))
10
+
11
+ ## [v0.2.1] - 2025-09-02
12
+
13
+ ### Added
14
+
15
+ - Add SystemViewer contract bindings ([#15](https://github.com/autonity/afp-sdk/pull/15))
16
+
17
+ ### Changed
18
+
19
+ - Change the data type of Trade ID from integer to string ([#14](https://github.com/autonity/afp-sdk/pull/14))
20
+
1
21
  ## [v0.2.0] - 2025-09-02
2
22
 
3
23
  ### Changed
4
24
 
5
- - Validate limit price to make sure it conforms to the product's tick size
6
- ([#12](https://github.com/autonity/afp-sdk/pull/12))
7
- - Update Clearing System contract bindings for Autonity Bakerloo (Nile) Testnet
8
- deployment as of 2025-09-02 ([#13](https://github.com/autonity/afp-sdk/pull/13))
25
+ - Validate limit price to make sure it conforms to the product's tick size ([#12](https://github.com/autonity/afp-sdk/pull/12))
26
+ - Update Clearing System contract bindings for Autonity Bakerloo (Nile) Testnet deployment as of 2025-09-02 ([#13](https://github.com/autonity/afp-sdk/pull/13))
9
27
 
10
28
  ### Added
11
29
 
12
- - Add optional `rounding` argument to `afp.Trading.create_intent`
13
- ([#12](https://github.com/autonity/afp-sdk/pull/12))
30
+ - Add optional `rounding` argument to `afp.Trading.create_intent` ([#12](https://github.com/autonity/afp-sdk/pull/12))
14
31
 
15
32
  ## [v0.1.2] - 2025-08-28
16
33
 
@@ -28,6 +45,8 @@
28
45
 
29
46
  _First release._
30
47
 
48
+ [v0.2.2]: https://github.com/autonity/afp-sdk/releases/tag/v0.2.2
49
+ [v0.2.1]: https://github.com/autonity/afp-sdk/releases/tag/v0.2.1
31
50
  [v0.2.0]: https://github.com/autonity/afp-sdk/releases/tag/v0.2.0
32
51
  [v0.1.2]: https://github.com/autonity/afp-sdk/releases/tag/v0.1.2
33
52
  [v0.1.1]: https://github.com/autonity/afp-sdk/releases/tag/v0.1.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: afp-sdk
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Autonomous Futures Protocol Python SDK
5
5
  Keywords: autonity,web3,trading,crypto,prediction,forecast,markets
6
6
  License-Expression: MIT
@@ -8,6 +8,7 @@ from .facade import (
8
8
  MarginAccountRegistry,
9
9
  OracleProvider,
10
10
  ProductRegistry,
11
+ SystemViewer,
11
12
  )
12
13
  from .margin_account import MarginAccount, PositionData, Settlement
13
14
  from .product_registry import (
@@ -16,6 +17,7 @@ from .product_registry import (
16
17
  ProductMetadata,
17
18
  ProductState,
18
19
  )
20
+ from .system_viewer import UserMarginAccountData
19
21
  from .trading_protocol import TradingProtocol
20
22
 
21
23
  __all__ = (
@@ -25,6 +27,7 @@ __all__ = (
25
27
  "MarginAccountRegistry",
26
28
  "OracleProvider",
27
29
  "ProductRegistry",
30
+ "SystemViewer",
28
31
  "TradingProtocol",
29
32
  # Structures
30
33
  "AuctionConfig",
@@ -42,6 +45,7 @@ __all__ = (
42
45
  "ProductMetadata",
43
46
  "Settlement",
44
47
  "Trade",
48
+ "UserMarginAccountData",
45
49
  # Enumerations
46
50
  "ProductState",
47
51
  "Side",
@@ -2,7 +2,6 @@
2
2
 
3
3
  # This module has been generated using pyabigen v0.2.16
4
4
 
5
- import enum
6
5
  import typing
7
6
  from dataclasses import dataclass
8
7
 
@@ -11,12 +10,7 @@ import hexbytes
11
10
  import web3
12
11
  from web3.contract import contract
13
12
 
14
-
15
- class Side(enum.IntEnum):
16
- """Port of `enum Side` on the AuctioneerFacet contract."""
17
-
18
- BID = 0
19
- ASK = 1
13
+ from .clearing_facet import Side
20
14
 
21
15
 
22
16
  @dataclass
@@ -11,6 +11,9 @@ import hexbytes
11
11
  import web3
12
12
  from web3.contract import contract
13
13
 
14
+ if typing.TYPE_CHECKING:
15
+ from .auctioneer_facet import AuctionConfig
16
+
14
17
 
15
18
  class Side(enum.IntEnum):
16
19
  """Port of `enum Side` on the ClearingFacet contract."""
@@ -19,14 +22,6 @@ class Side(enum.IntEnum):
19
22
  ASK = 1
20
23
 
21
24
 
22
- @dataclass
23
- class AuctionConfig:
24
- """Port of `struct AuctionConfig` on the IAuctioneer contract."""
25
-
26
- restoration_buffer: int
27
- liquidation_duration: int
28
-
29
-
30
25
  @dataclass
31
26
  class ClearingConfig:
32
27
  """Port of `struct ClearingConfig` on the IClearing contract."""
@@ -38,7 +33,7 @@ class ClearingConfig:
38
33
  class Config:
39
34
  """Port of `struct Config` on the IClearing contract."""
40
35
 
41
- auction_config: AuctionConfig
36
+ auction_config: "AuctionConfig"
42
37
  clearing_config: ClearingConfig
43
38
 
44
39
 
@@ -12,6 +12,7 @@ from . import (
12
12
  mark_price_tracker_facet,
13
13
  oracle_provider,
14
14
  product_registry,
15
+ system_viewer,
15
16
  )
16
17
 
17
18
  # In order to include a facet in the ClearingDiamond facade:
@@ -85,3 +86,15 @@ class ProductRegistry(product_registry.ProductRegistry):
85
86
 
86
87
  def __init__(self, w3: Web3):
87
88
  super().__init__(w3, config.PRODUCT_REGISTRY_ADDRESS)
89
+
90
+
91
+ class SystemViewer(system_viewer.SystemViewer):
92
+ """SystemViewer contract binding.
93
+
94
+ Parameters
95
+ ----------
96
+ w3 : web3.Web3
97
+ """
98
+
99
+ def __init__(self, w3: Web3):
100
+ super().__init__(w3, config.SYSTEM_VIEWER_ADDRESS)