feat(transactions): promisify transactions