import {Command} from 'commander'; import {setupContext} from './context'; import {installInitializeCLI} from './initialize'; import {installDeployTokenCLI} from './deployToken'; import {installFinalizeTransferBridgedCLI} from './finalizeTransferBridged'; import {installInitTransferBridgedCLI} from './initTransferBridged'; import {installRegisterMintCLI} from './registerMint'; import {installCreateTokenCLI} from './createToken'; import {installFinalizeTransferNativeCLI} from './finalizeTransferNative'; import {installInitTransferNativeCLI} from './initTransferNative'; export function cli() { const program = new Command(); program .version('0.0.1') .allowExcessArguments(false) .option('--key-map ', 'Path to the key map', 'keyMap.json') .option('--config ', 'Config') .option('--cluster ', 'Cluster name or endpoint address') .option('--wallet ', 'Path to the signer keypair') .option('--commitment ', 'Commitment level') .option('--skip-preflight', 'Skip preflight') .option('--lookup-table ', 'Lookup table address') .option('--simulate', 'Run simulation first') .option('--print ', 'Print tx instead of running') .hook('preAction', (command: Command) => setupContext(command.opts())); installCreateTokenCLI(program); installInitializeCLI(program); installDeployTokenCLI(program); installFinalizeTransferBridgedCLI(program); installInitTransferBridgedCLI(program); installRegisterMintCLI(program); installFinalizeTransferNativeCLI(program); installInitTransferNativeCLI(program); return program; }