curio-wrapper-truffle/scripts/batch-wrap.js

47 lines
1.7 KiB
JavaScript
Raw Normal View History

2023-01-30 17:47:43 +00:00
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();
}