charli3_dendrite 1.5.18.dev1__tar.gz → 1.5.19.dev0__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.
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/PKG-INFO +1 -1
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/pyproject.toml +2 -2
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/multi_asset.py +23 -16
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4.py +92 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/LICENSE +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/README.md +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/backend_base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/blockfrost/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/blockfrost/models.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/dbsync/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/dbsync/models.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/ogmios_kupo/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/ogmios_kupo/models.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/utils.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dataclasses/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dataclasses/datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dataclasses/models.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/amm_base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/amm_types.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/cswap.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/dano.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/minswap.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/muesli.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/spectrum.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/splash.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/sundae.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4_deployments.json +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4_stableswap_math.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/vyfi.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/wingriders.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/core/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/core/base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/core/errors.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/axo.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/cardanoswaps.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/chadswap.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/djed.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/geniusyield.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/ob_base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/saturnswap.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/constants.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/loader.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/market.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/math.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/aggregator.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/aggregator_datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/deployments.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/forward.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/leaves.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/locator.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/lp_pricing.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/recipes.json +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/redeemer.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/reproduce.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/oracles/structured_datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/state.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/_common.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/build.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/context.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/create_loan.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/datum_synth.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/increase_loan.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/loan_ids.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/modify_collateral.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/oracle_redeemer.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/oracle_synth.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/topup_withdraw.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/danogo/transactions/verify.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/constants.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/loader.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/market.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/math.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/feeds.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/fluid_api.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/witness.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/state.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/_common.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/borrow.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/borrow_terms.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/change_collateral.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/context.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/datum_synth.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/lend.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/pool.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/recast.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/request.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/resolve.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/utxos.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/constants.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/datums.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/indexing.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/loader.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/market.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/rates.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/state.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/borrow.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/change_collateral.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/claim.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/common.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/lender_bond.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/loan_action.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/loan_terms.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/oracle.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_action.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_cancel.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_create.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_edit.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_terms.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/recast.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/resolve.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/markets.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/math.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/normalized.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/charli3.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/dex_pooled.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/fluid.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/models.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/orcfax.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/oracles/qtoken.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/plutus.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/rates.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/registry.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/transactions/base.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/transactions/infra.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/transactions/snapshot.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/units.py +0 -0
- {charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/utility.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "charli3_dendrite"
|
|
3
|
-
version = "1.5.
|
|
3
|
+
version = "1.5.19-dev0"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = ["Elder Millenial <eldermillenial@protonmail.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -50,7 +50,7 @@ module = ["pycardano", "pycardano.*", "dotenv", "nox", "uplc", "uplc.*"]
|
|
|
50
50
|
ignore_missing_imports = true
|
|
51
51
|
|
|
52
52
|
[tool.bumpversion]
|
|
53
|
-
current_version = "1.5.
|
|
53
|
+
current_version = "1.5.19-dev0"
|
|
54
54
|
parse = """(?x)
|
|
55
55
|
(?P<major>\\d+)\\.
|
|
56
56
|
(?P<minor>\\d+)\\.
|
|
@@ -127,6 +127,22 @@ class AbstractMultiAssetPoolState(DendriteBaseModel, ABC):
|
|
|
127
127
|
"""
|
|
128
128
|
return self.reserves.root[unit]
|
|
129
129
|
|
|
130
|
+
def _order_output(
|
|
131
|
+
self,
|
|
132
|
+
in_assets: Assets,
|
|
133
|
+
fee: int,
|
|
134
|
+
rider: int,
|
|
135
|
+
order_datum: PlutusData,
|
|
136
|
+
) -> TransactionOutput:
|
|
137
|
+
"""The order output: in_assets plus fee and rider lovelace, an inline datum."""
|
|
138
|
+
value = Assets(**dict(in_assets.root))
|
|
139
|
+
value.root["lovelace"] = value.root.get("lovelace", 0) + fee + rider
|
|
140
|
+
return TransactionOutput(
|
|
141
|
+
address=self.stake_address,
|
|
142
|
+
amount=asset_to_value(value),
|
|
143
|
+
datum=order_datum,
|
|
144
|
+
)
|
|
145
|
+
|
|
130
146
|
def swap_utxo(
|
|
131
147
|
self,
|
|
132
148
|
address_source: Address,
|
|
@@ -152,19 +168,10 @@ class AbstractMultiAssetPoolState(DendriteBaseModel, ABC):
|
|
|
152
168
|
address_target=address_target,
|
|
153
169
|
datum_target=datum_target,
|
|
154
170
|
)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
).quantity()
|
|
163
|
-
+ self.deposit(in_assets=in_assets, out_assets=out_assets).quantity()
|
|
164
|
-
)
|
|
165
|
-
output = TransactionOutput(
|
|
166
|
-
address=self.stake_address,
|
|
167
|
-
amount=asset_to_value(value),
|
|
168
|
-
datum=order_datum,
|
|
169
|
-
)
|
|
170
|
-
return output, order_datum
|
|
171
|
+
fee = self.batcher_fee(
|
|
172
|
+
in_assets=in_assets,
|
|
173
|
+
out_assets=out_assets,
|
|
174
|
+
extra_assets=extra_assets,
|
|
175
|
+
).quantity()
|
|
176
|
+
rider = self.deposit(in_assets=in_assets, out_assets=out_assets).quantity()
|
|
177
|
+
return self._order_output(in_assets, fee, rider, order_datum), order_datum
|
|
@@ -84,6 +84,7 @@ from pycardano import RawPlutusData
|
|
|
84
84
|
from pycardano import Redeemer
|
|
85
85
|
from pycardano import ScriptHash
|
|
86
86
|
from pycardano import TransactionBuilder
|
|
87
|
+
from pycardano import TransactionOutput
|
|
87
88
|
from pycardano import UTxO
|
|
88
89
|
from pycardano import VerificationKeyHash
|
|
89
90
|
from pycardano.serialization import CBORTag
|
|
@@ -1665,6 +1666,13 @@ _DEPLOYMENTS_RESOURCE = "sundae_v4_deployments.json"
|
|
|
1665
1666
|
# payout output and is returned with the fill (or the cancel).
|
|
1666
1667
|
_ORDER_RIDER = 2_000_000
|
|
1667
1668
|
|
|
1669
|
+
# The scooper's charge, beyond the flat base fee, for routing one basic order
|
|
1670
|
+
# across several vaults: each vault beyond the first costs ROUTE_EXTRA_POOL_FEE
|
|
1671
|
+
# and each hop beyond the first ROUTE_EXTRA_HOP_FEE (lovelace). A straight path
|
|
1672
|
+
# over k vaults has k pools and k hops.
|
|
1673
|
+
ROUTE_EXTRA_POOL_FEE = 1_000_000
|
|
1674
|
+
ROUTE_EXTRA_HOP_FEE = 500_000
|
|
1675
|
+
|
|
1668
1676
|
# How long a live (or fallback) SundaeV4Vault.base_fee() reading is cached, per
|
|
1669
1677
|
# network, before the fee-settings node is read again.
|
|
1670
1678
|
_BASE_FEE_TTL_S = 300
|
|
@@ -2108,6 +2116,38 @@ class SundaeV4Vault(DendriteBaseModel):
|
|
|
2108
2116
|
cls._base_fee_cache[deployment.network] = (fee, now)
|
|
2109
2117
|
return fee
|
|
2110
2118
|
|
|
2119
|
+
@classmethod
|
|
2120
|
+
def route_fee_budget(
|
|
2121
|
+
cls,
|
|
2122
|
+
pools: int,
|
|
2123
|
+
hops: int,
|
|
2124
|
+
*,
|
|
2125
|
+
base_fee: int | None = None,
|
|
2126
|
+
) -> int:
|
|
2127
|
+
"""The fee budget a basic order needs for the scooper to route it.
|
|
2128
|
+
|
|
2129
|
+
``base_fee + (pools - 1) * ROUTE_EXTRA_POOL_FEE + (hops - 1) *
|
|
2130
|
+
ROUTE_EXTRA_HOP_FEE``: one vault on one hop is the flat base fee; a
|
|
2131
|
+
straight path over ``k`` vaults has ``pools == hops == k``. Set the
|
|
2132
|
+
order's ``service_budget`` and ``max_per_execution`` to it (and lock it)
|
|
2133
|
+
for a multi-vault fill. ``base_fee`` defaults to the live
|
|
2134
|
+
:meth:`base_fee`; pass the value a quote was priced at to reuse it.
|
|
2135
|
+
|
|
2136
|
+
Raises:
|
|
2137
|
+
ValueError: ``pools`` or ``hops`` is below one, or ``hops`` exceeds
|
|
2138
|
+
``pools`` (every hop crosses at least one vault).
|
|
2139
|
+
"""
|
|
2140
|
+
if pools < 1 or hops < 1 or hops > pools:
|
|
2141
|
+
msg = (
|
|
2142
|
+
f"A route crosses at least one vault per hop: "
|
|
2143
|
+
f"pools={pools}, hops={hops}."
|
|
2144
|
+
)
|
|
2145
|
+
raise ValueError(msg)
|
|
2146
|
+
fee = cls.base_fee() if base_fee is None else base_fee
|
|
2147
|
+
return (
|
|
2148
|
+
fee + (pools - 1) * ROUTE_EXTRA_POOL_FEE + (hops - 1) * ROUTE_EXTRA_HOP_FEE
|
|
2149
|
+
)
|
|
2150
|
+
|
|
2111
2151
|
@classmethod
|
|
2112
2152
|
def dex(cls) -> str:
|
|
2113
2153
|
"""Get the DEX name."""
|
|
@@ -2775,6 +2815,15 @@ class _SundaeV4BoundPool(_SundaeV4OrderBuilders):
|
|
|
2775
2815
|
tag: int
|
|
2776
2816
|
reserves: Assets
|
|
2777
2817
|
|
|
2818
|
+
def _order_output(
|
|
2819
|
+
self,
|
|
2820
|
+
in_assets: Assets,
|
|
2821
|
+
fee: int,
|
|
2822
|
+
rider: int,
|
|
2823
|
+
order_datum: PlutusData,
|
|
2824
|
+
) -> TransactionOutput:
|
|
2825
|
+
...
|
|
2826
|
+
|
|
2778
2827
|
_deposit_rider: ClassVar[Assets] = Assets(lovelace=_ORDER_RIDER)
|
|
2779
2828
|
|
|
2780
2829
|
@classmethod
|
|
@@ -2819,6 +2868,49 @@ class _SundaeV4BoundPool(_SundaeV4OrderBuilders):
|
|
|
2819
2868
|
"""The lovelace rider returned with the order's payout."""
|
|
2820
2869
|
return self._deposit_rider
|
|
2821
2870
|
|
|
2871
|
+
def swap_utxo(
|
|
2872
|
+
self,
|
|
2873
|
+
address_source: Address,
|
|
2874
|
+
in_assets: Assets,
|
|
2875
|
+
out_assets: Assets,
|
|
2876
|
+
extra_assets: Assets | None = None,
|
|
2877
|
+
address_target: Address | None = None,
|
|
2878
|
+
datum_target: PlutusData | None = None,
|
|
2879
|
+
*,
|
|
2880
|
+
fee_budget: int | None = None,
|
|
2881
|
+
) -> tuple[TransactionOutput, PlutusData]:
|
|
2882
|
+
"""The order output for a swap: input + fee budget + rider, inline datum.
|
|
2883
|
+
|
|
2884
|
+
Unset, ``fee_budget`` is the live base fee: the order budgets and locks
|
|
2885
|
+
exactly one vault's execution. Set, the datum's ``service_budget`` and
|
|
2886
|
+
``max_per_execution`` are both ``fee_budget`` and the order locks it: the
|
|
2887
|
+
budget a multi-vault route needs (:meth:`SundaeV4Vault.route_fee_budget`).
|
|
2888
|
+
|
|
2889
|
+
Raises:
|
|
2890
|
+
ValueError: more than one asset offered or asked, or ``fee_budget``
|
|
2891
|
+
below the live base fee (the scooper never includes such an order).
|
|
2892
|
+
"""
|
|
2893
|
+
if len(in_assets) != 1 or len(out_assets) != 1:
|
|
2894
|
+
msg = "Only one asset can be supplied as input, and one asset as output."
|
|
2895
|
+
raise ValueError(msg)
|
|
2896
|
+
base_fee = SundaeV4Vault.base_fee()
|
|
2897
|
+
if fee_budget is not None and fee_budget < base_fee:
|
|
2898
|
+
msg = f"A fee budget of {fee_budget} is below the base fee {base_fee}."
|
|
2899
|
+
raise ValueError(msg)
|
|
2900
|
+
order_datum = self.swap_datum(
|
|
2901
|
+
address_source=address_source,
|
|
2902
|
+
in_assets=in_assets,
|
|
2903
|
+
out_assets=out_assets,
|
|
2904
|
+
extra_assets=extra_assets,
|
|
2905
|
+
address_target=address_target,
|
|
2906
|
+
datum_target=datum_target,
|
|
2907
|
+
service_budget=fee_budget,
|
|
2908
|
+
max_per_execution=fee_budget,
|
|
2909
|
+
)
|
|
2910
|
+
fee = base_fee if fee_budget is None else fee_budget
|
|
2911
|
+
rider = self.deposit(in_assets=in_assets, out_assets=out_assets).quantity()
|
|
2912
|
+
return self._order_output(in_assets, fee, rider, order_datum), order_datum
|
|
2913
|
+
|
|
2822
2914
|
def apply_swap(self, asset_in: Assets, asset_out: Assets) -> None:
|
|
2823
2915
|
"""Move every touched reserve as if the swap settled.
|
|
2824
2916
|
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/backend/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/cswap.py
RENAMED
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/dano.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/amm/vyfi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/core/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/axo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/dexs/ob/djed.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/math.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/plutus.py
RENAMED
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/rates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/lending/units.py
RENAMED
|
File without changes
|
{charli3_dendrite-1.5.18.dev1 → charli3_dendrite-1.5.19.dev0}/src/charli3_dendrite/utility.py
RENAMED
|
File without changes
|