make wallet async functions truly async