{ "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" } }