text: import { ethers } from "ethers";
  import sdk from "./1-initialize-sdk.js";
  
  // governance Contract
  const voteModule = sdk.getVoteModule(
    // "0x49446A812C712C240E62741af07d4d52eD92F222"
    "0xE7870715e30A3EE72Be3aed76B7A5c43c0c58AF1"
  );
  
  // voting tokens ERC-20 Contract
  const tokenModule = sdk.getTokenModule(
    "0x9B2ef19F5B2f11d6B068DE9279BDd710077DA5C0"
  );
  
  ( async () => {
    try {
      await tokenModule.grantRole("minter", voteModule.address);
      console.log("Successfully gave vote module permissions");
    } catch (error) {
      console.error("failed to grant vote module permissions", error);
      process.exit(1);
    }
  
    try {
      const ownedTokenBalance = await tokenModule.balanceOf(
        // The creators wallet address
        process.env.WALLET_ADDRESS
      );
      //grab 50% of our held supply, Best enacted in the begining
      // probably modify to run at start or use actual total instead of owned total
      const ownedAmount = ethers.BigNumber.from(ownedTokenBalance.value);
      const percent50 = ownedAmount.div(100).mul(50);
  
      await tokenModule.transfer(
        voteModule.address,
        percent50
      );
  
      console.log("Successfully transfered tokens to vote module");
    } catch (error) {
      console.error("Failed to transfer tokens to vote module",error)
    }
  })();