Implement promises for EIP