{
  "version": "0.0.2",
  "name": "dip_mm",
  "instructions": [
    {
      "name": "initDipMmAccount",
      "accounts": [
        {
          "name": "payer",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "authority",
          "isMut": false,
          "isSigner": false,
          "docs": ["for later transaction"]
        },
        {
          "name": "dipMmAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "splMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "withdraw",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "dipMmAccount",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "dipMmTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "userTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "makeTrade",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "dipMmPremiumAccount",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "dipMmPremiumTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "dipMmOptionTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "rmPremiumTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "rmOptionTokenAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "premiumAmount",
          "type": "u64"
        },
        {
          "name": "optionAmount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "initDeadManSwitch",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true,
          "docs": ["Authority is the protocol wallet"]
        },
        {
          "name": "addressMakingTrade",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "deadManSwitch",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "initPricing",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "baseMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "quoteMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "pricing",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "symbol",
          "type": "string"
        },
        {
          "name": "strike",
          "type": "u64"
        },
        {
          "name": "expiration",
          "type": "u64"
        }
      ]
    },
    {
      "name": "cancelOrder",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "pricing",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "orderId",
          "type": "string"
        }
      ]
    },
    {
      "name": "placeOrder",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "pricing",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "addressMakingTrade",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "price",
          "type": "u64"
        },
        {
          "name": "orderId",
          "type": "string"
        }
      ]
    },
    {
      "name": "refreshDeadManSwitch",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "deadManSwitch",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "newTimeout",
          "type": "u64"
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "DipMmAccount",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "tokenAccount",
            "type": "publicKey"
          },
          {
            "name": "tokenAccountBump",
            "type": "u8"
          },
          {
            "name": "authority",
            "type": "publicKey"
          }
        ]
      }
    },
    {
      "name": "Pricing",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "dipState",
            "type": "publicKey"
          },
          {
            "name": "bids",
            "type": {
              "vec": {
                "defined": "Bid"
              }
            }
          },
          {
            "name": "pricingBump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "DeadManSwitch",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "address",
            "type": "publicKey"
          },
          {
            "name": "currentExtensionEnd",
            "type": "u64"
          },
          {
            "name": "currentExtensionStart",
            "type": "u64"
          },
          {
            "name": "dmsBump",
            "type": "u8"
          }
        ]
      }
    }
  ],
  "types": [
    {
      "name": "Bid",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "price",
            "type": "u64"
          },
          {
            "name": "orderId",
            "type": "string"
          },
          {
            "name": "account",
            "type": "publicKey"
          }
        ]
      }
    }
  ],
  "metadata": {
    "address": "esdUULhoeFHro46mvkTizMzg38hKBunvErmPuUw6n9p"
  }
}
