40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const Wrapper = artifacts.require("CurioERC1155Wrapper");
|
|
|
|
module.exports = async (callback) => {
|
|
const nftId1 = parseInt(process.argv[6]);
|
|
const quantity1 = BigInt(process.argv[7]);
|
|
const to = process.argv[8];
|
|
|
|
if (/0x[0-9a-fA-F]{40}/.test(to)) {
|
|
const wrapper = await Wrapper.deployed();
|
|
|
|
const [account,] = await web3.eth.getAccounts();
|
|
|
|
const from = process.argv[9] ? process.argv[9] : account;
|
|
if (from !== account) {
|
|
console.log(`Overrode from address`);
|
|
const approved = await wrapper.isApprovedForAll(from, account);
|
|
console.log(`Approved? ${approved ? "yes" : "no"}`);
|
|
}
|
|
|
|
const currentBalance = BigInt(await wrapper.balanceOf(from, nftId1));
|
|
console.log(`Current balance: ${currentBalance}`);
|
|
|
|
if (currentBalance >= quantity1) {
|
|
console.log("Executing transfer transaction...");
|
|
try {
|
|
const result = await wrapper.safeTransferFrom(from, to, nftId1, quantity1.toString(), []);
|
|
console.log(`Transaction: ${result.tx}`);
|
|
}
|
|
catch (e) {
|
|
console.error(`FAILED: ${e}`);
|
|
}
|
|
}
|
|
else {
|
|
console.error("Insufficient balance");
|
|
}
|
|
}
|
|
|
|
callback();
|
|
}
|