Midsoles with any shoe are really iffy. As far as I know there is no one solution that won't rub off after many wears.
The best method is to buy both black angelus leather dye and black angelus paint. First you dye the midsole with the leather dye and let it dry. Be VERY careful, as if you get that dye anywhere else on the shoe it will not come off. After dying the sole then apply a couple layers of black paint. The reason we don't just dye the sole is it leaves a purple hue (like a sharpie) and the paint makes it fully black. The advantage of the dye is that if the paint does crack then it will show the dyed black midsole underneath instead of the speckled midsole.
Just take your time, and make sure that you apply the right amount of layers.
Good luck!