const Wrapper = artifacts.require("CurioERC1155Wrapper"); const IMastersFedi = artifacts.require("IMastersFedi"); module.exports = async (callback) => { const nftId1 = parseInt(process.argv[6]); const quantity1 = parseInt(process.argv[7]); const nftId2 = parseInt(process.argv[8]); const quantity2 = parseInt(process.argv[9]); const wrapper = await Wrapper.deployed(); const tokenContractAddress1 = await wrapper.contracts(nftId1); const tokenContractAddress2 = await wrapper.contracts(nftId2); const tokenContract1 = await IMastersFedi.at(tokenContractAddress1); const tokenContract2 = await IMastersFedi.at(tokenContractAddress2); const tokenName1 = await tokenContract1.name(); const tokenName2 = await tokenContract2.name(); console.log(`Token names: "${tokenName1}", "${tokenName2}"`); const [account,] = await web3.eth.getAccounts(); try { console.log("Batch unwrapping..."); const finalResult = await wrapper.unwrapBatch( [nftId1, nftId2], [quantity1, quantity2], { from: account } ); console.log(`Tx: ${finalResult.tx}`); const wrappedBalance1 = await wrapper.balanceOf(account, nftId1); const wrappedBalance2 = await wrapper.balanceOf(account, nftId2); console.log(`New wrapped balances: ${wrappedBalance1}, ${wrappedBalance2}`); const tokenBalance1 = await tokenContract1.balanceOf(account); const tokenBalance2 = await tokenContract2.balanceOf(account); console.log(`New unwrapped balances: ${tokenBalance1}, ${tokenBalance2}`); } catch (e) { console.error(`FAILED: ${e}`); } console.log("Done."); callback(); }