charli3_dendrite 1.2.5.dev7__tar.gz → 1.2.5.dev9__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 (38) hide show
  1. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/PKG-INFO +1 -1
  2. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/pyproject.toml +2 -2
  3. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/vyfi.py +30 -10
  4. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/LICENSE +0 -0
  5. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/README.md +0 -0
  6. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/__init__.py +0 -0
  7. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/__init__.py +0 -0
  8. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/backend_base.py +0 -0
  9. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/blockfrost/__init__.py +0 -0
  10. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/blockfrost/models.py +0 -0
  11. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/dbsync/__init__.py +0 -0
  12. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/dbsync/models.py +0 -0
  13. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/ogmios_kupo/__init__.py +0 -0
  14. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/ogmios_kupo/models.py +0 -0
  15. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/backend/utils.py +0 -0
  16. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dataclasses/__init__.py +0 -0
  17. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dataclasses/datums.py +0 -0
  18. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dataclasses/models.py +0 -0
  19. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/__init__.py +0 -0
  20. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/__init__.py +0 -0
  21. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/amm_base.py +0 -0
  22. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/amm_types.py +0 -0
  23. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/cswap.py +0 -0
  24. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/minswap.py +0 -0
  25. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/muesli.py +0 -0
  26. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/spectrum.py +0 -0
  27. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/splash.py +0 -0
  28. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/sundae.py +0 -0
  29. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/amm/wingriders.py +0 -0
  30. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/core/__init__.py +0 -0
  31. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/core/base.py +0 -0
  32. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/core/errors.py +0 -0
  33. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/ob/__init__.py +0 -0
  34. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/ob/axo.py +0 -0
  35. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/ob/djed.py +0 -0
  36. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/ob/geniusyield.py +0 -0
  37. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/dexs/ob/ob_base.py +0 -0
  38. {charli3_dendrite-1.2.5.dev7 → charli3_dendrite-1.2.5.dev9}/src/charli3_dendrite/utility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: charli3_dendrite
3
- Version: 1.2.5.dev7
3
+ Version: 1.2.5.dev9
4
4
  Summary:
5
5
  Author: Elder Millenial
6
6
  Author-email: eldermillenial@protonmail.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "charli3_dendrite"
3
- version = "1.2.5-dev7"
3
+ version = "1.2.5-dev9"
4
4
  description = ""
5
5
  authors = ["Elder Millenial <eldermillenial@protonmail.com>"]
6
6
  readme = "README.md"
@@ -49,7 +49,7 @@ module = ["pycardano", "pycardano.*", "dotenv", "nox"]
49
49
  ignore_missing_imports = true
50
50
 
51
51
  [tool.bumpversion]
