UNPKG

@paulstinchcombe/kami721c-sdk

Version:

SDK for interacting with KAMI721C NFT contracts

45 lines (36 loc) 1.65 kB
import { ethers } from 'ethers'; import { KAMI721C } from '../contracts/KAMI721C'; import dotenv from 'dotenv'; dotenv.config(); async function main() { try { // Get provider and wallet const provider = new ethers.JsonRpcProvider(process.env.RPC_URL); const wallet = new 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(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();