@paulstinchcombe/kami721c-sdk
Version:
SDK for interacting with KAMI721C NFT contracts
45 lines (36 loc) • 1.65 kB
text/typescript
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();