52
- current_version = "1.2.5-dev7"
52
+ current_version = "1.2.5-dev9"
53
53
  parse = """(?x)
54
54
  (?P<major>\\d+)\\.
55
55
  (?P<minor>\\d+)\\.
@@ -40,7 +40,7 @@ class VyFiPoolDatum(PoolDatum):
40
40
  token_b_fees: int
41
41
  lp_tokens: int
42
42
 
43
- def pool_pair(self) -> Optional[Assets]:
43
+ def pool_pair(self) -> Optional[Assets]: # noqa: UP007
44
44
  """Return the pool pair assets."""
45
45
  return None
46
46
 
@@ -114,7 +114,7 @@ class VyFiOrderDatum(OrderDatum):
114
114
  """VyFi order datum."""
115
115
 
116
116
  address: bytes
117
- order: Union[AtoB, BtoA, Deposit, LPFlushA, Withdraw, ZapInA, ZapInB]
117
+ order: Union[AtoB, BtoA, Deposit, LPFlushA, Withdraw, ZapInA, ZapInB] # noqa: UP007
118
118
 
119
119
  @classmethod
120
120
  def create_datum(
@@ -124,8 +124,8 @@ class VyFiOrderDatum(OrderDatum):
124
124
  out_assets: Assets,
125
125
  batcher_fee: Assets, # noqa: ARG003
126
126
  deposit: Assets, # noqa: ARG003
127
- address_target: Optional[Address] = None, # noqa: ARG003
128
- datum_target: Optional[PlutusData] = None, # noqa: ARG003
127
+ address_target: Optional[Address] = None, # noqa: ARG003,UP007
128
+ datum_target: Optional[PlutusData] = None, # noqa: ARG003,UP007
129
129
  ) -> VyFiOrderDatum:
130
130
  """Create a new order datum."""
131
131
  address_hash = (
@@ -170,7 +170,7 @@ class VyFiOrderDatum(OrderDatum):
170
170
  )
171
171
  return Assets()
172
172
 
173
- def order_type(self) -> Optional[OrderType]:
173
+ def order_type(self) -> Optional[OrderType]: # noqa: UP007
174
174
  """Get the order type."""
175
175
  if isinstance(self.order, (BtoA, AtoB, ZapInA, ZapInB)):
176
176
  return OrderType.swap
@@ -205,7 +205,7 @@ class VyFiPoolTokens(BaseModel):
205
205
  operator_token: VyFiTokenDefinition = Field(alias="operatorToken")
206
206
  lp_token_name: dict[str, str] = Field(alias="lpTokenName")
207
207
  fees_settings: VyFiFees = Field(alias="feesSettings")
208
- stake_key: Optional[str] = Field(alias="stakeKey")
208
+ stake_key: Optional[str] = Field(alias="stakeKey") # noqa: UP007
209
209
 
210
210
 
211
211
  class VyFiPoolDefinition(BaseModel):
@@ -235,11 +235,22 @@ class VyFiCPPState(AbstractConstantProductPoolState):
235
235
 
236
236
  _batcher = Assets(lovelace=1900000)
237
237
  _deposit = Assets(lovelace=2000000)
238
- _pools: ClassVar[Optional[dict[str, VyFiPoolDefinition]]] = None
238
+ _pools: ClassVar[Optional[dict[str, VyFiPoolDefinition]]] = None # noqa: UP007
239
239
  _pools_refresh: ClassVar[float] = 0.0
240
240
  lp_fee: int = 0
241
241
  bar_fee: int = 0
242
242
 
243
+ @classmethod
244
+ def skip_init(cls, values: dict) -> bool:
245
+ """Skip initialization if the pool NFT is invalid."""
246
+ if "pool_nft" in values:
247
+ if not any(p in cls.pools() for p in values["pool_nft"]):
248
+ raise ValueError("Invalid pool NFT")
249
+
250
+ return True
251
+
252
+ return False
253
+
243
254
  @classmethod
244
255
  def dex(cls) -> str:
245
256
  """Get the DEX name."""
@@ -261,7 +272,10 @@ class VyFiCPPState(AbstractConstantProductPoolState):
261
272
  return [p.order_validator_utxo_address for p in cls.pools().values()]
262
273
 
263
274
  @classmethod
264
- def pool_selector(cls, assets: Optional[list[str]] = None) -> PoolSelector:
275
+ def pool_selector(
276
+ cls,
277
+ assets: Optional[list[str]] = None, # noqa: UP007
278
+ ) -> PoolSelector:
265
279
  """Get a PoolSelector for VyFi pools, optionally filtered by assets."""
266
280
  asset_to_pool = cls._create_asset_to_pool_mapping()
267
281
  relevant_pools = cls._filter_relevant_pools(asset_to_pool, assets)
@@ -291,7 +305,7 @@ class VyFiCPPState(AbstractConstantProductPoolState):
291
305
  def _filter_relevant_pools(
292
306
  cls,
293
307
  asset_to_pool: defaultdict[str, list[VyFiPoolDefinition]],
294
- assets: Optional[list[str]],
308
+ assets: Optional[list[str]], # noqa: UP007
295
309
  ) -> set[VyFiPoolDefinition]:
296
310
  """Filter relevant pools based on assets."""
297
311
  if assets:
@@ -375,7 +389,10 @@ class VyFiCPPState(AbstractConstantProductPoolState):
375
389
  return self.lp_fee + self.bar_fee
376
390
 
377
391
  @classmethod
378
- def extract_pool_nft(cls, values: dict[str, Any]) -> Optional[Assets]:
392
+ def extract_pool_nft(
393
+ cls,
394
+ values: dict[str, Any],
395
+ ) -> Optional[Assets]: # noqa: UP007
379
396
  """Extract the dex nft from the UTXO."""
380
397
  assets = values["assets"]
381
398
 
@@ -411,5 +428,8 @@ class VyFiCPPState(AbstractConstantProductPoolState):
411
428
  assets = values["assets"]
412
429
  datum = VyFiPoolDatum.from_cbor(values["datum_cbor"])
413
430
 
431
+ if assets.unit() == "lovelace":
432
+ assets.root[assets.unit(0)] -= 2000000
433
+
414
434
  assets.root[assets.unit(0)] -= datum.token_a_fees
415
435
  assets.root[assets.unit(1)] -= datum.token_b_fees