charli3_dendrite 1.5.20.dev0__tar.gz → 1.5.21.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.20.dev0 → charli3_dendrite-1.5.21.dev0}/PKG-INFO +1 -1
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/pyproject.toml +2 -2
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/__init__.py +1 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/cardanoswaps.py +244 -59
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/LICENSE +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/README.md +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/backend_base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/blockfrost/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/blockfrost/models.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/dbsync/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/dbsync/models.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/ogmios_kupo/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/ogmios_kupo/models.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/backend/utils.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dataclasses/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dataclasses/datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dataclasses/models.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/amm_base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/amm_types.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/cswap.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/dano.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/minswap.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/muesli.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/multi_asset.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/spectrum.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/splash.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/sundae.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4_deployments.json +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/sundae_v4_stableswap_math.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/vyfi.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/amm/wingriders.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/core/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/core/base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/core/errors.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/axo.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/chadswap.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/djed.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/geniusyield.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/ob_base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/dexs/ob/saturnswap.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/constants.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/loader.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/market.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/math.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/aggregator.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/aggregator_datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/deployments.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/forward.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/leaves.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/locator.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/lp_pricing.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/recipes.json +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/redeemer.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/reproduce.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/oracles/structured_datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/state.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/_common.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/build.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/context.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/create_loan.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/datum_synth.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/increase_loan.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/loan_ids.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/modify_collateral.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/oracle_redeemer.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/oracle_synth.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/topup_withdraw.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/danogo/transactions/verify.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/constants.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/loader.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/market.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/math.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/feeds.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/fluid_api.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/oracles/witness.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/state.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/_common.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/borrow.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/borrow_terms.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/change_collateral.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/context.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/datum_synth.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/lend.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/pool.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/recast.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/request.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/resolve.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens/transactions/utxos.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/constants.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/datums.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/indexing.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/loader.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/market.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/rates.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/state.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/borrow.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/builder.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/change_collateral.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/claim.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/common.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/lender_bond.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/loan_action.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/loan_terms.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/oracle.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_action.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_cancel.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_create.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_edit.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/pool_terms.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/recast.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/redeemers.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/repay.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/fluidtokens_v4/transactions/resolve.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/markets.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/math.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/normalized.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/charli3.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/dex_pooled.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/fluid.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/models.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/orcfax.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/oracles/qtoken.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/plutus.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/rates.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/registry.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/transactions/__init__.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/transactions/base.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/transactions/infra.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/transactions/snapshot.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/lending/units.py +0 -0
- {charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.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.21-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.21-dev0"
|
|
54
54
|
parse = """(?x)
|
|
55
55
|
(?P<major>\\d+)\\.
|
|
56
56
|
(?P<minor>\\d+)\\.
|
{charli3_dendrite-1.5.20.dev0 → charli3_dendrite-1.5.21.dev0}/src/charli3_dendrite/__init__.py
RENAMED
|
@@ -26,6 +26,7 @@ from charli3_dendrite.dexs.amm.wingriders import WingRidersCPPState
|
|
|
26
26
|
from charli3_dendrite.dexs.amm.wingriders import WingRidersSSPState
|
|
27
27
|
from charli3_dendrite.dexs.amm.wingriders import WingRidersV2CPPState
|
|
28
28
|
from charli3_dendrite.dexs.amm.wingriders import WingRidersV2SSPState
|
|
29
|
+
from charli3_dendrite.dexs.ob.cardanoswaps import CardanoSwapsLegacyOrderState
|
|
29
30
|
from charli3_dendrite.dexs.ob.cardanoswaps import CardanoSwapsOrderBook
|
|
30
31
|
from charli3_dendrite.dexs.ob.cardanoswaps import CardanoSwapsOrderState
|
|
31
32
|
from charli3_dendrite.dexs.ob.chadswap import ChadSwapOrderBook
|
|
@@ -17,6 +17,8 @@ import time
|
|
|
17
17
|
from dataclasses import dataclass
|
|
18
18
|
from decimal import Decimal
|
|
19
19
|
from types import SimpleNamespace
|
|
20
|
+
from typing import Callable
|
|
21
|
+
from typing import ClassVar
|
|
20
22
|
from typing import Union
|
|
21
23
|
from typing import cast
|
|
22
24
|
|
|
@@ -25,6 +27,7 @@ from pycardano import ChainContext
|
|
|
25
27
|
from pycardano import Network
|
|
26
28
|
from pycardano import PlutusData
|
|
27
29
|
from pycardano import PlutusV2Script
|
|
30
|
+
from pycardano import PlutusV3Script
|
|
28
31
|
from pycardano import Redeemer
|
|
29
32
|
from pycardano import ScriptHash
|
|
30
33
|
from pycardano import TransactionBuilder
|
|
@@ -51,24 +54,23 @@ from charli3_dendrite.dexs.ob.ob_base import OrderBookOrder
|
|
|
51
54
|
from charli3_dendrite.dexs.ob.ob_base import SellOrderBook
|
|
52
55
|
from charli3_dendrite.dexs.ob.ob_base import fill_within_budget
|
|
53
56
|
from charli3_dendrite.utility import asset_to_value
|
|
57
|
+
from charli3_dendrite.utility import posix_ms_to_slot
|
|
54
58
|
|
|
55
|
-
# v2 one-way
|
|
56
|
-
#
|
|
57
|
-
|
|
59
|
+
# The pre-release v2 one-way build (Plutus V2), compiled from the protocol source
|
|
60
|
+
# before its Plutus V3 release. Kept so swaps resting on it can be read and
|
|
61
|
+
# closed; it creates and fills nothing.
|
|
62
|
+
LEGACY_BEACON_POLICY_ID = "c4d7d117d9ebcde6db28db40837ff2b1401e9eaaa6eecea9e070e209"
|
|
63
|
+
LEGACY_SWAP_VALIDATOR_HASH = "1d6cff26bcab91d2061aad0bd259cbb7d76d25ced2eeaed5926a42ad"
|
|
64
|
+
LEGACY_SWAP_VALIDATOR_SCRIPT_HEX = "591193010000323232323232323223232322322533300832323232323253233300f300c007132323232323232323253330183016301a3754010264a666032602c60366ea80044c94ccc068cc03d241225374616b696e672063726564656e7469616c20646964206e6f7420617070726f7665003330103020301d375460406042603a6ea8c080c074dd5001002001899807a4812c426561636f6e20736372697074206e6f74206578656375746564206173206d696e74696e6720706f6c6963790033301a3232533302000114a22940c94ccc070c068c078dd50008a5eb7bdb1804dd59811180f9baa001323300100100222533302100114c0103d87a8000132323253330203371e00e6eb8c08800c4c050cc094dd3000a5eb804cc014014008dd598110011812801181180099198008008039129998100008a5eb7bdb1804c8c8c8c94ccc080c048008400c4cc094cdd81ba9002374c0026600c00c0066eacc08800cdd7181000118120011811000a504a22940dd7180f980e1baa018163300b006301e301b37540102c6eb0c074c078c078008dd5980e000980e180e0011bab301a001301a301a301a301a0023758603000260286ea8c05c008c058c05c004c048dd50040a9998079806803899191919191919299980b180a180c1baa0061325333017301430193754002264a6660306601a921225374616b696e672063726564656e7469616c20646964206e6f7420617070726f76650033300e301e301b3754603c603e60366ea8c078c06cdd5001002001899806a4812c426561636f6e20736372697074206e6f74206578656375746564206173207374616b696e6720736372697074003300f004300c3301d3374a90011980e9ba90014bd7025eb805281bae301d301a375402c2c66012008603860326ea801858dd6180d980e180e0011bab301a001301a301a301a301a301a301a0023758603000260286ea8c05c008c058c05c004c048dd5004099191919191919299980b180a180c1baa0061323253330183015301a37540022646464646464646464646666666666666646464444444444444464646464a66606c6464a666070606c60746ea800452889919299981d181b981e1baa003132533303b3038303d3754006266030920127696e76616c69642d686572656166746572206d757374206265203c3d2065787069726174696f6e00337126eb4c104c0f8dd50018008011bad3040303d37540060022a66074920126696e76616c69642d68657265616674657220726571756972656420627574206e6f74207365740016303b00230390013376000a02026464646464646464a66607ca66607ca66607c606002829444c0c004452889980da49194164612063616e206f6e6c79206265206465706f73697465640033712900019b810030061533303e33033491264661696c3a206f666665725f74616b656e202a207072696365203c3d2061736b5f676976656e003371266e08004028cdc1001004899819a4812b5468652061736b2061737365742063616e6e6f742062652074616b656e2066726f6d207468652073776170003371290000010a5016337026eb4c10c01cdd6982180219b81375a60840046eb4c108014dd6982098210009820800991980080081311299981f8008a9981e248123436f72726573706f6e64696e672073776170206f7574707574206e6f7420666f756e6400161323232323253330403375e01c608c608e0042a66608066ebc06400c4ccccccccc07000406005c05805405004c0480444cc01c01c0144cc01c01c014dd5982280098228011821800981f9baa30420023042001375a607c607e002607c00266666666602402201c01a01801601401201000e2c6eb4c0ecc0f0008dd6981d000981b1baa0033374a90021981b98131981b9ba900a3303737520126606e6ea4020cc0dcdd48039981b9ba900633037375200a6606e6ea4010cc0dcdd48019981b8011981b98131981b80e25eb80cc0dc0052f5c097ae0222222222323232323232325333034300730363754607460760042660726ea0014cc0e4dd40019981c9ba80014bd700a9981aa49165554784f206861732077726f6e6720626561636f6e730016375a607200260720046eb4c0dc004c0dc008dd6981a80099980600525eb84101000081010000810100008103d879800011191919191919191929919981c980080a099191919299981e9808181f9baa30430041533303d0021533303d0031330423750016660846ea0024cc108dd40039982119981ea514c103d87a80004c0103d87980004bd7000080080088069807181e9baa30413042002300d303c375460806082608200266602e01097ae10103d87980008103d87980008103d8798000111919191929919199820980100d899823199820800a6103d87a80004c0103d8798000330463330410044c0103d87a80004c0103d8798000330463330410034c0103d87a80004c0103d87980004bd700a999820980100c09982319982080326103d87a80004c0103d8798000330463330410014c0103d87a80004c0103d8798000330463330410034c0103d87a80004c0103d87980004bd700a999820980100a89982319982080326103d87a80004c0103d8798000330463330410044c0103d87a80004c0103d8798000330463330410014c0103d87a80004c0103d87980004bd700a998212481165554784f206861732077726f6e6720626561636f6e730016303e375a608600e6e3cdd71820803180898201baa304430450023010303f375460860026086004601c607a6ea8c10400454c8c8c8c8ccc0f4c0bc0344c94ccc0f8c0ecc100dd50008992991998200028998229ba830070023304537500186608a6ea0004cc114ccc100025300103d87a80004c0103d87980004bd700a9998200020998229ba800e330453750600c0046608a6ea0004cc114ccc10002530103d87a80004c0103d87980004bd700998229ba800e3304537500186608a6ea0004cc114ccc100025300103d87a80004c0103d87980004bd7019b80009001375a608860826ea800458c8cc004004034894ccc10c004530103d87a8000132323253330423034375c60880062606c6608e6ea00052f5c026600a00a0046eb4c110008c11c008c11400454ccc0f54ccc0f400840045280a9998208060a9981f249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161325333042001132323253330413371e00203226608c6ea0c020008cc118dd4006998231ba800b3304633304100a4c0103d87a80004c0103d87980004bd700a99982099b8f001016133046375001e6608c6ea0c01c008cc118dd400599823199820805260103d87a80004c0103d87980004bd700a998212481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60840046eb4c108004c11003454ccc108c1140044c8c8c8c8c8c94ccc110cdc780180e0a99982219b8f00101913304937506016008660926ea0c028008cc124dd400719824999822006a6103d87a80004c0103d87980004bd700a99822a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153330443371e0060322a66608866e3c0040704cc124dd41805801198249ba8300a00433049375001c6609266608801a980103d87a80004c0103d87980004bd700a99822a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533045491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c608a0086eb4c11400cdd718218019bad30430023045002304400d153303f4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016304400c1533303d0021533304100c153303e4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333041304400c13232533303f3371e6eb8c10400805c4cc110dd41803000998221ba800b3304437500126608866607e010980103d87a80004c0103d87980004bd700a998202481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a608200260860182a6607c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533303d0011533304100c153303e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333041304400c13232533303f3371e6eb8c1040080504cc110dd4006998221ba830050013304437500126608866607e010980103d87a80004c0103d87980004bd700a998202481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a608200260860182a6607c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153303e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001630040123003014370000c6e0001cdc78041805181c9baa303d303e002375a607800260780046eb4c0e8004c0e8010dd6981c0019bab3034003375c60640046e2120002253330253330250014a094454cc098008584004888c8ccc00400401000c8894ccc0b000840044ccc00c00cc0bc008cc010c0b8008004dd59814181480519192999812181118131baa0011301833029302a3027375400297ae014c103d87a800030293026375460526054604c6ea8038c090dd500698140051bae3028009375c60500106eb8c0a001cdd718140031bae3028005375c60500086eb8c0a000cdd71814001181400098141814981480098140009813800981300098128009812000981180098110009810800980e1baa018301b3754603c603e60366ea8c078c06cdd50008b19805002800980e180c9baa00616301b301c301c301c301c301c00237586034002603460340046eb0c060004c050dd5180b801180b180b80098091baa008371e9110022323300100100322533301500114c0103d87a80001323253330133375e6032602c6ea80080144c01ccc0600092f5c02660080080026032004602e0026e95200022533300d33300d0014a094454cc03800840044004888c8c94ccc03cc034004528899299980818068010992999808980718099baa0011325333012300f30143754002264646600200201044a66603200229404c94ccc058cdc79bae301c00200414a226600600600260380026eb8c060c054dd5000801980b980a1baa00100230163013375400600226600c008602a60246ea8008c040dd50009809980a18081baa00322323300100100322533301100114a0264a66601c66ebc010c040c050008528899801801800980a00098051baa00314984d958c94ccc01cc01000454ccc02cc028dd50010a4c2c2a66600e600a0022a66601660146ea800852616153330073370e90020008a99980598051baa00214985858c020dd5000a999802180098031baa003132323232323232323232323232323232323232323232533301e30210021323232498c94ccc074c0680044c8c94ccc08cc09800852616375a604800260406ea801054ccc074c06c00454ccc084c080dd50020a4c2c2c603c6ea800cc94ccc070c0640044c8c94ccc088c0940084c926533301e301b30203754002264646464a66604c6052004264932999811180f98121baa003132325333028302b002149858dd7181480098129baa0031616375a604e002604e004604a00260426ea80045858c08c004c07cdd50028a99980e180d0008a999810180f9baa00514985858c074dd5002299980d180b980e1baa00513232323253330223025002149858dd6981180098118011bad3021001301d375400a2c2c603e002603e004603a002603a004603600260360046eb8c064004c064008dd7180b800980b8011bae30150013015002375c602600260260046eb8c044004c044008dd7180780098078011bae300d001300d002375c6016002600e6ea800c58dc3a40006e1d20025734ae7155ceaab9e5573eae815d0aba201" # noqa: E501
|
|
65
|
+
LEGACY_BEACON_POLICY_SCRIPT_HEX = "5911ed010000332323232323232322322323232322533300932533300a30060011323232533300d3370e900318079baa0011533300d3009300f3754602660206ea80045288010011809180998079baa004153300c4913c546869732072656465656d65722063616e206f6e6c79206265207573656420746f2072656769737465722074686520626561636f6e207363726970740016300c37540042646464646464646464a666026601c0142646464666600802864a66602e602600226eb8c074c068dd5001899299980c1809001099299980c980a980d9baa001132533301a3015301c375400226eb8c080c074dd5000801980f980e1baa001002301e301b37540080022a6603092012852656465656d6572206e6f7420757365642077697468206d696e74696e6720657865637574696f6e00163018375400460166038603a603a603a603a603a0026eb0c070004c070c070c060dd5180d801180d180d800980b1baa00b13232323333004014325333017301130193754006264a666030602860346ea80044c94ccc064c050c06cdd500089bae301f301c3754002006603c60366ea8004008c074c068dd50018008a9980ba4812852656465656d6572206e6f7420757365642077697468207374616b696e6720657865637574696f6e0016300b301c301d301d301d301d301d001375860380026038603860306ea8c06c008c068c06c004c058dd5005911119199800800801251222533301d00210011333003003302000232323232323232325333025001100913253330260011533023491364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e730016132533302700115330244901364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e73001615333027302a0011323232533302600e153330263301632330160014911a204441707020616464726573732077697468207374616b696e67003301549114426561636f6e206d75737420676f20746f2061200049010053330263375e01066e9520023302b375202897ae01533302630223028375400e29445280a50132323232323232323232323232323232323232323232323232533303f32325333041303c3043375400229444c8c94ccc10cc0fcc114dd50018992999822182018231baa00315333044330354912745787069726174696f6e206d757374206265203e3d20696e76616c69642d68657265616674657200337126eb4c128c11cdd500180089981aa481234d7573742075736520312d6d696e2065787069726174696f6e20696e74657276616c730030403370c002906054838a50002375a6092608c6ea800c00454cc10d240126696e76616c69642d68657265616674657220726571756972656420627574206e6f742073657400163044002304200133760608a608c608c0120562a66607e6605e92010f57726f6e6720626561636f6e5f6964003371e0580302a66607e6605e9201274f666665722061737365742063616e6e6f742062652073616d652061732061736b2061737365740033303f3375e01000e941288a99981f99817a491157726f6e6720706169725f626561636f6e003371e02c64646464646460706464660760020086607400200466072a66608a601200a291010100001005375c6096609800ca6660886010004291010100001002375c609260940046eb8c120004c110dd50049bae3046001304237540102a66607e6605e9211257726f6e67206f666665725f626561636f6e003371e020606466066911010100330330140121533303f3302f49011057726f6e672061736b5f626561636f6e003371e0146064660669110102003303300e00c1533303f3302f49011e737761705f70726963652064656e6f6d696e61746f72206e6f74203e20300030020041533303f3302f49011c737761705f7072696365206e756d657261746f72206e6f74203e203000300200513371290000008a5014a029405280a5014a0294058dd698221919191919192999822180398231baa304a304b002133049375000a660926ea000ccc124dd4000a5eb8054cc115241165554784f206861732077726f6e6720626561636f6e730016375a609200260920046eb4c11c004c11c008dd69822800999818011a5eb84101000081010000810100008103d8798000111919191919191919299199824980081b0991919192999826980818279baa30530041533304d0021533304d0031330523750016660a46ea0024cc148dd400399829199826a514c103d87a80004c0103d87980004bd700008008008806980718269baa30513052002300d304c375460a060a260a200266607601097ae10103d87980008103d87980008103d8798000111919191929919199828980101409982b199828800a6103d87a80004c0103d8798000330563330510044c0103d87a80004c0103d8798000330563330510034c0103d87a80004c0103d87980004bd700a999828980101109982b19982880326103d87a80004c0103d8798000330563330510014c0103d87a80004c0103d8798000330563330510034c0103d87a80004c0103d87980004bd700a999828980100e09982b19982880326103d87a80004c0103d8798000330563330510044c0103d87a80004c0103d8798000330563330510014c0103d87a80004c0103d87980004bd700a998292481165554784f206861732077726f6e6720626561636f6e730016304b375a60a600e6e3cdd71828803180898281baa305430550023010304f375460a600260a6004601c609a6ea8c14400454c8c8c8c8ccc134c0440344c94ccc138c128c140dd500089929919982800289982a9ba83007002330553750018660aa6ea0004cc154ccc140025300103d87a80004c0103d87980004bd700a99982800209982a9ba800e330553750600c004660aa6ea0004cc154ccc14002530103d87a80004c0103d87980004bd7009982a9ba800e330553750018660aa6ea0004cc154ccc140025300103d87a80004c0103d87980004bd7019b80009001375a60a860a26ea800458c8cc004004034894ccc14c004530103d87a8000132323253330523016375c60a800626090660ae6ea00052f5c026600a00a0046eb4c150008c15c008c15400454ccc1354ccc13400840045280a9998288060a99827249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161325333052001132323253330513371e0020482660ac6ea0c020008cc158dd40069982b1ba800b3305633305100a4c0103d87a80004c0103d87980004bd700a99982899b8f00101e133056375001e660ac6ea0c01c008cc158dd40059982b199828805260103d87a80004c0103d87980004bd700a998292481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60a40046eb4c148004c15003454ccc148c1540044c8c8c8c8c8c94ccc150cdc78018138a99982a19b8f00102113305937506016008660b26ea0c028008cc164dd40071982c99982a006a6103d87a80004c0103d87980004bd700a9982aa481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153330543371e0060422a6660a866e3c00409c4cc164dd418058011982c9ba8300a00433059375001c660b26660a801a980103d87a80004c0103d87980004bd700a9982aa481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533055491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60aa0086eb4c15400cdd718298019bad30530023055002305400d153304f4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016305400c1533304d0021533305100c153304e4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333051305400c13232533304f3371e6eb8c1440080884cc150dd418030009982a1ba800b330543750012660a866609e010980103d87a80004c0103d87980004bd700a998282481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a60a200260a60182a6609c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533304d0011533305100c153304e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333051305400c13232533304f3371e6eb8c1440080704cc150dd40069982a1ba83005001330543750012660a866609e010980103d87a80004c0103d87980004bd700a998282481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a60a200260a60182a6609c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153304e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016300401b3003020370000c6e0001cdc7804180518249baa304d304e002375a609800260980046eb4c128004c128010dd698240019bab3044003375c60840046e212000371e91100375a608260840046eb4c100004c0f0dd5181f80198171981e9ba90073303d375200a97ae0302d3303c3752018660786ea40292f5c0607a0046eb8c0ec004c0ec008dd7181c800981c8011bae30370013037002375c606a002606a0046eb8c0cc004c0cc008dd7181880098188011bae302f001302f002375c605a00260526ea94ccc098c080c0a0dd5005099190012999813981198149baa001132323232323232323232323232323232323232323232533304130440021323232498c94ccc100c0f00044c8c94ccc118c12400852616375a608e00260866ea801054ccc100c0ec00454ccc110c10cdd50020a4c2c2c60826ea800cc94ccc0fcc0ec0044c8c94ccc114c1200084c9265333041303d30433754002264646464a6660926098004264932999822982098239baa00313232533304b304e002149858dd7182600098241baa0031616375a60940026094004609000260886ea80045858c118004c108dd50028a99981f981d0008a99982198211baa00514985858c100dd5002299981e981c981f9baa00513232323253330453048002149858dd6982300098230011bad30440013040375400a2c2c6084002608400460800026080004607c002607c0046eb8c0f0004c0f0008dd7181d000981d0011bae30380013038002375c606c002606c0046eb8c0d0004c0d0008dd7181900098190011bae30300013030002375c605c00260546ea800458c0b0c0a4dd50050a99813a48125416c6c207377617020646174756d73206d75737420626520696e6c696e6520646174756d73001614a02940c0ac00cc0a800cc0a400c54cc0912401364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e73001630290013028001325333021301c30233754002297adef6c6013756604e60486ea8004c8cc004004018894ccc098004530103d87a8000132323253330253371e0246eb8c09c00c4c06ccc0a8dd3000a5eb804cc014014008dd598138011815001181400098129813001181200098101baa30230043022302300237566042002604200260386ea8c07c00888cdcb001000912999809199809000a504a22a660260042002200244a666022666022002941288a998090010b080091119199800800802001911299980c00108008999801801980d80119802180d00100091b92001223371400400246464a66601c601260206ea80044c010cc04cc050c044dd5000a5eb80530103d87a80003013301037546026602860206ea8008c038dd50009ba548000c02cdd50030a4c26cac64a66601060080022a66601860166ea8014526161533300830030011533300c300b375400a2930b0a99980418010008a99980618059baa00514985858c024dd50021b8748010dc3a40046e1d2000375c002ae695ce2ab9d5573caae7d5d02ba157449811e581c1d6cff26bcab91d2061aad0bd259cbb7d76d25ced2eeaed5926a42ad0001" # noqa: E501
|
|
58
66
|
|
|
59
|
-
# v2 one-way
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
# validator -> SWAP_VALIDATOR_HASH, beacon policy -> BEACON_POLICY_ID). These are
|
|
67
|
-
# attached to the witness set by default; a builder caller may instead supply an
|
|
68
|
-
# on-chain reference-script UTxO per script (whose output carries the matching
|
|
69
|
-
# script) to keep the script off the witness set -- see the build_* methods.
|
|
70
|
-
SWAP_VALIDATOR_SCRIPT_HEX = "591193010000323232323232323223232322322533300832323232323253233300f300c007132323232323232323253330183016301a3754010264a666032602c60366ea80044c94ccc068cc03d241225374616b696e672063726564656e7469616c20646964206e6f7420617070726f7665003330103020301d375460406042603a6ea8c080c074dd5001002001899807a4812c426561636f6e20736372697074206e6f74206578656375746564206173206d696e74696e6720706f6c6963790033301a3232533302000114a22940c94ccc070c068c078dd50008a5eb7bdb1804dd59811180f9baa001323300100100222533302100114c0103d87a8000132323253330203371e00e6eb8c08800c4c050cc094dd3000a5eb804cc014014008dd598110011812801181180099198008008039129998100008a5eb7bdb1804c8c8c8c94ccc080c048008400c4cc094cdd81ba9002374c0026600c00c0066eacc08800cdd7181000118120011811000a504a22940dd7180f980e1baa018163300b006301e301b37540102c6eb0c074c078c078008dd5980e000980e180e0011bab301a001301a301a301a301a0023758603000260286ea8c05c008c058c05c004c048dd50040a9998079806803899191919191919299980b180a180c1baa0061325333017301430193754002264a6660306601a921225374616b696e672063726564656e7469616c20646964206e6f7420617070726f76650033300e301e301b3754603c603e60366ea8c078c06cdd5001002001899806a4812c426561636f6e20736372697074206e6f74206578656375746564206173207374616b696e6720736372697074003300f004300c3301d3374a90011980e9ba90014bd7025eb805281bae301d301a375402c2c66012008603860326ea801858dd6180d980e180e0011bab301a001301a301a301a301a301a301a0023758603000260286ea8c05c008c058c05c004c048dd5004099191919191919299980b180a180c1baa0061323253330183015301a37540022646464646464646464646666666666666646464444444444444464646464a66606c6464a666070606c60746ea800452889919299981d181b981e1baa003132533303b3038303d3754006266030920127696e76616c69642d686572656166746572206d757374206265203c3d2065787069726174696f6e00337126eb4c104c0f8dd50018008011bad3040303d37540060022a66074920126696e76616c69642d68657265616674657220726571756972656420627574206e6f74207365740016303b00230390013376000a02026464646464646464a66607ca66607ca66607c606002829444c0c004452889980da49194164612063616e206f6e6c79206265206465706f73697465640033712900019b810030061533303e33033491264661696c3a206f666665725f74616b656e202a207072696365203c3d2061736b5f676976656e003371266e08004028cdc1001004899819a4812b5468652061736b2061737365742063616e6e6f742062652074616b656e2066726f6d207468652073776170003371290000010a5016337026eb4c10c01cdd6982180219b81375a60840046eb4c108014dd6982098210009820800991980080081311299981f8008a9981e248123436f72726573706f6e64696e672073776170206f7574707574206e6f7420666f756e6400161323232323253330403375e01c608c608e0042a66608066ebc06400c4ccccccccc07000406005c05805405004c0480444cc01c01c0144cc01c01c014dd5982280098228011821800981f9baa30420023042001375a607c607e002607c00266666666602402201c01a01801601401201000e2c6eb4c0ecc0f0008dd6981d000981b1baa0033374a90021981b98131981b9ba900a3303737520126606e6ea4020cc0dcdd48039981b9ba900633037375200a6606e6ea4010cc0dcdd48019981b8011981b98131981b80e25eb80cc0dc0052f5c097ae0222222222323232323232325333034300730363754607460760042660726ea0014cc0e4dd40019981c9ba80014bd700a9981aa49165554784f206861732077726f6e6720626561636f6e730016375a607200260720046eb4c0dc004c0dc008dd6981a80099980600525eb84101000081010000810100008103d879800011191919191919191929919981c980080a099191919299981e9808181f9baa30430041533303d0021533303d0031330423750016660846ea0024cc108dd40039982119981ea514c103d87a80004c0103d87980004bd7000080080088069807181e9baa30413042002300d303c375460806082608200266602e01097ae10103d87980008103d87980008103d8798000111919191929919199820980100d899823199820800a6103d87a80004c0103d8798000330463330410044c0103d87a80004c0103d8798000330463330410034c0103d87a80004c0103d87980004bd700a999820980100c09982319982080326103d87a80004c0103d8798000330463330410014c0103d87a80004c0103d8798000330463330410034c0103d87a80004c0103d87980004bd700a999820980100a89982319982080326103d87a80004c0103d8798000330463330410044c0103d87a80004c0103d8798000330463330410014c0103d87a80004c0103d87980004bd700a998212481165554784f206861732077726f6e6720626561636f6e730016303e375a608600e6e3cdd71820803180898201baa304430450023010303f375460860026086004601c607a6ea8c10400454c8c8c8c8ccc0f4c0bc0344c94ccc0f8c0ecc100dd50008992991998200028998229ba830070023304537500186608a6ea0004cc114ccc100025300103d87a80004c0103d87980004bd700a9998200020998229ba800e330453750600c0046608a6ea0004cc114ccc10002530103d87a80004c0103d87980004bd700998229ba800e3304537500186608a6ea0004cc114ccc100025300103d87a80004c0103d87980004bd7019b80009001375a608860826ea800458c8cc004004034894ccc10c004530103d87a8000132323253330423034375c60880062606c6608e6ea00052f5c026600a00a0046eb4c110008c11c008c11400454ccc0f54ccc0f400840045280a9998208060a9981f249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161325333042001132323253330413371e00203226608c6ea0c020008cc118dd4006998231ba800b3304633304100a4c0103d87a80004c0103d87980004bd700a99982099b8f001016133046375001e6608c6ea0c01c008cc118dd400599823199820805260103d87a80004c0103d87980004bd700a998212481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60840046eb4c108004c11003454ccc108c1140044c8c8c8c8c8c94ccc110cdc780180e0a99982219b8f00101913304937506016008660926ea0c028008cc124dd400719824999822006a6103d87a80004c0103d87980004bd700a99822a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153330443371e0060322a66608866e3c0040704cc124dd41805801198249ba8300a00433049375001c6609266608801a980103d87a80004c0103d87980004bd700a99822a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533045491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c608a0086eb4c11400cdd718218019bad30430023045002304400d153303f4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016304400c1533303d0021533304100c153303e4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333041304400c13232533303f3371e6eb8c10400805c4cc110dd41803000998221ba800b3304437500126608866607e010980103d87a80004c0103d87980004bd700a998202481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a608200260860182a6607c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533303d0011533304100c153303e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333041304400c13232533303f3371e6eb8c1040080504cc110dd4006998221ba830050013304437500126608866607e010980103d87a80004c0103d87980004bd700a998202481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a608200260860182a6607c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153303e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001630040123003014370000c6e0001cdc78041805181c9baa303d303e002375a607800260780046eb4c0e8004c0e8010dd6981c0019bab3034003375c60640046e2120002253330253330250014a094454cc098008584004888c8ccc00400401000c8894ccc0b000840044ccc00c00cc0bc008cc010c0b8008004dd59814181480519192999812181118131baa0011301833029302a3027375400297ae014c103d87a800030293026375460526054604c6ea8038c090dd500698140051bae3028009375c60500106eb8c0a001cdd718140031bae3028005375c60500086eb8c0a000cdd71814001181400098141814981480098140009813800981300098128009812000981180098110009810800980e1baa018301b3754603c603e60366ea8c078c06cdd50008b19805002800980e180c9baa00616301b301c301c301c301c301c00237586034002603460340046eb0c060004c050dd5180b801180b180b80098091baa008371e9110022323300100100322533301500114c0103d87a80001323253330133375e6032602c6ea80080144c01ccc0600092f5c02660080080026032004602e0026e95200022533300d33300d0014a094454cc03800840044004888c8c94ccc03cc034004528899299980818068010992999808980718099baa0011325333012300f30143754002264646600200201044a66603200229404c94ccc058cdc79bae301c00200414a226600600600260380026eb8c060c054dd5000801980b980a1baa00100230163013375400600226600c008602a60246ea8008c040dd50009809980a18081baa00322323300100100322533301100114a0264a66601c66ebc010c040c050008528899801801800980a00098051baa00314984d958c94ccc01cc01000454ccc02cc028dd50010a4c2c2a66600e600a0022a66601660146ea800852616153330073370e90020008a99980598051baa00214985858c020dd5000a999802180098031baa003132323232323232323232323232323232323232323232533301e30210021323232498c94ccc074c0680044c8c94ccc08cc09800852616375a604800260406ea801054ccc074c06c00454ccc084c080dd50020a4c2c2c603c6ea800cc94ccc070c0640044c8c94ccc088c0940084c926533301e301b30203754002264646464a66604c6052004264932999811180f98121baa003132325333028302b002149858dd7181480098129baa0031616375a604e002604e004604a00260426ea80045858c08c004c07cdd50028a99980e180d0008a999810180f9baa00514985858c074dd5002299980d180b980e1baa00513232323253330223025002149858dd6981180098118011bad3021001301d375400a2c2c603e002603e004603a002603a004603600260360046eb8c064004c064008dd7180b800980b8011bae30150013015002375c602600260260046eb8c044004c044008dd7180780098078011bae300d001300d002375c6016002600e6ea800c58dc3a40006e1d20025734ae7155ceaab9e5573eae815d0aba201" # noqa: E501
|
|
71
|
-
BEACON_POLICY_SCRIPT_HEX = "5911ed010000332323232323232322322323232322533300932533300a30060011323232533300d3370e900318079baa0011533300d3009300f3754602660206ea80045288010011809180998079baa004153300c4913c546869732072656465656d65722063616e206f6e6c79206265207573656420746f2072656769737465722074686520626561636f6e207363726970740016300c37540042646464646464646464a666026601c0142646464666600802864a66602e602600226eb8c074c068dd5001899299980c1809001099299980c980a980d9baa001132533301a3015301c375400226eb8c080c074dd5000801980f980e1baa001002301e301b37540080022a6603092012852656465656d6572206e6f7420757365642077697468206d696e74696e6720657865637574696f6e00163018375400460166038603a603a603a603a603a0026eb0c070004c070c070c060dd5180d801180d180d800980b1baa00b13232323333004014325333017301130193754006264a666030602860346ea80044c94ccc064c050c06cdd500089bae301f301c3754002006603c60366ea8004008c074c068dd50018008a9980ba4812852656465656d6572206e6f7420757365642077697468207374616b696e6720657865637574696f6e0016300b301c301d301d301d301d301d001375860380026038603860306ea8c06c008c068c06c004c058dd5005911119199800800801251222533301d00210011333003003302000232323232323232325333025001100913253330260011533023491364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e730016132533302700115330244901364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e73001615333027302a0011323232533302600e153330263301632330160014911a204441707020616464726573732077697468207374616b696e67003301549114426561636f6e206d75737420676f20746f2061200049010053330263375e01066e9520023302b375202897ae01533302630223028375400e29445280a50132323232323232323232323232323232323232323232323232533303f32325333041303c3043375400229444c8c94ccc10cc0fcc114dd50018992999822182018231baa00315333044330354912745787069726174696f6e206d757374206265203e3d20696e76616c69642d68657265616674657200337126eb4c128c11cdd500180089981aa481234d7573742075736520312d6d696e2065787069726174696f6e20696e74657276616c730030403370c002906054838a50002375a6092608c6ea800c00454cc10d240126696e76616c69642d68657265616674657220726571756972656420627574206e6f742073657400163044002304200133760608a608c608c0120562a66607e6605e92010f57726f6e6720626561636f6e5f6964003371e0580302a66607e6605e9201274f666665722061737365742063616e6e6f742062652073616d652061732061736b2061737365740033303f3375e01000e941288a99981f99817a491157726f6e6720706169725f626561636f6e003371e02c64646464646460706464660760020086607400200466072a66608a601200a291010100001005375c6096609800ca6660886010004291010100001002375c609260940046eb8c120004c110dd50049bae3046001304237540102a66607e6605e9211257726f6e67206f666665725f626561636f6e003371e020606466066911010100330330140121533303f3302f49011057726f6e672061736b5f626561636f6e003371e0146064660669110102003303300e00c1533303f3302f49011e737761705f70726963652064656e6f6d696e61746f72206e6f74203e20300030020041533303f3302f49011c737761705f7072696365206e756d657261746f72206e6f74203e203000300200513371290000008a5014a029405280a5014a0294058dd698221919191919192999822180398231baa304a304b002133049375000a660926ea000ccc124dd4000a5eb8054cc115241165554784f206861732077726f6e6720626561636f6e730016375a609200260920046eb4c11c004c11c008dd69822800999818011a5eb84101000081010000810100008103d8798000111919191919191919299199824980081b0991919192999826980818279baa30530041533304d0021533304d0031330523750016660a46ea0024cc148dd400399829199826a514c103d87a80004c0103d87980004bd700008008008806980718269baa30513052002300d304c375460a060a260a200266607601097ae10103d87980008103d87980008103d8798000111919191929919199828980101409982b199828800a6103d87a80004c0103d8798000330563330510044c0103d87a80004c0103d8798000330563330510034c0103d87a80004c0103d87980004bd700a999828980101109982b19982880326103d87a80004c0103d8798000330563330510014c0103d87a80004c0103d8798000330563330510034c0103d87a80004c0103d87980004bd700a999828980100e09982b19982880326103d87a80004c0103d8798000330563330510044c0103d87a80004c0103d8798000330563330510014c0103d87a80004c0103d87980004bd700a998292481165554784f206861732077726f6e6720626561636f6e730016304b375a60a600e6e3cdd71828803180898281baa305430550023010304f375460a600260a6004601c609a6ea8c14400454c8c8c8c8ccc134c0440344c94ccc138c128c140dd500089929919982800289982a9ba83007002330553750018660aa6ea0004cc154ccc140025300103d87a80004c0103d87980004bd700a99982800209982a9ba800e330553750600c004660aa6ea0004cc154ccc14002530103d87a80004c0103d87980004bd7009982a9ba800e330553750018660aa6ea0004cc154ccc140025300103d87a80004c0103d87980004bd7019b80009001375a60a860a26ea800458c8cc004004034894ccc14c004530103d87a8000132323253330523016375c60a800626090660ae6ea00052f5c026600a00a0046eb4c150008c15c008c15400454ccc1354ccc13400840045280a9998288060a99827249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161325333052001132323253330513371e0020482660ac6ea0c020008cc158dd40069982b1ba800b3305633305100a4c0103d87a80004c0103d87980004bd700a99982899b8f00101e133056375001e660ac6ea0c01c008cc158dd40059982b199828805260103d87a80004c0103d87980004bd700a998292481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60a40046eb4c148004c15003454ccc148c1540044c8c8c8c8c8c94ccc150cdc78018138a99982a19b8f00102113305937506016008660b26ea0c028008cc164dd40071982c99982a006a6103d87a80004c0103d87980004bd700a9982aa481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153330543371e0060422a6660a866e3c00409c4cc164dd418058011982c9ba8300a00433059375001c660b26660a801a980103d87a80004c0103d87980004bd700a9982aa481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533055491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375c60aa0086eb4c15400cdd718298019bad30530023055002305400d153304f4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016305400c1533304d0021533305100c153304e4901284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333051305400c13232533304f3371e6eb8c1440080884cc150dd418030009982a1ba800b330543750012660a866609e010980103d87a80004c0103d87980004bd700a998282481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a60a200260a60182a6609c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00161533304d0011533305100c153304e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001615333051305400c13232533304f3371e6eb8c1440080704cc150dd40069982a1ba83005001330543750012660a866609e010980103d87a80004c0103d87980004bd700a998282481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016375a60a200260a60182a6609c921284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016153304e491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f0016300401b3003020370000c6e0001cdc7804180518249baa304d304e002375a609800260980046eb4c128004c128010dd698240019bab3044003375c60840046e212000371e91100375a608260840046eb4c100004c0f0dd5181f80198171981e9ba90073303d375200a97ae0302d3303c3752018660786ea40292f5c0607a0046eb8c0ec004c0ec008dd7181c800981c8011bae30370013037002375c606a002606a0046eb8c0cc004c0cc008dd7181880098188011bae302f001302f002375c605a00260526ea94ccc098c080c0a0dd5005099190012999813981198149baa001132323232323232323232323232323232323232323232533304130440021323232498c94ccc100c0f00044c8c94ccc118c12400852616375a608e00260866ea801054ccc100c0ec00454ccc110c10cdd50020a4c2c2c60826ea800cc94ccc0fcc0ec0044c8c94ccc114c1200084c9265333041303d30433754002264646464a6660926098004264932999822982098239baa00313232533304b304e002149858dd7182600098241baa0031616375a60940026094004609000260886ea80045858c118004c108dd50028a99981f981d0008a99982198211baa00514985858c100dd5002299981e981c981f9baa00513232323253330453048002149858dd6982300098230011bad30440013040375400a2c2c6084002608400460800026080004607c002607c0046eb8c0f0004c0f0008dd7181d000981d0011bae30380013038002375c606c002606c0046eb8c0d0004c0d0008dd7181900098190011bae30300013030002375c605c00260546ea800458c0b0c0a4dd50050a99813a48125416c6c207377617020646174756d73206d75737420626520696e6c696e6520646174756d73001614a02940c0ac00cc0a800cc0a400c54cc0912401364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e73001630290013028001325333021301c30233754002297adef6c6013756604e60486ea8004c8cc004004018894ccc098004530103d87a8000132323253330253371e0246eb8c09c00c4c06ccc0a8dd3000a5eb804cc014014008dd598138011815001181400098129813001181200098101baa30230043022302300237566042002604200260386ea8c07c00888cdcb001000912999809199809000a504a22a660260042002200244a666022666022002941288a998090010b080091119199800800802001911299980c00108008999801801980d80119802180d00100091b92001223371400400246464a66601c601260206ea80044c010cc04cc050c044dd5000a5eb80530103d87a80003013301037546026602860206ea8008c038dd50009ba548000c02cdd50030a4c26cac64a66601060080022a66601860166ea8014526161533300830030011533300c300b375400a2930b0a99980418010008a99980618059baa00514985858c024dd50021b8748010dc3a40046e1d2000375c002ae695ce2ab9d5573caae7d5d02ba157449811e581c1d6cff26bcab91d2061aad0bd259cbb7d76d25ced2eeaed5926a42ad0001" # noqa: E501
|
|
67
|
+
# The official Cardano-Swaps v2 one-way contracts (Plutus V3, release v2.0.0).
|
|
68
|
+
# The beacon policy is parameterised by ``dapp_hash`` (= the swap validator
|
|
69
|
+
# hash); the script below has it applied, so it hashes to BEACON_POLICY_ID.
|
|
70
|
+
SWAP_VALIDATOR_HASH = "e5a22e4c31db20bce1c8b081f8e4009683990a33157947d75030deb8"
|
|
71
|
+
BEACON_POLICY_ID = "274765b4c626c28d18752176b59c0ff63db56b8305c1daa49c9879fe"
|
|
72
|
+
SWAP_VALIDATOR_SCRIPT_HEX = "590d8e01010029800aba2aba1aba0aab9faab9eaab9dab9cab9a4888888896600264653001300900198049805000cdc3a400530090024888966002600460126ea800e2653001300e00198071807800cdc3a400091119912cc004c00c0062b3001301037540150028b20228acc004c0200062b3001301037540150028b20228acc004cdc3a400800315980098081baa00a80145901145900d201a403433001374a9000489660033001001a50a514035153300e00210018800a01a98069baa008911919800800801912cc00400629422b30013375e0066022602a00314a31330020023016001403c80992222332259800980380244c8c8cc89660026016602e6ea80062b3001300b3017375401915980099804a481225374616b696e672063726564656e7469616c20646964206e6f7420617070726f7665009800980d980c1baa301b301c30183754603660306ea80066eacc06c00a6eb0c06cc070c07000900544cc0252412c426561636f6e20736372697074206e6f74206578656375746564206173206d696e74696e6720706f6c696379003232330010013756603a00a44b30010018a508acc004cdc78019bae301a301e0018a51899801001180f800a03040706eb8c06cc060dd5180d980c1baa00c8a50405516405516405460346034002660086eb0c06400802cc064c064c064c064004c050dd5005c5660026018009132323322598009805980b9baa0018acc004c02cc05cdd5006456600266012921225374616b696e672063726564656e7469616c20646964206e6f7420617070726f7665009800980d980c1baa301b301c30183754603660306ea80060053758603660386038006802a2660129212c426561636f6e20736372697074206e6f74206578656375746564206173207374616b696e672073637269707400330070023374a90011980d180d980c1baa301b3018375401897ae08a5040551640551640546eacc064004cc010dd6180c801005980c980c980c980c980c980c800980a1baa00b89919912cc004c028c058dd5000c4c9660026016602e6ea80323300130183754603660306ea803244b30010018a5eb7bdb182264664464660020026600c00c604400a44b300100189981099bb037520086ea000d2f5bded8c113233225980099b910070028acc004cdc780380144c8cc094cdd81ba9008375000e0046eb4c08800e26604866ec0dd48039ba8006004407d13302400333005005001407c6eb8c07c004c090008c0880050201bae301a001375a6036002603a00280da44b30019800800d28528a02e8a9980c0010b4400501748c070c0740066e3d221009bab301b301c001992cc004c044c060dd5000c4c02ccc06cc070c064dd5000a5eb82298103d87a80004058603660306ea8c06cc070c060dd5180d980e180e180e180e180e001cc06c0052222222233223232323232323298009816000cc0b0c0b4c0b40066eb8c0b00466eb8c0b002644444444464b3001330194901165554784f206861732077726f6e6720626561636f6e73003375e606c002604a6606a6e98c048cc0d4cdd81ba90084c101010033035337606ea401530101010033035337606ea40093010101004bd6f7b63025eb8226530010019bab30373038002a5eb84101000081010000810100002002222598008014400633001003981d0014cc8a60026eb8c0dc00a6eacc0e000a6eb4c0ec0066eb4c0ecc0f00066eb4c0ec00d22222598009810802c4c9660026062607a6ea8006264b30015980099b8f00701389811809452820788998209ba833700006002660826ea0014cc104dd419b800040014bd704566002b30013371e00e0211302300f8a5040f11330413750006660826ea0cdc0002800998209ba83370000800297ae08998209ba800333041375000a660826ea0cdc0002000a5eb8103c2078375a6082607c6ea80062c81d8c8c8cc0040040188966002003003899192cc004cdc8a441000018acc004c0980062606866088608400497ae0802a07e8998020021823001a07e375c608000260860028208530103d87a80008acc0056600266e3c014046266e3c01403a294103a44c96600200b0018992cc0040062646644b30013371e00402b133044375066e00018004cc110dd4004198221ba80074bd70456600266e3c00804a2660886ea0018cc110dd419b8000800133044375000e97ae08a99820249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001640fc81f8dd7181f8009bad304000130420068acc004c10c006266453001375c6080005375a6082005375c6080003375a608200291112cc0056600266e3c010062266e3c008056294104244cc11cdd419b8000900333047375066e0002c004cc11cdd400525eb822b30015980099b8f004015899b8f0020188a504109133047375066e00024004cc11cdd419b8000b00333047375001497ae08a99821a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001641088210608400c608400300241008200c10801503f0a9981da481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168acc004cdc7802808c4c96600200b0018acc004c108016264b30013371e6eb8c0f800404a2660826ea0cdc00019bad303f00133041375000a660826ea00112f5c1153303d491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001640f0608200b00140fc81f854cc0ed241284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168acc004cdc780280744c96600200b0018acc004c108016264b30013371e6eb8c0f800403e2660826ea000ccc104dd419b80005375a607e002660826ea00112f5c1153303d491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001640f0608200b00140fc81f854cc0ed241284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168a9981da49284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001640e881d103a2074181c801181d000a00640dd1640c0653001001805488cc0dc008cc0dcdd3000a5eb810011112cc00400a266002980103d87a80004bd6f7b63044c8cc896600266e4403800a2b30013371e01c005133004302a3303a30380034bd70000c4cc011300103d87a800000540d5198008034006446600c0046607800a00280310351bae3035001303a003303800240d9375c605800f375c605800d375c605800b375c6058009375c6058007375c6058004911111111112cc004c8c966002605c606a6ea80062946264b3001302a3036375400313301d490127696e76616c69642d686572656166746572206d757374206265203c3d2065787069726174696f6e00337126eb4c0e8c0dcdd50009bad303a30373754005153303549126696e76616c69642d68657265616674657220726571756972656420627574206e6f7420736574001640d0607260740048198c0e0004cc0d8028cc0d80592f5c11332233223259800acc00566002603a01714a31301d00840d914a313301f491194164612063616e206f6e6c79206265206465706f73697465640033712900019b81375a6078607a0046eb4c0f0c0f400d036456600266054921264661696c3a206f666665725f74616b656e202a207072696365203c3d2061736b5f676976656e003371266e08cdc09bad303c005375a60780086eb4c0f0c0e4dd500819b82001375a603c60726ea80422660549212b5468652061736b2061737365742063616e6e6f742062652074616b656e2066726f6d20746865207377617000337129000000c528206c8b206c337026eb4c0ec004dd6981d801181d001181d000cc00405e013008803401600900380140050071919198008009bac30390212259800800c54cc0d5240123436f72726573706f6e64696e672073776170206f7574707574206e6f7420666f756e6400168992cc0056600266ebc064c0ecc0e0dd5000c56600266ebc010c0ecc0f0c0f0c0e0dd5000c5660026056606e6ea8c0ecc0f0c0f0c0f0c0e0dd5000c5284528a06a8a5040d514a081aa330013756603a60706ea800601b00c8054026011007803401500b44cc00c00cc0f0009035181d000a0703374a90021981b18131981b1ba90093303637520106606c6ea4018cc0d8dd48029981b1ba90043303637520066606c6ea4008cc0d8dd48009981b0059981b18131981b014a5eb80cc0d80292f5c097ae08b2062181600098158009815000981480098140009813800981300118120041803803a2c80a8c05cdd5180d180d980b9baa301a3017375400316405060326032002660066eb0c060004028c050dd5005a022404444646600200200644b30010018a6103d87a80008992cc004cdd7980d180b9baa001004898049980c800a5eb82266006006603600480a0c064005017111192cc004c038c054dd5000c528c4c9660026014602c6ea8006264b3001300b3017375400313232330010010062259800800c528456600266e3cdd7180f000801c528c4cc008008c07c0050182038375c603660306ea800626600e00a00280a8c068c05cdd5000c52820283019301637540028098c060c064c054dd50018c034dd50040c028dd5001c590070c024004c010dd5004c52689b2b200201" # noqa: E501
|
|
73
|
+
BEACON_POLICY_SCRIPT_HEX = "590fff0101003229800aba2aba1aba0aab9faab9eaab9dab9cab9a9bae002488888888966002646465300130073754003370e90004c02c00e601600491112cc004cdc3a400c0091323259800980298069baa301130120028a518a998062481365075626c6973682063616e206f6e6c79206265207573656420746f2072656769737465722074686520626561636f6e207363726970740016402c6eb4c040004c030dd5002c660026e1d20029ba54800244b30010018a5eb7bdb182264664464660020026600c00c602c00a44b300100189980a99bb037520086ea000d2f5bded8c113233225980099b910070028acc004cdc780380144c8cc064cdd81ba9008375000e0046eb4c05800e26603066ec0dd48039ba8006004404d13301800333005005001404c6eb8c04c004c060008c0580050141bae300e001375a601e0026022002807a44b30019800800d28528a0168a998060010b4400500b489660033001001a50a51402d153300c00210018800a016488888c8cc8966002601601913232329800809cdd7180d180b9baa0109802180d000cdd5980d0014dd6180d180d800cdd6180d001a00a301a0013019301930193019001301830183014375401515980099b87480100322646466453001014acc004c030c05cdd5000c4dd7180d980c1baa0018a9980b2491e5769746864726177206d7573742062652066726f6d206120736372697074001640553005301b0029bab301b0039bac301b301c0029bac301b004401860340026032602c6ea803cc064c064c064c064004c060c060c050dd50054590112022222222329800800c00a94698103d87a800040044444b3001003880144cc88c8cc8a6002604a005302400198121812800cdd598120012444530013028004981418148024c8c8cc00400400c8966002003003899192cc004cdc880b800c56600266e3c05c00626eacc0a800a00a813a266008008605c0068138dd718140009815800a05214bd6f7b630454cc08d2401364f6e652d776179207377617073206d75737420686176652065786163746c79207468726565206b696e6473206f6620626561636f6e730016914c00403e015002800a01e4888896600200713300101000f8992cc00400600713259800800c0122b300130300018991919802acc0040522b30013301e49012e426561636f6e206d75737420676f20746f206120204441707020616464726573732077697468207374616b696e67005980099baf00c3374a9001198181ba901c4bd704566002604a605a6ea802e2946294102b452820568acc004cc0792401225374616b696e672063726564656e7469616c20646964206e6f7420617070726f76650059800cc00400694294502b4528c4c9660026046605c6ea80062946264b30013027302f375400313259800981418181baa001899191980080080e912cc00400629422b30013371e6eb8c0dc00400e2946266004004607000281890351bae3034303137540031323300100101d2259800800c528456600266ebc00cc0c8c0d80062946266004004606e0028181034205c30333030375400314a08168c0c8c0bcdd5000a05830313032302e37546062605c6ea804902b45660026603c920123537761702063616e6e6f7420686f6c642061207265666572656e6365207363726970740059800981298169baa0088a508a5140ad13232323232323232329800981d000cdd7181d0044dd7181d003cdd7181d0034dd7181d002cdd7181d0024dd7181d001cdd7181d001244444444b3001323259800981a98201baa0018a518992cc004c0e4c104dd5000c4c9660026606892012745787069726174696f6e206d757374206265203e3d20696e76616c69642d68657265616674657200337126eb4c118c10cdd5001000c4cc0d1241234d7573742075736520312d6d696e2065787069726174696f6e20696e74657276616c7300303a3370c00290605483c5282080375a608a60846ea800a2a66080920126696e76616c69642d68657265616674657220726571756972656420627574206e6f7420736574001640fc6088608a00481f0c10c004cc104c108c10cc10c024cc1040ad2f5c115980099817a4810f57726f6e6720626561636f6e5f6964003371e0586eb8c1080462b30013302f4901274f666665722061737365742063616e6e6f742062652073616d652061732061736b20617373657400980099baf303233041375200c660826ea40152f5c06064660826ea400ccc104dd480125eb8294294503c45660026605e92011157726f6e6720706169725f626561636f6e003371e00e6e48dd999ba548010cc104dd4803198209ba9005330413752006660826ea40092f5c115980099817a4811257726f6e67206f666665725f626561636f6e003371e0086e48dd99819198209ba900633041375200a97ae08acc004cc0bd24011057726f6e672061736b5f626561636f6e003371e0026e48dd999ba548008cc104dd4801998209ba90024bd7045660026605e9211e737761705f70726963652064656e6f6d696e61746f72206e6f74203e2030003371090001bad30423043303f375401115980099817a491c737761705f7072696365206e756d657261746f72206e6f74203e2030003371090001bad3042303f375401113259800998182490d496e76616c696420617373657400598009800803c4c00401a294503d45660026606092010d496e76616c69642061737365740059800980080244c00400e294503d44cdc4a40006eb4c10cc96600266064921165554784f206861732077726f6e6720626561636f6e73003375e60880026068660866e98c0c0cc10ccdd81ba90094c101010033043337606ea401930101010033043337606ea400d3010101004bd6f7b63025eb8226530010019bab30453046002a5eb8410100008101000081010000200222259800801440063300100398240014cc8a60026eb8c11400a6eacc11800a6eb4c1240066eb4c124c1280066eb4c12400d22222598009806002c4c966002608660966ea8006264b30015980099b8f00701489807009c52820948998279ba8337000060026609e6ea0014cc13cdd419b800040014bd704566002b30013371e00e0231300e0108a50412913304f37500066609e6ea0cdc0002800998279ba83370000800297ae08998279ba80033304f375000a6609e6ea0cdc0002000a5eb8104a2094375a609e60986ea80062c8248c8c8cc0040040188966002003003899192cc004cdc8a441000018acc004c04400626086660a460a000497ae0802a09a899802002182a001a09a375c609c00260a20028278530103d87a80008acc0056600266e3c01404a266e3c01403e294104844c96600200b0018992cc0040062646644b30013371e00402d133052375066e00018004cc148dd4004198291ba80074bd70456600266e3c00804e2660a46ea0018cc148dd419b8000800133052375000e97ae08a99827249284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001641348268dd718268009bad304e00130500068acc004c144006266453001375c609c005375a609e005375c609c003375a609e00291112cc0056600266e3c010066266e3c00805a294105044cc154dd419b8000900333055375066e0002c004cc154dd400525eb822b30015980099b8f004016899b8f0020198a504141133055375066e00024004cc154dd419b8000b00333055375001497ae08a99828a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00164140828060a000c60a000300241388270c14001504d0a99824a481284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168acc004cdc780280944c96600200b0018acc004c140016264b30013371e6eb8c13000404e26609e6ea0cdc00019bad304d0013304f375000a6609e6ea00112f5c1153304b491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00164128609e00b0014134826854cc125241284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168acc004cdc7802807c4c96600200b0018acc004c140016264b30013371e6eb8c13000404226609e6ea000ccc13cdd419b80005375a609a0026609e6ea00112f5c1153304b491284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00164128609e00b0014134826854cc125241284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f00168a99824a49284e6f2065787472616e656f75732061737365747320616c6c6f77656420696e20746865205554784f001641208241048209018238011824000a00641151640f865300100180ec88cc114008cc114dd3000a5eb810011112cc00400a266002980103d87a80004bd6f7b63044c8cc896600266e440cc00a2b30013371e06600513300430393304830460034bd70000c4cc011300103d87a8000005410d198008034006446600c0046609400a00280310431bae304300130480033046002411114a081ea294103d1b8f489008a5040f114a081e2294103c452820788a5040f114a081e2294103c45903c0c0e8004c0e4004c0e0004c0dc004c0d8004c0d4004c0d0004c0cc004c0b8dd5001452820568a5040ad14a0815a294102b2cc0040062017101340acb30013375e98103d87a80003030303130313031303130313031303130313031302d37540031980099baf00a012a50a5140a914a081516600266e1d2004302b375400f1323259800981298169baa002899191919191919191919194c004c0f00066eb8c0f002e6eb8c0f002a6eb8c0f00266eb8c0f00226eb8c0f001e6eb8c0f001a6eb8c0f00166eb8c0f0012607800491111111112cc004c11c02e264b3001303b30433754003132323322598009826001c4cc89660026082003132598009827800c4c966002608660966ea8006264646644b300130540038044590511bad3051001375c60a200460a200260986ea80062c8248c1380062c8260c128dd50044566002607c00315980098251baa00880145904b459047208e132598009820000c4c8c966002609e00501e8b2098375a609a00260926ea80422b3001303d0018acc004c124dd500840722c82522c823104618239baa00f3047375400d1641246eb4c124004dd69824801182480098221baa0018b2082304600d8b2088181e000981d800981d000981c800981c000981b800981b000981a800981a000981980098171baa0028b20561001302f302c375400f153302a490125416c6c207377617020646174756d73206d75737420626520696e6c696e6520646174756d73001640a500440b48168c0bc00502c1817001a0560c08c004c07cdd51811000980f1baa002301f00330200034074464b3001300830133754003130073301630173014375400297ae08a6103d87a80004044602c60266ea8c058c05cc04cdd5000980180190090c028c02c004c028004c014dd5005452689b2b20042611e581ce5a22e4c31db20bce1c8b081f8e4009683990a33157947d75030deb80001" # noqa: E501
|
|
72
74
|
|
|
73
75
|
|
|
74
76
|
@dataclass
|
|
@@ -118,13 +120,13 @@ def _sha256(data: bytes) -> bytes:
|
|
|
118
120
|
return hashlib.sha256(data).digest()
|
|
119
121
|
|
|
120
122
|
|
|
121
|
-
def
|
|
123
|
+
def legacy_pair_beacon_name(
|
|
122
124
|
offer_id: bytes,
|
|
123
125
|
offer_name: bytes,
|
|
124
126
|
ask_id: bytes,
|
|
125
127
|
ask_name: bytes,
|
|
126
128
|
) -> bytes:
|
|
127
|
-
"""The pair-beacon token name.
|
|
129
|
+
"""The pair-beacon token name. The pre-release build's rule.
|
|
128
130
|
|
|
129
131
|
``sha2_256(a1_id ++ offer_name ++ a2_id ++ ask_name)`` where an empty policy
|
|
130
132
|
id (ADA) is substituted with ``0x00`` for *both* legs. The order is
|
|
@@ -135,22 +137,135 @@ def pair_beacon_name(
|
|
|
135
137
|
return _sha256(a1 + offer_name + a2 + ask_name)
|
|
136
138
|
|
|
137
139
|
|
|
138
|
-
def
|
|
140
|
+
def legacy_offer_beacon_name(offer_id: bytes, offer_name: bytes) -> bytes:
|
|
139
141
|
"""The offer-beacon token name: ``sha2_256(0x01 ++ offer_id ++ offer_name)``.
|
|
140
142
|
|
|
141
|
-
No ``0x00`` substitution: an ADA offer hashes ``sha2_256(0x01)``.
|
|
143
|
+
No ``0x00`` substitution: an ADA offer hashes ``sha2_256(0x01)``. The
|
|
144
|
+
pre-release build's rule.
|
|
142
145
|
"""
|
|
143
146
|
return _sha256(b"\x01" + offer_id + offer_name)
|
|
144
147
|
|
|
145
148
|
|
|
146
|
-
def
|
|
149
|
+
def legacy_ask_beacon_name(ask_id: bytes, ask_name: bytes) -> bytes:
|
|
147
150
|
"""The ask-beacon token name: ``sha2_256(0x02 ++ ask_id ++ ask_name)``.
|
|
148
151
|
|
|
149
|
-
No ``0x00`` substitution: an ADA ask hashes ``sha2_256(0x02)``.
|
|
152
|
+
No ``0x00`` substitution: an ADA ask hashes ``sha2_256(0x02)``. The
|
|
153
|
+
pre-release build's rule.
|
|
150
154
|
"""
|
|
151
155
|
return _sha256(b"\x02" + ask_id + ask_name)
|
|
152
156
|
|
|
153
157
|
|
|
158
|
+
@dataclass
|
|
159
|
+
class _OfferAsset(PlutusData):
|
|
160
|
+
"""Pre-image of an official offer-beacon name."""
|
|
161
|
+
|
|
162
|
+
CONSTR_ID = 0
|
|
163
|
+
policy_id: bytes
|
|
164
|
+
asset_name: bytes
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
@dataclass
|
|
168
|
+
class _AskAsset(PlutusData):
|
|
169
|
+
"""Pre-image of an official ask-beacon name."""
|
|
170
|
+
|
|
171
|
+
CONSTR_ID = 1
|
|
172
|
+
policy_id: bytes
|
|
173
|
+
asset_name: bytes
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
@dataclass
|
|
177
|
+
class _TradingPair(PlutusData):
|
|
178
|
+
"""Pre-image of an official pair-beacon name (offer asset first)."""
|
|
179
|
+
|
|
180
|
+
CONSTR_ID = 2
|
|
181
|
+
offer_id: bytes
|
|
182
|
+
offer_name: bytes
|
|
183
|
+
ask_id: bytes
|
|
184
|
+
ask_name: bytes
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def pair_beacon_name(
|
|
188
|
+
offer_id: bytes,
|
|
189
|
+
offer_name: bytes,
|
|
190
|
+
ask_id: bytes,
|
|
191
|
+
ask_name: bytes,
|
|
192
|
+
) -> bytes:
|
|
193
|
+
"""The official pair-beacon name: ``sha2_256(serialiseData(TradingPair))``.
|
|
194
|
+
|
|
195
|
+
ADA is ``("", "")``; the offer asset comes first.
|
|
196
|
+
"""
|
|
197
|
+
return _sha256(_TradingPair(offer_id, offer_name, ask_id, ask_name).to_cbor())
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def offer_beacon_name(offer_id: bytes, offer_name: bytes) -> bytes:
|
|
201
|
+
"""The official offer-beacon name: ``sha2_256(serialiseData(OfferAsset))``."""
|
|
202
|
+
return _sha256(_OfferAsset(offer_id, offer_name).to_cbor())
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def ask_beacon_name(ask_id: bytes, ask_name: bytes) -> bytes:
|
|
206
|
+
"""The official ask-beacon name: ``sha2_256(serialiseData(AskAsset))``."""
|
|
207
|
+
return _sha256(_AskAsset(ask_id, ask_name).to_cbor())
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
@dataclass(frozen=True)
|
|
211
|
+
class CardanoSwapsContract:
|
|
212
|
+
"""One deployment of the Cardano-Swaps one-way contracts.
|
|
213
|
+
|
|
214
|
+
Everything that differs between deployments: script hashes and bytes, the
|
|
215
|
+
Plutus version, the beacon-name rule, whether a new swap's staking key must
|
|
216
|
+
sign its creation, and which builders are allowed.
|
|
217
|
+
"""
|
|
218
|
+
|
|
219
|
+
swap_validator_hash: str
|
|
220
|
+
beacon_policy_id: str
|
|
221
|
+
swap_script_hex: str
|
|
222
|
+
beacon_script_hex: str
|
|
223
|
+
script_class: type[PlutusV2Script] | type[PlutusV3Script]
|
|
224
|
+
pair_beacon_name: Callable[[bytes, bytes, bytes, bytes], bytes]
|
|
225
|
+
offer_beacon_name: Callable[[bytes, bytes], bytes]
|
|
226
|
+
ask_beacon_name: Callable[[bytes, bytes], bytes]
|
|
227
|
+
create_needs_stake_signature: bool
|
|
228
|
+
allows_create: bool
|
|
229
|
+
allows_fill: bool
|
|
230
|
+
|
|
231
|
+
def swap_script(self) -> PlutusV2Script | PlutusV3Script:
|
|
232
|
+
"""The swap spending validator."""
|
|
233
|
+
return self.script_class(bytes.fromhex(self.swap_script_hex))
|
|
234
|
+
|
|
235
|
+
def beacon_script(self) -> PlutusV2Script | PlutusV3Script:
|
|
236
|
+
"""The beacon minting/staking policy (``dapp_hash`` applied)."""
|
|
237
|
+
return self.script_class(bytes.fromhex(self.beacon_script_hex))
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
OFFICIAL_CONTRACT = CardanoSwapsContract(
|
|
241
|
+
swap_validator_hash=SWAP_VALIDATOR_HASH,
|
|
242
|
+
beacon_policy_id=BEACON_POLICY_ID,
|
|
243
|
+
swap_script_hex=SWAP_VALIDATOR_SCRIPT_HEX,
|
|
244
|
+
beacon_script_hex=BEACON_POLICY_SCRIPT_HEX,
|
|
245
|
+
script_class=PlutusV3Script,
|
|
246
|
+
pair_beacon_name=pair_beacon_name,
|
|
247
|
+
offer_beacon_name=offer_beacon_name,
|
|
248
|
+
ask_beacon_name=ask_beacon_name,
|
|
249
|
+
create_needs_stake_signature=True,
|
|
250
|
+
allows_create=True,
|
|
251
|
+
allows_fill=True,
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
LEGACY_CONTRACT = CardanoSwapsContract(
|
|
255
|
+
swap_validator_hash=LEGACY_SWAP_VALIDATOR_HASH,
|
|
256
|
+
beacon_policy_id=LEGACY_BEACON_POLICY_ID,
|
|
257
|
+
swap_script_hex=LEGACY_SWAP_VALIDATOR_SCRIPT_HEX,
|
|
258
|
+
beacon_script_hex=LEGACY_BEACON_POLICY_SCRIPT_HEX,
|
|
259
|
+
script_class=PlutusV2Script,
|
|
260
|
+
pair_beacon_name=legacy_pair_beacon_name,
|
|
261
|
+
offer_beacon_name=legacy_offer_beacon_name,
|
|
262
|
+
ask_beacon_name=legacy_ask_beacon_name,
|
|
263
|
+
create_needs_stake_signature=False,
|
|
264
|
+
allows_create=False,
|
|
265
|
+
allows_fill=False,
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
|
|
154
269
|
def _unit(policy: bytes, name: bytes) -> str:
|
|
155
270
|
"""Build a dendrite asset unit from on-chain policy + name bytes.
|
|
156
271
|
|
|
@@ -335,11 +450,12 @@ class CardanoSwapsSwapDatum(OrderDatum):
|
|
|
335
450
|
|
|
336
451
|
def beacon_assets(self, quantity: int = 1) -> Assets:
|
|
337
452
|
"""The pair, offer and ask beacons, each at ``quantity``."""
|
|
453
|
+
policy = self.beacon_id.hex()
|
|
338
454
|
return Assets(
|
|
339
455
|
root={
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
456
|
+
f"{policy}{self.pair_beacon.hex()}": quantity,
|
|
457
|
+
f"{policy}{self.offer_beacon.hex()}": quantity,
|
|
458
|
+
f"{policy}{self.ask_beacon.hex()}": quantity,
|
|
343
459
|
},
|
|
344
460
|
)
|
|
345
461
|
|
|
@@ -516,8 +632,8 @@ class CardanoSwapsSwapDatum(OrderDatum):
|
|
|
516
632
|
)
|
|
517
633
|
|
|
518
634
|
|
|
519
|
-
class
|
|
520
|
-
"""A resting Cardano-Swaps
|
|
635
|
+
class _CardanoSwapsOneWayOrderState(AbstractOrderState):
|
|
636
|
+
"""A resting Cardano-Swaps one-way swap UTxO, for the contract in ``CONTRACT``.
|
|
521
637
|
|
|
522
638
|
From the taker's view: ``in`` is the ask asset (taker gives) and ``out`` is
|
|
523
639
|
the offer asset (taker receives). ``available`` is the offer asset held in
|
|
@@ -527,6 +643,8 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
527
643
|
``out = in * denominator / numerator`` falls out of the base class.
|
|
528
644
|
"""
|
|
529
645
|
|
|
646
|
+
CONTRACT: ClassVar[CardanoSwapsContract]
|
|
647
|
+
|
|
530
648
|
tx_hash: str
|
|
531
649
|
tx_index: int
|
|
532
650
|
datum_cbor: str
|
|
@@ -545,25 +663,20 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
545
663
|
_datum_parsed: PlutusData | None = None
|
|
546
664
|
_deposit: Assets = Assets(lovelace=0)
|
|
547
665
|
|
|
548
|
-
@classmethod
|
|
549
|
-
def dex(cls) -> str:
|
|
550
|
-
"""Official dex name."""
|
|
551
|
-
return "CardanoSwaps"
|
|
552
|
-
|
|
553
666
|
@classmethod
|
|
554
667
|
def order_datum_class(cls) -> type[PlutusData]:
|
|
555
668
|
"""Returns data class used for handling order datums."""
|
|
556
669
|
return CardanoSwapsSwapDatum
|
|
557
670
|
|
|
558
671
|
@classmethod
|
|
559
|
-
def default_script_class(cls) -> type[PlutusV2Script]:
|
|
560
|
-
"""The swap spending validator
|
|
561
|
-
return
|
|
672
|
+
def default_script_class(cls) -> type[PlutusV2Script] | type[PlutusV3Script]:
|
|
673
|
+
"""The swap spending validator's Plutus version (this contract's)."""
|
|
674
|
+
return cls.CONTRACT.script_class
|
|
562
675
|
|
|
563
676
|
@classmethod
|
|
564
677
|
def dex_policy(cls) -> list[str] | None:
|
|
565
678
|
"""The beacon minting policy id used to discover swap UTxOs."""
|
|
566
|
-
return [
|
|
679
|
+
return [cls.CONTRACT.beacon_policy_id]
|
|
567
680
|
|
|
568
681
|
@classmethod
|
|
569
682
|
def extract_dex_nft(cls, values: dict) -> Assets | None:
|
|
@@ -673,7 +786,7 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
673
786
|
@classmethod
|
|
674
787
|
def pool_selector(cls) -> PoolSelector:
|
|
675
788
|
"""Pool selection: discover by beacon policy id, not address."""
|
|
676
|
-
return PoolSelector(addresses=[], assets=[
|
|
789
|
+
return PoolSelector(addresses=[], assets=[cls.CONTRACT.beacon_policy_id])
|
|
677
790
|
|
|
678
791
|
@property
|
|
679
792
|
def swap_forward(self) -> bool:
|
|
@@ -729,15 +842,15 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
729
842
|
|
|
730
843
|
# --- transaction builders --------------------------------------------
|
|
731
844
|
|
|
732
|
-
@
|
|
733
|
-
def _swap_script() -> PlutusV2Script:
|
|
845
|
+
@classmethod
|
|
846
|
+
def _swap_script(cls) -> PlutusV2Script | PlutusV3Script:
|
|
734
847
|
"""The (inline) one-way swap spending validator."""
|
|
735
|
-
return
|
|
848
|
+
return cls.CONTRACT.swap_script()
|
|
736
849
|
|
|
737
|
-
@
|
|
738
|
-
def _beacon_script() -> PlutusV2Script:
|
|
850
|
+
@classmethod
|
|
851
|
+
def _beacon_script(cls) -> PlutusV2Script | PlutusV3Script:
|
|
739
852
|
"""The (inline) beacon minting/staking policy."""
|
|
740
|
-
return
|
|
853
|
+
return cls.CONTRACT.beacon_script()
|
|
741
854
|
|
|
742
855
|
@staticmethod
|
|
743
856
|
def _verify_ref_script(ref_utxo: UTxO, expected_hash: str, label: str) -> None:
|
|
@@ -763,7 +876,7 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
763
876
|
def _swap_script_arg(
|
|
764
877
|
cls,
|
|
765
878
|
swap_ref_utxo: UTxO | None,
|
|
766
|
-
) -> UTxO | PlutusV2Script:
|
|
879
|
+
) -> UTxO | PlutusV2Script | PlutusV3Script:
|
|
767
880
|
"""The swap validator to attach to a builder.
|
|
768
881
|
|
|
769
882
|
A caller-supplied reference-script UTxO (referenced via a reference input)
|
|
@@ -772,14 +885,18 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
772
885
|
"""
|
|
773
886
|
if swap_ref_utxo is None:
|
|
774
887
|
return cls._swap_script()
|
|
775
|
-
cls._verify_ref_script(
|
|
888
|
+
cls._verify_ref_script(
|
|
889
|
+
swap_ref_utxo,
|
|
890
|
+
cls.CONTRACT.swap_validator_hash,
|
|
891
|
+
"swap validator",
|
|
892
|
+
)
|
|
776
893
|
return swap_ref_utxo
|
|
777
894
|
|
|
778
895
|
@classmethod
|
|
779
896
|
def _beacon_script_arg(
|
|
780
897
|
cls,
|
|
781
898
|
beacon_ref_utxo: UTxO | None,
|
|
782
|
-
) -> UTxO | PlutusV2Script:
|
|
899
|
+
) -> UTxO | PlutusV2Script | PlutusV3Script:
|
|
783
900
|
"""The beacon policy to attach to a builder.
|
|
784
901
|
|
|
785
902
|
A caller-supplied reference-script UTxO (referenced via a reference input)
|
|
@@ -788,11 +905,15 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
788
905
|
"""
|
|
789
906
|
if beacon_ref_utxo is None:
|
|
790
907
|
return cls._beacon_script()
|
|
791
|
-
cls._verify_ref_script(
|
|
908
|
+
cls._verify_ref_script(
|
|
909
|
+
beacon_ref_utxo,
|
|
910
|
+
cls.CONTRACT.beacon_policy_id,
|
|
911
|
+
"beacon policy",
|
|
912
|
+
)
|
|
792
913
|
return beacon_ref_utxo
|
|
793
914
|
|
|
794
|
-
@
|
|
795
|
-
def beacon_address(owner_address: Address) -> Address:
|
|
915
|
+
@classmethod
|
|
916
|
+
def beacon_address(cls, owner_address: Address) -> Address:
|
|
796
917
|
"""The beacon-tagged swap address for an owner.
|
|
797
918
|
|
|
798
919
|
The payment credential is the swap spending validator hash; the staking
|
|
@@ -801,7 +922,7 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
801
922
|
DApp address, so a resting swap always carries one.
|
|
802
923
|
"""
|
|
803
924
|
return Address(
|
|
804
|
-
payment_part=ScriptHash(bytes.fromhex(
|
|
925
|
+
payment_part=ScriptHash(bytes.fromhex(cls.CONTRACT.swap_validator_hash)),
|
|
805
926
|
staking_part=owner_address.staking_part,
|
|
806
927
|
network=owner_address.network or Network.MAINNET,
|
|
807
928
|
)
|
|
@@ -860,8 +981,22 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
860
981
|
The swap output and its inline ``SwapDatum``.
|
|
861
982
|
|
|
862
983
|
Raises:
|
|
863
|
-
ValueError: ``price`` is not a
|
|
984
|
+
ValueError: this contract creates no swaps, or ``price`` is not a
|
|
985
|
+
positive rational.
|
|
864
986
|
"""
|
|
987
|
+
if not cls.CONTRACT.allows_create:
|
|
988
|
+
raise ValueError(
|
|
989
|
+
"This Cardano-Swaps contract is read-and-close only: "
|
|
990
|
+
"no new swaps are created on it.",
|
|
991
|
+
)
|
|
992
|
+
if cls.CONTRACT.create_needs_stake_signature:
|
|
993
|
+
stake = owner_address.staking_part
|
|
994
|
+
if not isinstance(stake, VerificationKeyHash):
|
|
995
|
+
raise ValueError(
|
|
996
|
+
"Creating a Cardano-Swaps v2 swap must be approved by the "
|
|
997
|
+
"owner's staking key; the owner address has no key-hash "
|
|
998
|
+
"staking credential.",
|
|
999
|
+
)
|
|
865
1000
|
offer_unit = offer.unit()
|
|
866
1001
|
ask_unit = ask.unit()
|
|
867
1002
|
offer_id, offer_name = cls._split_unit(offer_unit)
|
|
@@ -876,14 +1011,19 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
876
1011
|
else (PlutusNone())
|
|
877
1012
|
)
|
|
878
1013
|
datum = CardanoSwapsSwapDatum(
|
|
879
|
-
beacon_id=bytes.fromhex(
|
|
880
|
-
pair_beacon=pair_beacon_name(
|
|
1014
|
+
beacon_id=bytes.fromhex(cls.CONTRACT.beacon_policy_id),
|
|
1015
|
+
pair_beacon=cls.CONTRACT.pair_beacon_name(
|
|
1016
|
+
offer_id,
|
|
1017
|
+
offer_name,
|
|
1018
|
+
ask_id,
|
|
1019
|
+
ask_name,
|
|
1020
|
+
),
|
|
881
1021
|
offer_id=offer_id,
|
|
882
1022
|
offer_name=offer_name,
|
|
883
|
-
offer_beacon=offer_beacon_name(offer_id, offer_name),
|
|
1023
|
+
offer_beacon=cls.CONTRACT.offer_beacon_name(offer_id, offer_name),
|
|
884
1024
|
ask_id=ask_id,
|
|
885
1025
|
ask_name=ask_name,
|
|
886
|
-
ask_beacon=ask_beacon_name(ask_id, ask_name),
|
|
1026
|
+
ask_beacon=cls.CONTRACT.ask_beacon_name(ask_id, ask_name),
|
|
887
1027
|
swap_price=CardanoSwapsRational(numerator=num, denominator=den),
|
|
888
1028
|
prev_input=PlutusNone(),
|
|
889
1029
|
expiration=exp,
|
|
@@ -925,6 +1065,12 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
925
1065
|
)
|
|
926
1066
|
tx_builder.add_output(txo)
|
|
927
1067
|
|
|
1068
|
+
if cls.CONTRACT.create_needs_stake_signature:
|
|
1069
|
+
signers = list(tx_builder.required_signers or [])
|
|
1070
|
+
if owner_address.staking_part not in signers:
|
|
1071
|
+
signers.append(owner_address.staking_part)
|
|
1072
|
+
tx_builder.required_signers = signers
|
|
1073
|
+
|
|
928
1074
|
return txo, datum
|
|
929
1075
|
|
|
930
1076
|
@staticmethod
|
|
@@ -998,10 +1144,16 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
998
1144
|
offer balance at ~0); only CLOSE removes the beacons.
|
|
999
1145
|
|
|
1000
1146
|
Raises:
|
|
1001
|
-
ValueError: the assets are not the offer
|
|
1002
|
-
more of the offer than the UTxO can
|
|
1147
|
+
ValueError: this contract fills no swaps, the assets are not the offer
|
|
1148
|
+
and ask, or the fill takes more of the offer than the UTxO can
|
|
1149
|
+
release.
|
|
1003
1150
|
InvalidPoolError: the datum's ``swap_price`` is not a positive rational.
|
|
1004
1151
|
"""
|
|
1152
|
+
if not self.CONTRACT.allows_fill:
|
|
1153
|
+
raise ValueError(
|
|
1154
|
+
"This Cardano-Swaps contract is read-and-close only: "
|
|
1155
|
+
"its swaps are not filled.",
|
|
1156
|
+
)
|
|
1005
1157
|
owner = owner_address if owner_address is not None else address_source
|
|
1006
1158
|
|
|
1007
1159
|
# in/out orientation: out = offer (taker receives), in = ask (taker pays).
|
|
@@ -1029,6 +1181,13 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
1029
1181
|
script=self._swap_script_arg(swap_ref_utxo),
|
|
1030
1182
|
redeemer=Redeemer(Swap()),
|
|
1031
1183
|
)
|
|
1184
|
+
# An expiring swap is fillable only by a transaction whose validity ends at
|
|
1185
|
+
# or before the expiration (the validator reads it as the upper bound).
|
|
1186
|
+
expiration = self.order_datum.expiration
|
|
1187
|
+
if isinstance(expiration, CardanoSwapsSomeInt):
|
|
1188
|
+
deadline = posix_ms_to_slot(expiration.value)
|
|
1189
|
+
if tx_builder.ttl is None or tx_builder.ttl > deadline:
|
|
1190
|
+
tx_builder.ttl = deadline
|
|
1032
1191
|
# No witness datum: the order UTxO carries its SwapDatum inline (CS requires
|
|
1033
1192
|
# inline datums, and ``_input_utxo`` attaches it to the spent input above), so
|
|
1034
1193
|
# the validator reads it from the input directly. Adding the same datum to the
|
|
@@ -1137,6 +1296,32 @@ class CardanoSwapsOrderState(AbstractOrderState):
|
|
|
1137
1296
|
return self.order_datum
|
|
1138
1297
|
|
|
1139
1298
|
|
|
1299
|
+
class CardanoSwapsOrderState(_CardanoSwapsOneWayOrderState):
|
|
1300
|
+
"""A resting official Cardano-Swaps v2 one-way swap (Plutus V3)."""
|
|
1301
|
+
|
|
1302
|
+
CONTRACT: ClassVar[CardanoSwapsContract] = OFFICIAL_CONTRACT
|
|
1303
|
+
|
|
1304
|
+
@classmethod
|
|
1305
|
+
def dex(cls) -> str:
|
|
1306
|
+
"""Official dex name."""
|
|
1307
|
+
return "CardanoSwaps"
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
class CardanoSwapsLegacyOrderState(_CardanoSwapsOneWayOrderState):
|
|
1311
|
+
"""A swap resting on the pre-release v2 one-way build (Plutus V2).
|
|
1312
|
+
|
|
1313
|
+
Read and close only: :meth:`build_create` and :meth:`swap_utxo` refuse, so
|
|
1314
|
+
no new swap is created on this build and none of its swaps is filled.
|
|
1315
|
+
"""
|
|
1316
|
+
|
|
1317
|
+
CONTRACT: ClassVar[CardanoSwapsContract] = LEGACY_CONTRACT
|
|
1318
|
+
|
|
1319
|
+
@classmethod
|
|
1320
|
+
def dex(cls) -> str:
|
|
1321
|
+
"""Official dex name: the same dex as :class:`CardanoSwapsOrderState`."""
|
|
1322
|
+
return "CardanoSwaps"
|
|
1323
|
+
|
|
1324
|
+
|
|
1140
1325
|
class CardanoSwapsOrderBook(AbstractOrderBookState):
|
|
1141
1326
|
"""Aggregate order book over resting Cardano-Swaps one-way swap UTxOs.
|
|
1142
1327
|
|
|
@@ -1220,8 +1405,8 @@ class CardanoSwapsOrderBook(AbstractOrderBookState):
|
|
|
1220
1405
|
return CardanoSwapsOrderState.pool_selector()
|
|
1221
1406
|
|
|
1222
1407
|
@classmethod
|
|
1223
|
-
def default_script_class(cls) -> type[PlutusV2Script]:
|
|
1224
|
-
"""The swap spending validator
|
|
1408
|
+
def default_script_class(cls) -> type[PlutusV2Script] | type[PlutusV3Script]:
|
|
1409
|
+
"""The swap spending validator's Plutus version (the official contract's)."""
|
|
1225
1410
|
return CardanoSwapsOrderState.default_script_class()
|
|
1226
1411
|
|
|
1227
1412
|
@classmethod
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|