buy and sell take optional rate param