@paulstinchcombe/kami721c-sdk
Version:
SDK for interacting with KAMI721C NFT contracts
44 lines (43 loc) • 2.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ethers_1 = require("ethers");
const KAMI721C_1 = require("../contracts/KAMI721C");
const dotenv_1 = __importDefault(require("dotenv"));
dotenv_1.default.config();
async function main() {
try {
// Get provider and wallet
const provider = new ethers_1.ethers.JsonRpcProvider(process.env.RPC_URL);
const wallet = new ethers_1.ethers.Wallet(process.env.PRIVATE_KEY, provider);
console.log(`Connected with wallet: ${wallet.address}`);
// Get contract instance
const contractAddress = process.env.CONTRACT_ADDRESS;
const nftContract = new KAMI721C_1.KAMI721C(wallet, contractAddress);
// Get USDC address
const usdcAddress = await nftContract.getUsdcTokenAddress();
console.log(`Contract's USDC address: ${usdcAddress}`);
console.log(`Environment USDC address: ${process.env.USDC_ADDRESS}`);
if (usdcAddress.toLowerCase() !== process.env.USDC_ADDRESS.toLowerCase()) {
console.log('WARNING: USDC addresses do not match!');
}
else {
console.log('USDC addresses match ✓');
}
// Get platform commission and address
const platformCommission = await nftContract.getPlatformCommissionPercentage();
const platformAddress = await nftContract.getPlatformAddress();
console.log(`\nPlatform commission: ${platformCommission} basis points (${Number(platformCommission) / 100}%)`);
console.log(`Platform address: ${platformAddress}`);
// Check if the platform address has the PLATFORM_ROLE
const platformRole = await nftContract.PLATFORM_ROLE();
const hasPlatformRole = await nftContract.hasRole(platformRole, platformAddress);
console.log(`Platform address has PLATFORM_ROLE: ${hasPlatformRole}`);
}
catch (error) {
console.error('Error:', error);
}
}
main();