{
    "version": "2.0.0",
    "name": "dlob",
    "instructions": [],
    "accounts": [],
    "types": [
        {
            "name": "DLOBOrders",
            "type": {
                "vec": {
                    "defined": "DLOBOrder"
                }
            }
        },
        {
            "name": "DLOBOrder",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "user",
                        "type": "publicKey"
                    },
                    {
                        "name": "order",
                        "type": {
                            "defined": "Order"
                        }
                    }
                ]
            }
        },
        {
            "name": "Order",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "slot",
                        "type": "u64"
                    },
                    {
                        "name": "price",
                        "type": "u64"
                    },
                    {
                        "name": "baseAssetAmount",
                        "type": "u64"
                    },
                    {
                        "name": "baseAssetAmountFilled",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAssetAmountFilled",
                        "type": "u64"
                    },
                    {
                        "name": "triggerPrice",
                        "type": "u64"
                    },
                    {
                        "name": "auctionStartPrice",
                        "type": "u64"
                    },
                    {
                        "name": "auctionEndPrice",
                        "type": "u64"
                    },
                    {
                        "name": "maxTs",
                        "type": "i64"
                    },
                    {
                        "name": "oraclePriceOffset",
                        "type": "i32"
                    },
                    {
                        "name": "orderId",
                        "type": "u32"
                    },
                    {
                        "name": "marketIndex",
                        "type": "u16"
                    },
                    {
                        "name": "status",
                        "type": {
                            "defined": "OrderStatus"
                        }
                    },
                    {
                        "name": "orderType",
                        "type": {
                            "defined": "OrderType"
                        }
                    },
                    {
                        "name": "marketType",
                        "type": {
                            "defined": "MarketType"
                        }
                    },
                    {
                        "name": "userOrderId",
                        "type": "u8"
                    },
                    {
                        "name": "existingPositionDirection",
                        "type": {
                            "defined": "PositionDirection"
                        }
                    },
                    {
                        "name": "direction",
                        "type": {
                            "defined": "PositionDirection"
                        }
                    },
                    {
                        "name": "reduceOnly",
                        "type": "bool"
                    },
                    {
                        "name": "postOnly",
                        "type": "bool"
                    },
                    {
                        "name": "immediateOrCancel",
                        "type": "bool"
                    },
                    {
                        "name": "triggerCondition",
                        "type": {
                            "defined": "OrderTriggerCondition"
                        }
                    },
                    {
                        "name": "auctionDuration",
                        "type": "u8"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u8",
                                3
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "OrderStatus",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Init"
                    },
                    {
                        "name": "Open"
                    },
                    {
                        "name": "Filled"
                    },
                    {
                        "name": "Canceled"
                    }
                ]
            }
        },
        {
            "name": "OrderType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Market"
                    },
                    {
                        "name": "Limit"
                    },
                    {
                        "name": "TriggerMarket"
                    },
                    {
                        "name": "TriggerLimit"
                    },
                    {
                        "name": "Oracle"
                    }
                ]
            }
        },
        {
            "name": "OrderTriggerCondition",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Above"
                    },
                    {
                        "name": "Below"
                    },
                    {
                        "name": "TriggeredAbove"
                    },
                    {
                        "name": "TriggeredBelow"
                    }
                ]
            }
        },
        {
            "name": "MarketType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Spot"
                    },
                    {
                        "name": "Perp"
                    }
                ]
            }
        },
        {
            "name": "PositionDirection",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Long"
                    },
                    {
                        "name": "Short"
                    }
                ]
            }
        }
    ],
    "events": [],
    "errors": []
}
