degenbot.builders.curve_pool_builder ==================================== .. py:module:: degenbot.builders.curve_pool_builder .. autoapi-nested-parse:: Curve StableSwap pool builder (sync). Module Contents --------------- .. py:class:: CurvePoolBuilder(ctx: degenbot.builders.context.BuilderContext) Builds and updates Curve StableSwap pools. Thin delegating shell (ADR-005): drives the Rust core's ``build_curve_pool`` (detection choreography + native ``RpcCurveDataProvider``), builds the ERC20 companion tokens, then wraps the registered handle via the single-arg ``from_handle`` seam. No Python-side Curve detection remains. .. py:method:: build(address: str, *, chain_id: degenbot.types.aliases.ChainId | None = None, io: degenbot._ffi.BotIo, request: degenbot.builders.request.BuildRequest) -> degenbot.types.abstract.liquidity_pool.AbstractLiquidityPool Construct an I/O-free CurveStableswapPool via the Rust core. Delegates the full detection + registration to ``Bot.build_curve_pool`` (which attaches a native ``RpcCurveDataProvider`` and stores the complete identity in Rust state), builds the ERC20 token/LP companions so the handle's registration-gated getters resolve, then wraps the handle via ``from_handle``. :returns: The computed value. :raises BrokenPool: If the pool has fewer than 2 coins. .. py:method:: update(pool: degenbot.types.abstract.liquidity_pool.AbstractLiquidityPool, *, block_number: degenbot.types.rpc_types.BlockIdentifier | None = None, io: degenbot._ffi.BotIo | None = None) -> bool :staticmethod: Fetch current state from chain and push update to the pool. :returns: The computed value. :raises TypeError: If the operation fails.