## Commands

This is a work in progress. Many commands are yet unimplemented. All commands must be prefixed by $ and sent on private message or one of the channels where IrcBook is in active mode. Error messages are always sent on private message, and some commands are defined as "quiet", giving always a private response. So far we have:

1. Register. Create a user on the market. No parameters.

2. Confirm. Confirm a user account. Owner command. Takes a hostmask.

3. Quit. Disconnects the bot. Owner command. No parameters.

4. Create. Creates a claim for trade. It takes a claim symbol (a word with letters and numbers) to identify the claim, a date in the format yyyy-mm-dd to determine when it expires, and a description in words. For example: $create sanders2016 2017-01-01 Sanders to become president.

5. Approve. Approves a claim for trade. Owner command. It takes a claim symbol to validate it and allow trade to proceed.

6. Cash. Reports cash balance. It may take a single parameter, in which case it must be a user hostmask, or it implicitly reports that of the sender. It provides two values: total cash, and unlocked cash in parentheses. Consult *locked assets* on the main documentation.

7. Claims. Reports claims for trade, or information about a specific claim. Without parameters it reports symbols for claims, and with a symbol it reports information about that particular claim.

8. Unapproved. Reports unapproved claims. Owner command. It is useful in order to know which claims require owner validation. It takes an optional parameter, in which case it will report whether a claim is not approved.

9. Unconfirmed. Reports unconfirmed users. Owner command. It's useful in order to determine which users requires confirmation. It may take an optional parameter, in which case it reports whether that particular user remains unconfirmed.

10. Judge. Adjudicates a claim. Owner command. It takes a claim symbol, and y or n. As well as adjudicating the claim, it sets it to expire if it hadn't yet, thus halting all trade, it removes all pending orders, executes coupons, and releases locked assets relating to the claim.

11. Buy. Places a buy order. Buy takes a symbol, y or n, price from 0 to 100 and amount.

12. Sell. Places a sell order. Consult the syntax for buy.

13. Enter. Makes bot join a channel and writes it on the config. Owner command. This command takes a compulsory single parameter, which must be the name of a channel for the bot to join.

14. Ticker. Gives ticker information about a claim. It takes a compulsory parameter which must be a valid claim symbol. The results include bid, ask and price. None values mean there are no bids, asks, or a set price.

15. Help. It prints all implemented commands. This command uses the internal state of the bot to do it, therefore it is more likely to be up-to-date than the documentation. It requires no parameters.

16. Coupons. Reports information on the coupons held by a given user. It takes an optional parameter in the form of a user hostmask, or it replies implicitly with the sender's information.

17. Orders. Reports information on orders for the sender. No parameters.

We expect to add:

positions, ticker, queue, depth, top, historical.

The central idea is to make the commands as quick as possible to type. Any unambiguous prefix is a valid command (for example, cl is a valid command to call claims). Commands are specific and generally take no subcommands or modifiers, though they often take parameters.