{
  "version": "0.1.0",
  "name": "car_rental_service",
  "instructions": [
    {
      "name": "AddCar",
      "accounts": [
        {
          "name": "carAccount",
          "isMut": true,
          "isSigner": false,
          "desc": "The account that will represent the Car being created"
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": false,
          "desc": "Fee payer"
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false,
          "desc": "The System Program"
        }
      ],
      "args": [
        {
          "name": "addCarArgs",
          "type": {
            "defined": "AddCarArgs"
          }
        }
      ],
      "discriminant": {
        "type": "u8",
        "value": 0
      }
    },
    {
      "name": "BookRental",
      "accounts": [
        {
          "name": "rentalAccount",
          "isMut": true,
          "isSigner": false,
          "desc": "The account that will represent the actual order for the rental"
        },
        {
          "name": "carAccount",
          "isMut": false,
          "isSigner": false,
          "desc": "The account representing the Car being rented in this order"
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": false,
          "desc": "Fee payer"
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false,
          "desc": "The System Program"
        }
      ],
      "args": [
        {
          "name": "bookRentalArgs",
          "type": {
            "defined": "BookRentalArgs"
          }
        }
      ],
      "discriminant": {
        "type": "u8",
        "value": 1
      }
    },
    {
      "name": "PickUpCar",
      "accounts": [
        {
          "name": "rentalAccount",
          "isMut": true,
          "isSigner": false,
          "desc": "The account representing the active rental"
        },
        {
          "name": "carAccount",
          "isMut": false,
          "isSigner": false,
          "desc": "The account representing the Car being rented in this order"
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": false,
          "desc": "Fee payer"
        }
      ],
      "args": [],
      "discriminant": {
        "type": "u8",
        "value": 2
      }
    },
    {
      "name": "ReturnCar",
      "accounts": [
        {
          "name": "rentalAccount",
          "isMut": true,
          "isSigner": false,
          "desc": "The account representing the active rental"
        },
        {
          "name": "carAccount",
          "isMut": false,
          "isSigner": false,
          "desc": "The account representing the Car being rented in this order"
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": false,
          "desc": "Fee payer"
        }
      ],
      "args": [],
      "discriminant": {
        "type": "u8",
        "value": 3
      }
    }
  ],
  "accounts": [
    {
      "name": "Car",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "year",
            "type": "u16"
          },
          {
            "name": "make",
            "type": "string"
          },
          {
            "name": "model",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "RentalOrder",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "car",
            "type": "publicKey"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "pickUpDate",
            "type": "string"
          },
          {
            "name": "returnDate",
            "type": "string"
          },
          {
            "name": "price",
            "type": "u64"
          },
          {
            "name": "status",
            "type": {
              "defined": "RentalOrderStatus"
            }
          }
        ]
      }
    }
  ],
  "types": [
    {
      "name": "AddCarArgs",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "year",
            "type": "u16"
          },
          {
            "name": "make",
            "type": "string"
          },
          {
            "name": "model",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "BookRentalArgs",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "pickUpDate",
            "type": "string"
          },
          {
            "name": "returnDate",
            "type": "string"
          },
          {
            "name": "price",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "RentalOrderStatus",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Created"
          },
          {
            "name": "PickedUp"
          },
          {
            "name": "Returned"
          }
        ]
      }
    }
  ],
  "metadata": {
    "origin": "shank",
    "address": "8avNGHVXDwsELJaWMSoUZ44CirQd4zyU9Ez4ZmP4jNjZ",
    "binaryVersion": "0.0.12",
    "libVersion": "0.0.12"
  }
}