Buying virtual currency

I want to add the option to buy one of several “gold” packs, a consumable virtual currency which in turn can be used to buy specific distinct crates for the game. I know how to do this, but how would I ensure the crates bought with the gold can be restored if the player uses a different device (as the crates themselves don’t use IAP, but require the virtual currency)? What is the best pattern here (e.g. should I make the crates free IAPs, if that’s even possible, and handle their aquisition trigger based on available gold)? Thanks!

I saw some sites mentioning Apple’s guidelines actually don’t allow currency which then buys into non-consumables, but perhaps that information is outdated – after all apps like Infinity Blade do just that. Maybe I just need to rethink it in terms of what the “Restore Purchase” button will do on a new install/ device, namely restore the virtual money, with which the player can then re-purchase the crates.

I saw some sites mentioning Apple’s guidelines actually don’t allow currency which then buys into non-consumables, but perhaps that information is outdated – after all apps like Infinity Blade do just that. Maybe I just need to rethink it in terms of what the “Restore Purchase” button will do on a new install/ device, namely restore the virtual money, with which the player can then re-purchase the crates.