refactoring currency and channel model
a big commit for withdraws and deposits
fixed spec