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(); const tokenBalance1 = await tokenContract1.balanceOf(account); const tokenBalance2 = await tokenContract2.balanceOf(account); console.log(`Unwrapped balances: ${tokenBalance1}, ${tokenBalance2}`); try { console.log(`Approving token 1...`); const result1 = await tokenContract1.approve(wrapper.address, quantity1, { from: account }); console.log(`Approving token 2...`); const result2 = await tokenContract2.approve(wrapper.address, quantity2, { from: account }); console.log("Batch wrapping..."); const finalResult = await wrapper.wrapBatch( [nftId1, nftId2], [quantity1, quantity2], { from: account } ); console.log(`Tx: ${finalResult.tx}`); } catch (e) { console.error(`FAILED: ${e}`); } console.log("Done."); callback(); }