SINAI STANDARD

RouterManager

Manage the Router Hook — chain multiple compliance hooks on a single Token-2022 token

Import

import { RouterManager } from "@sinai-standard/sdk";
const mgr = new RouterManager(anchorProgram, mintPubkey);

Properties

PropertyTypeDescription
configPDAPublicKeyThe RouterConfig PDA address
extraAccountMetasPDAPublicKeyThe ExtraAccountMetas PDA address

Methods

initialize(authority, allowlistHookProgram, taxHookProgram, holdHookProgram, maxBalanceHookProgram?)

Creates the RouterConfig PDA. Pass PublicKey.default for hooks you don't want.

ParameterTypeDescription
authorityPublicKeyAdmin who can manage the router
allowlistHookProgramPublicKeyAllowlist Hook program ID (or PublicKey.default to skip)
taxHookProgramPublicKeyTax Hook program ID (or PublicKey.default to skip)
holdHookProgramPublicKeyHold Hook program ID (or PublicKey.default to skip)
maxBalanceHookProgramPublicKey (optional)Max Balance Hook program ID (defaults to PublicKey.default)

initializeExtraAccountMetas(payer)

Creates the ExtraAccountMetaList PDA.

updateHooks(authority, allowlistHookProgram, taxHookProgram, holdHookProgram, maxBalanceHookProgram?)

Updates the sub-hook program addresses.

toggleActive(authority, isActive)

Kill switch for the entire router. When isActive=false, all sub-hooks are bypassed.

updateAuthority(authority, newAuthority)

Transfers admin rights.

fetchConfig()

Fetches the current on-chain router config.

interface RouterConfigData {
  authority: PublicKey;
  mint: PublicKey;
  isActive: boolean;
  allowlistHookProgram: PublicKey;
  taxHookProgram: PublicKey;
  holdHookProgram: PublicKey;
  maxBalanceHookProgram: PublicKey;
}