import type { SidebarItem } from "./types";

export const cmdReference: SidebarItem[] = [
      { text: 'Overview', link: '/reference/cheatcodes/overview'},
      {
        text: 'Environment',
        collapsed: true,
        items: [
          { text: 'warp', link: '/reference/cheatcodes/warp' },
          { text: 'roll', link: '/reference/cheatcodes/roll' },
          { text: 'setBlockhash', link: '/reference/cheatcodes/set-blockhash' },
          { text: 'fee', link: '/reference/cheatcodes/fee' },
          { text: 'getBlockTimestamp', link: '/reference/cheatcodes/get-block-timestamp' },
          { text: 'getBlockNumber', link: '/reference/cheatcodes/get-block-number' },
          { text: 'difficulty', link: '/reference/cheatcodes/difficulty' },
          { text: 'prevrandao', link: '/reference/cheatcodes/prevrandao' },
          { text: 'chainId', link: '/reference/cheatcodes/chain-id' },
          { text: 'getChainId', link: '/reference/cheatcodes/get-chain-id' },
          { text: 'store', link: '/reference/cheatcodes/store' },
          { text: 'setTip20LogoURI', link: '/reference/cheatcodes/set-tip20-logo-uri' },
          { text: 'load', link: '/reference/cheatcodes/load' },
          { text: 'etch', link: '/reference/cheatcodes/etch' },
          { text: 'cloneAccount', link: '/reference/cheatcodes/clone-account' },
          { text: 'dumpState', link: '/reference/cheatcodes/dump-state' },
          { text: 'loadAllocs', link: '/reference/cheatcodes/load-allocs' },
          { text: 'deal', link: '/reference/cheatcodes/deal' },
          { text: 'prank', link: '/reference/cheatcodes/prank' },
          { text: 'startPrank', link: '/reference/cheatcodes/start-prank' },
          { text: 'stopPrank', link: '/reference/cheatcodes/stop-prank' },
          { text: 'readCallers', link: '/reference/cheatcodes/read-callers' },
          { text: 'record', link: '/reference/cheatcodes/record' },
          { text: 'accesses', link: '/reference/cheatcodes/accesses' },
          { text: 'mappingRecording', link: '/reference/cheatcodes/mapping-recording' },
          { text: 'recordLogs', link: '/reference/cheatcodes/record-logs' },
          { text: 'getRecordedLogs', link: '/reference/cheatcodes/get-recorded-logs' },
          { text: 'debugTraceRecording', link: '/reference/cheatcodes/debug-trace-recording' },
          { text: 'setNonce', link: '/reference/cheatcodes/set-nonce' },
          { text: 'getNonce', link: '/reference/cheatcodes/get-nonce' },
          { text: 'mockCall', link: '/reference/cheatcodes/mock-call' },
          { text: 'mockCalls', link: '/reference/cheatcodes/mock-calls' },
          { text: 'mockCallRevert', link: '/reference/cheatcodes/mock-call-revert' },
          { text: 'mockFunction', link: '/reference/cheatcodes/mock-function' },
          { text: 'clearMockedCalls', link: '/reference/cheatcodes/clear-mocked-calls' },
          { text: 'coinbase', link: '/reference/cheatcodes/coinbase' },
          { text: 'broadcast', link: '/reference/cheatcodes/broadcast' },
          { text: 'startBroadcast', link: '/reference/cheatcodes/start-broadcast' },
          { text: 'stopBroadcast', link: '/reference/cheatcodes/stop-broadcast' },
          { text: 'broadcastRawTransaction', link: '/reference/cheatcodes/broadcast-raw-transaction' },
          { text: 'pauseGasMetering', link: '/reference/cheatcodes/pause-gas-metering' },
          { text: 'resetGasMetering', link: '/reference/cheatcodes/reset-gas-metering' },
          { text: 'resumeGasMetering', link: '/reference/cheatcodes/resume-gas-metering' },
          { text: 'lastFrameGas', link: '/reference/cheatcodes/last-frame-gas' },
          { text: 'txGasPrice', link: '/reference/cheatcodes/tx-gas-price' },
          { text: 'executeTransaction', link: '/reference/cheatcodes/execute-transaction' },
          { text: 'startStateDiffRecording', link: '/reference/cheatcodes/start-state-diff-recording' },
          { text: 'stopAndReturnStateDiff', link: '/reference/cheatcodes/stop-and-return-state-diff' },
          { text: 'getStateDiff', link: '/reference/cheatcodes/get-state-diff' },
          { text: 'getStorageSlots', link: '/reference/cheatcodes/get-storage-slots' },
          { text: 'snapshotState', link: '/reference/cheatcodes/state-snapshots' },
          { text: 'snapshotGas', link: '/reference/cheatcodes/gas-snapshots' },
          { text: 'isImplicitlyApproved', link: '/reference/cheatcodes/is-implicitly-approved' },
          { text: 'isContext', link: '/reference/cheatcodes/is-context' },
          { text: 'isIsolateMode', link: '/reference/cheatcodes/is-isolate-mode' },
        ],
      },
      {
        text: 'Assertions',
        collapsed: true,
        items: [
          { text: 'expectRevert', link: '/reference/cheatcodes/expect-revert' },
          { text: 'expectEmit', link: '/reference/cheatcodes/expect-emit' },
          { text: 'expectEmitAnonymous', link: '/reference/cheatcodes/expect-emit-anonymous' },
          { text: 'expectCall', link: '/reference/cheatcodes/expect-call' },
          { text: 'expectSafeMemory', link: '/reference/cheatcodes/expect-safe-memory' },
          { text: 'expectKeychainVerified', link: '/reference/cheatcodes/expect-keychain-verified' },
          { text: 'expectKeychainAdminVerified', link: '/reference/cheatcodes/expect-keychain-admin-verified' },
          { text: 'expectTip20LogoURIUpdated', link: '/reference/cheatcodes/expect-tip20-logo-uri-updated' },
        ],
      },
      {
        text: 'Fuzzer',
        collapsed: true,
        items: [
          { text: 'assume', link: '/reference/cheatcodes/assume' },
          { text: 'assumeNoRevert', link: '/reference/cheatcodes/assume-no-revert' },
          { text: 'assumeImplicitApproval', link: '/reference/cheatcodes/assume-implicit-approval' },
          { text: 'bound', link: '/reference/cheatcodes/bound' },
        ],
      },
      {
        text: 'Forking',
        collapsed: true,
        items: [
          { text: 'createFork', link: '/reference/cheatcodes/create-fork' },
          { text: 'selectFork', link: '/reference/cheatcodes/select-fork' },
          { text: 'createSelectFork', link: '/reference/cheatcodes/create-select-fork' },
          { text: 'activeFork', link: '/reference/cheatcodes/active-fork' },
          { text: 'rollFork', link: '/reference/cheatcodes/roll-fork' },
          { text: 'makePersistent', link: '/reference/cheatcodes/make-persistent' },
          { text: 'revokePersistent', link: '/reference/cheatcodes/revoke-persistent' },
          { text: 'isPersistent', link: '/reference/cheatcodes/is-persistent' },
          { text: 'allowCheatcodes', link: '/reference/cheatcodes/allow-cheatcodes' },
          { text: 'transact', link: '/reference/cheatcodes/transact' },
        ],
      },
      {
        text: 'External',
        collapsed: true,
        items: [
          { text: 'ffi', link: '/reference/cheatcodes/ffi' },
          { text: 'prompt', link: '/reference/cheatcodes/prompt' },
          { text: 'projectRoot', link: '/reference/cheatcodes/project-root' },
          { text: 'getCode', link: '/reference/cheatcodes/get-code' },
          { text: 'getDeployedCode', link: '/reference/cheatcodes/get-deployed-code' },
          { text: 'deployCode', link: '/reference/cheatcodes/deploy-code' },
          { text: 'getSelectors', link: '/reference/cheatcodes/get-selectors' },
          { text: 'sleep', link: '/reference/cheatcodes/sleep' },
          { text: 'unixTime', link: '/reference/cheatcodes/unix-time' },
          { text: 'setEnv', link: '/reference/cheatcodes/set-env' },
          { text: 'envOr', link: '/reference/cheatcodes/env-or' },
          { text: 'envBool', link: '/reference/cheatcodes/env-bool' },
          { text: 'envUint', link: '/reference/cheatcodes/env-uint' },
          { text: 'envInt', link: '/reference/cheatcodes/env-int' },
          { text: 'envAddress', link: '/reference/cheatcodes/env-address' },
          { text: 'envBytes32', link: '/reference/cheatcodes/env-bytes32' },
          { text: 'envString', link: '/reference/cheatcodes/env-string' },
          { text: 'envBytes', link: '/reference/cheatcodes/env-bytes' },
          { text: 'keyExists', link: '/reference/cheatcodes/key-exists' },
          { text: 'keyExistsJson', link: '/reference/cheatcodes/key-exists-json' },
          { text: 'keyExistsToml', link: '/reference/cheatcodes/key-exists-toml' },
          { text: 'parseJson', link: '/reference/cheatcodes/parse-json' },
          { text: 'parseJsonArrayLength', link: '/reference/cheatcodes/parse-json-array-length' },
          { text: 'parseToml', link: '/reference/cheatcodes/parse-toml' },
          { text: 'parseJsonKeys', link: '/reference/cheatcodes/parse-json-keys' },
          { text: 'parseJsonType', link: '/reference/cheatcodes/parse-json-type' },
          { text: 'parseJsonTypeArray', link: '/reference/cheatcodes/parse-json-type-array' },
          { text: 'parseTomlKeys', link: '/reference/cheatcodes/parse-toml-keys' },
          { text: 'serializeJson', link: '/reference/cheatcodes/serialize-json' },
          { text: 'serializeJsonType', link: '/reference/cheatcodes/serialize-json-type' },
          { text: 'writeJson', link: '/reference/cheatcodes/write-json' },
          { text: 'writeToml', link: '/reference/cheatcodes/write-toml' },
        ],
      },
      {
        text: 'Signing',
        collapsed: true,
        items: [
          { text: 'sign', link: '/reference/cheatcodes/sign' },
          { text: 'signCompact', link: '/reference/cheatcodes/sign-compact' },
          { text: 'Ed25519', link: '/reference/cheatcodes/ed25519' },
          { text: 'P256', link: '/reference/cheatcodes/p256' },
          { text: 'signDelegation', link: '/reference/cheatcodes/sign-delegation' },
          { text: 'signKeychain', link: '/reference/cheatcodes/sign-keychain' },
          { text: 'signKeychainAdmin', link: '/reference/cheatcodes/sign-keychain-admin' },
        ],
      },
      {
        text: 'Utilities',
        collapsed: true,
        items: [
          { text: 'addr', link: '/reference/cheatcodes/addr' },
          { text: 'computeCreateAddress', link: '/reference/cheatcodes/compute-create-address' },
          { text: 'computeCreate2Address', link: '/reference/cheatcodes/compute-create2-address' },
          { text: 'skip', link: '/reference/cheatcodes/skip' },
          { text: 'label', link: '/reference/cheatcodes/label' },
          { text: 'getLabel', link: '/reference/cheatcodes/get-label' },
          { text: 'deriveKey', link: '/reference/cheatcodes/derive-key' },
          { text: 'parseBytes', link: '/reference/cheatcodes/parse-bytes' },
          { text: 'parseAddress', link: '/reference/cheatcodes/parse-address' },
          { text: 'parseUint', link: '/reference/cheatcodes/parse-uint' },
          { text: 'parseInt', link: '/reference/cheatcodes/parse-int' },
          { text: 'parseBytes32', link: '/reference/cheatcodes/parse-bytes32' },
          { text: 'parseBool', link: '/reference/cheatcodes/parse-bool' },
          { text: 'rememberKey', link: '/reference/cheatcodes/remember-key' },
          { text: 'toString', link: '/reference/cheatcodes/to-string' },
          { text: 'breakpoint', link: '/reference/cheatcodes/breakpoint' },
          { text: 'createWallet', link: '/reference/cheatcodes/create-wallet' },
          { text: 'getWallets', link: '/reference/cheatcodes/get-wallets' },
          { text: 'copyStorage', link: '/reference/cheatcodes/copy-storage' },
          { text: 'setArbitraryStorage', link: '/reference/cheatcodes/set-arbitrary-storage' },
          { text: 'randomUint', link: '/reference/cheatcodes/random-uint' },
          { text: 'randomInt', link: '/reference/cheatcodes/random-int' },
          { text: 'randomAddress', link: '/reference/cheatcodes/random-address' },
          { text: 'randomBool', link: '/reference/cheatcodes/random-bool' },
          { text: 'randomBytes', link: '/reference/cheatcodes/random-bytes' },
          { text: 'setSeed', link: '/reference/cheatcodes/set-seed' },
          { text: 'ensNamehash', link: '/reference/cheatcodes/ens-namehash' },
          { text: 'foundryVersion', link: '/reference/cheatcodes/foundry-version' },
          { text: 'eip712HashType', link: '/reference/cheatcodes/eip712-hash-type' },
          { text: 'eip712HashStruct', link: '/reference/cheatcodes/eip712-hash-struct' },
          { text: 'eip712HashTypedData', link: '/reference/cheatcodes/eip712-hash-typed-data' },
          { text: 'Strings', link: '/reference/cheatcodes/strings' },
          { text: 'toBase64', link: '/reference/cheatcodes/to-base64' },
        ],
      },
      { text: 'RPC', link: '/reference/cheatcodes/rpc' },
      { text: 'getChain', link: '/reference/cheatcodes/get-chain' },
      { text: 'Files', link: '/reference/cheatcodes/fs' },
];
