Get Note Position Allowance
The ParabolAccount class provides two methods to check the approval status of note positions:
getApprovedNotePosition: Checks if a specific address is approved for a particular note position.getOperatorApprovedNotePosition: Checks if an operator is approved to manage all note positions of the account.
getApprovedNotePosition
Usage
import { ParabolAccount, SupportedChainIds } from "@parabolfi/core";
 
async function checkNotePositionApproval() {
  const privateKey = "0x..."; // Your private key
  const chainId = SupportedChainIds.ZKSYNC;
 
  const account = await ParabolAccount.fromPrivateKey({
    privateKey,
    chainId,
  });
 
  const to = "0x..."; // Address to check approval for
  const tokenId = "26"; // ID of the note position token
 
  try {
    const isApproved = await account.getApprovedNotePosition(to, tokenId);
    console.log("Is address approved for note position:", isApproved);
  } catch (error) {
    console.error("Error checking note position approval:", error);
  }
}Parameters
to: Address - The address to check approval for.tokenId: string - The ID of the note position token.
Returns
boolean- A boolean indicating whether the address is approved for the specified note position.
Important Notes
- This method involves a read operation on the blockchain and does not modify any state.
 - It checks approval for a specific note position token, not for all tokens owned by the account.
 
getOperatorApprovedNotePosition
Usage
import { ParabolAccount, SupportedChainIds } from "@parabolfi/core";
 
async function checkOperatorApproval() {
  const privateKey = "0x..."; // Your private key
  const chainId = SupportedChainIds.MAINNET;
 
  const account = await ParabolAccount.fromPrivateKey({
    privateKey,
    chainId,
  });
 
  const operator = "0x..."; // Address of the operator to check
 
  try {
    const isApproved = await account.getOperatorApprovedNotePosition(operator);
    console.log("Is operator approved for all note positions:", isApproved);
  } catch (error) {
    console.error("Error checking operator approval:", error);
  }
}Parameters
operator: Address - The address of the operator to check approval for.
Returns
boolean- A boolean indicating whether the operator is approved to manage all note positions of the account.
Important Notes
- This method checks if an operator is approved to manage all note positions, not just a specific one.
 - It’s useful for scenarios where you want to grant or check blanket approval for an address to manage all note positions.
 
Error Handling
Both methods may throw a ParabolSDKError if the read operation fails. Always wrap the calls in try-catch blocks to handle potential errors.
Use Cases
- Checking if a specific contract or address has permission to manage a particular note position before performing operations.
 - Verifying if an operator (e.g., a management contract) has blanket approval to handle all note positions of an account.
 - Implementing approval checks in user interfaces to guide users through necessary approval steps.