Skip to main content

PolymarketOrderBuilder

Struct PolymarketOrderBuilder 

Source
pub struct PolymarketOrderBuilder { /* private fields */ }
Expand description

Builds signed Polymarket orders for submission to the CLOB V2 exchange.

last_timestamp_ms backs a strictly-monotonic millisecond clock so that bursts of submissions landing in the same wall-clock millisecond still produce distinct timestamp values (the V2 per-address uniqueness field).

Implementations§

Source§

impl PolymarketOrderBuilder

Source

pub fn new( order_signer: OrderSigner, signer_address: String, maker_address: String, signature_type: PolymarketSignatureType, ) -> Self

Creates a new PolymarketOrderBuilder.

Source

pub fn build_limit_order( &self, token_id: &str, side: PolymarketOrderSide, price: Decimal, quantity: Decimal, order_type: PolymarketOrderType, expiration: &str, neg_risk: bool, tick_decimals: u32, ) -> Result<PolymarketOrder>

Builds and signs a limit order for submission.

Immediate BUYs spend a cent-denominated maker budget. When quantity * price is not an exact cent amount, the builder truncates that budget to cents and signs the share quantity derived from it, rounded up to the market amount precision so the signed ratio does not exceed the limit price.

expiration is a unix-seconds timestamp ("0" for non-GTD orders). It is carried in the wire body but excluded from the EIP-712 signed hash.

Source

pub fn build_market_order( &self, token_id: &str, side: PolymarketOrderSide, price: Decimal, amount: Decimal, neg_risk: bool, tick_decimals: u32, ) -> Result<PolymarketOrder>

Builds and signs a market order for submission.

amount semantics differ by side:

  • BUY: amount is pUSD to spend
  • SELL: amount is shares to sell

Market orders never set an expiration.

Source

pub fn expected_order_id( &self, order: &PolymarketOrder, neg_risk: bool, ) -> Result<VenueOrderId>

Computes the Polymarket order ID for a signed CLOB V2 order.

Source

pub fn validate_limit_order(order: &OrderAny) -> Result<(), OrderDeniedReason>

Validates a limit order before building, returning a denial reason if invalid.

Source

pub fn validate_market_order(order: &OrderAny) -> Result<(), OrderDeniedReason>

Validates a market order before building, returning a denial reason if invalid.

Trait Implementations§

Source§

impl Debug for PolymarketOrderBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Ungil for T
where T: Send,

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more