{
  "compiler": {
    "version": "0.8.30+commit.73712a01"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "accesses",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "readSlots",
            "type": "bytes32[]"
          },
          {
            "internalType": "bytes32[]",
            "name": "writeSlots",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "addr",
        "outputs": [
          {
            "internalType": "address",
            "name": "keyAddr",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbs"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbs"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbs"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbs"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbsDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbsDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbsDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqAbsDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRel"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRel"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRel"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRel"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRelDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRelDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRelDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "maxPercentDelta",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertApproxEqRelDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "left",
            "type": "bytes32[]"
          },
          {
            "internalType": "bytes32[]",
            "name": "right",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256[]",
            "name": "left",
            "type": "int256[]"
          },
          {
            "internalType": "int256[]",
            "name": "right",
            "type": "int256[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "left",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "right",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "left",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "right",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "address[]",
            "name": "left",
            "type": "address[]"
          },
          {
            "internalType": "address[]",
            "name": "right",
            "type": "address[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "address[]",
            "name": "left",
            "type": "address[]"
          },
          {
            "internalType": "address[]",
            "name": "right",
            "type": "address[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "left",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "right",
            "type": "bool"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "left",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "right",
            "type": "address"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "left",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "right",
            "type": "uint256[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool[]",
            "name": "left",
            "type": "bool[]"
          },
          {
            "internalType": "bool[]",
            "name": "right",
            "type": "bool[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256[]",
            "name": "left",
            "type": "int256[]"
          },
          {
            "internalType": "int256[]",
            "name": "right",
            "type": "int256[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "left",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "right",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "left",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "right",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "left",
            "type": "bytes"
          },
          {
            "internalType": "bytes",
            "name": "right",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "left",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "right",
            "type": "bytes32"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "left",
            "type": "string[]"
          },
          {
            "internalType": "string[]",
            "name": "right",
            "type": "string[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "left",
            "type": "bytes32[]"
          },
          {
            "internalType": "bytes32[]",
            "name": "right",
            "type": "bytes32[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "left",
            "type": "bytes"
          },
          {
            "internalType": "bytes",
            "name": "right",
            "type": "bytes"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool[]",
            "name": "left",
            "type": "bool[]"
          },
          {
            "internalType": "bool[]",
            "name": "right",
            "type": "bool[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes[]",
            "name": "left",
            "type": "bytes[]"
          },
          {
            "internalType": "bytes[]",
            "name": "right",
            "type": "bytes[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "left",
            "type": "string[]"
          },
          {
            "internalType": "string[]",
            "name": "right",
            "type": "string[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "left",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "right",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes[]",
            "name": "left",
            "type": "bytes[]"
          },
          {
            "internalType": "bytes[]",
            "name": "right",
            "type": "bytes[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "left",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "right",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "condition",
            "type": "bool"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertFalse"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "condition",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertFalse"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGe"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGe"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGe"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGe"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGt"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGt"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGt"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGt"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertGtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLe"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLe"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLe"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLe"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLeDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLt"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLt"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLt"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLt"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertLtDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "left",
            "type": "bytes32[]"
          },
          {
            "internalType": "bytes32[]",
            "name": "right",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256[]",
            "name": "left",
            "type": "int256[]"
          },
          {
            "internalType": "int256[]",
            "name": "right",
            "type": "int256[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "left",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "right",
            "type": "bool"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes[]",
            "name": "left",
            "type": "bytes[]"
          },
          {
            "internalType": "bytes[]",
            "name": "right",
            "type": "bytes[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "left",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "right",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool[]",
            "name": "left",
            "type": "bool[]"
          },
          {
            "internalType": "bool[]",
            "name": "right",
            "type": "bool[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "left",
            "type": "bytes"
          },
          {
            "internalType": "bytes",
            "name": "right",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "address[]",
            "name": "left",
            "type": "address[]"
          },
          {
            "internalType": "address[]",
            "name": "right",
            "type": "address[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "left",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "right",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bool[]",
            "name": "left",
            "type": "bool[]"
          },
          {
            "internalType": "bool[]",
            "name": "right",
            "type": "bool[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "left",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "right",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "address[]",
            "name": "left",
            "type": "address[]"
          },
          {
            "internalType": "address[]",
            "name": "right",
            "type": "address[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "left",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "right",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "left",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "right",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "left",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "right",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "left",
            "type": "bytes"
          },
          {
            "internalType": "bytes",
            "name": "right",
            "type": "bytes"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "left",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "right",
            "type": "uint256[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "left",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "right",
            "type": "address"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "left",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "right",
            "type": "bytes32"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "left",
            "type": "string[]"
          },
          {
            "internalType": "string[]",
            "name": "right",
            "type": "string[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "left",
            "type": "bytes32[]"
          },
          {
            "internalType": "bytes32[]",
            "name": "right",
            "type": "bytes32[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "left",
            "type": "string[]"
          },
          {
            "internalType": "string[]",
            "name": "right",
            "type": "string[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256[]",
            "name": "left",
            "type": "int256[]"
          },
          {
            "internalType": "int256[]",
            "name": "right",
            "type": "int256[]"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "bytes[]",
            "name": "left",
            "type": "bytes[]"
          },
          {
            "internalType": "bytes[]",
            "name": "right",
            "type": "bytes[]"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEq"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "left",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "right",
            "type": "int256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "left",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "right",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertNotEqDecimal"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "condition",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertTrue"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "condition",
            "type": "bool"
          },
          {
            "internalType": "string",
            "name": "error",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assertTrue"
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "condition",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assume"
      },
      {
        "inputs": [],
        "stateMutability": "pure",
        "type": "function",
        "name": "assumeNoRevert"
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.PotentialRevert[]",
            "name": "potentialReverts",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "address",
                "name": "reverter",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "partialMatch",
                "type": "bool"
              },
              {
                "internalType": "bytes",
                "name": "revertData",
                "type": "bytes"
              }
            ]
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assumeNoRevert"
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.PotentialRevert",
            "name": "potentialRevert",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "reverter",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "partialMatch",
                "type": "bool"
              },
              {
                "internalType": "bytes",
                "name": "revertData",
                "type": "bytes"
              }
            ]
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "assumeNoRevert"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "blob",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "attachBlob"
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "attachDelegation"
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          },
          {
            "internalType": "bool",
            "name": "crossChain",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "attachDelegation"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "current",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "min",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "max",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "bound",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "current",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "min",
            "type": "int256"
          },
          {
            "internalType": "int256",
            "name": "max",
            "type": "int256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "bound",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "char",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "breakpoint"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "char",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "value",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "breakpoint"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "broadcast"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "broadcast"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "broadcast"
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "broadcastRawTransaction"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "closeFile"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "initCodeHash",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "computeCreate2Address",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "initCodeHash",
            "type": "bytes32"
          },
          {
            "internalType": "address",
            "name": "deployer",
            "type": "address"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "computeCreate2Address",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "deployer",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "nonce",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "computeCreateAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "subject",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "search",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "contains",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "from",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "to",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "copyFile",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "copied",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "from",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "to",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "copyStorage"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "recursive",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "createDir"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "walletLabel",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "createWallet",
        "outputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "createWallet",
        "outputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "walletLabel",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "createWallet",
        "outputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "constructorArgs",
            "type": "bytes"
          },
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "constructorArgs",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "constructorArgs",
            "type": "bytes"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "constructorArgs",
            "type": "bytes"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deployCode",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "derivationPath",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "index",
            "type": "uint32"
          },
          {
            "internalType": "string",
            "name": "language",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "deriveKey",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "index",
            "type": "uint32"
          },
          {
            "internalType": "string",
            "name": "language",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "deriveKey",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "index",
            "type": "uint32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "deriveKey",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "derivationPath",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "index",
            "type": "uint32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "deriveKey",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "bindingsPath",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeName",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "eip712HashStruct",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "typeHash",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "typeNameOrDefinition",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "eip712HashStruct",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "typeHash",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "bindingsPath",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeName",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "eip712HashType",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "typeHash",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "typeNameOrDefinition",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "eip712HashType",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "typeHash",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "jsonData",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "eip712HashTypedData",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "ensNamehash",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "value",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envAddress",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "value",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBool",
        "outputs": [
          {
            "internalType": "bool",
            "name": "value",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBool",
        "outputs": [
          {
            "internalType": "bool[]",
            "name": "value",
            "type": "bool[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBytes",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBytes",
        "outputs": [
          {
            "internalType": "bytes[]",
            "name": "value",
            "type": "bytes[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBytes32",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "value",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envBytes32",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "value",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envExists",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envInt",
        "outputs": [
          {
            "internalType": "int256[]",
            "name": "value",
            "type": "int256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "value",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "bytes32[]",
            "name": "defaultValue",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "value",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "int256[]",
            "name": "defaultValue",
            "type": "int256[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "int256[]",
            "name": "value",
            "type": "int256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "defaultValue",
            "type": "bool"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bool",
            "name": "value",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "address",
            "name": "defaultValue",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "address",
            "name": "value",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "defaultValue",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "bytes[]",
            "name": "defaultValue",
            "type": "bytes[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bytes[]",
            "name": "value",
            "type": "bytes[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "uint256[]",
            "name": "defaultValue",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "value",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "string[]",
            "name": "defaultValue",
            "type": "string[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "value",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "defaultValue",
            "type": "bytes"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "bytes32",
            "name": "defaultValue",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "value",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "int256",
            "name": "defaultValue",
            "type": "int256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "int256",
            "name": "value",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "address[]",
            "name": "defaultValue",
            "type": "address[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "value",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "defaultValue",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "string",
            "name": "value",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          },
          {
            "internalType": "bool[]",
            "name": "defaultValue",
            "type": "bool[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envOr",
        "outputs": [
          {
            "internalType": "bool[]",
            "name": "value",
            "type": "bool[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envString",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "value",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envString",
        "outputs": [
          {
            "internalType": "string",
            "name": "value",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delim",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "envUint",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "value",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "fromBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "toBlock",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bytes32[]",
            "name": "topics",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "eth_getLogs",
        "outputs": [
          {
            "internalType": "struct VmSafe.EthGetLogs[]",
            "name": "logs",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "address",
                "name": "emitter",
                "type": "address"
              },
              {
                "internalType": "bytes32[]",
                "name": "topics",
                "type": "bytes32[]"
              },
              {
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
              },
              {
                "internalType": "bytes32",
                "name": "blockHash",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "blockNumber",
                "type": "uint64"
              },
              {
                "internalType": "bytes32",
                "name": "transactionHash",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "transactionIndex",
                "type": "uint64"
              },
              {
                "internalType": "uint256",
                "name": "logIndex",
                "type": "uint256"
              },
              {
                "internalType": "bool",
                "name": "removed",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "exists",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "commandInput",
            "type": "string[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "ffi",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "result",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "version",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "foundryVersionAtLeast",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "version",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "foundryVersionCmp",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "fsMetadata",
        "outputs": [
          {
            "internalType": "struct VmSafe.FsMetadata",
            "name": "metadata",
            "type": "tuple",
            "components": [
              {
                "internalType": "bool",
                "name": "isDir",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isSymlink",
                "type": "bool"
              },
              {
                "internalType": "uint256",
                "name": "length",
                "type": "uint256"
              },
              {
                "internalType": "bool",
                "name": "readOnly",
                "type": "bool"
              },
              {
                "internalType": "uint256",
                "name": "modified",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "accessed",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "created",
                "type": "uint256"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "code",
            "type": "bytes"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getArtifactPathByCode",
        "outputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "deployedCode",
            "type": "bytes"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getArtifactPathByDeployedCode",
        "outputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getBlobBaseFee",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "blobBaseFee",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getBlockNumber",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "height",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getBlockTimestamp",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "timestamp",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "chainId",
            "type": "uint64"
          },
          {
            "internalType": "enum VmSafe.BroadcastTxType",
            "name": "txType",
            "type": "uint8"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getBroadcast",
        "outputs": [
          {
            "internalType": "struct VmSafe.BroadcastTxSummary",
            "name": "",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "txHash",
                "type": "bytes32"
              },
              {
                "internalType": "enum VmSafe.BroadcastTxType",
                "name": "txType",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "contractAddress",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "blockNumber",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "success",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "chainId",
            "type": "uint64"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getBroadcasts",
        "outputs": [
          {
            "internalType": "struct VmSafe.BroadcastTxSummary[]",
            "name": "",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "txHash",
                "type": "bytes32"
              },
              {
                "internalType": "enum VmSafe.BroadcastTxType",
                "name": "txType",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "contractAddress",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "blockNumber",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "success",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "chainId",
            "type": "uint64"
          },
          {
            "internalType": "enum VmSafe.BroadcastTxType",
            "name": "txType",
            "type": "uint8"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getBroadcasts",
        "outputs": [
          {
            "internalType": "struct VmSafe.BroadcastTxSummary[]",
            "name": "",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "txHash",
                "type": "bytes32"
              },
              {
                "internalType": "enum VmSafe.BroadcastTxType",
                "name": "txType",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "contractAddress",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "blockNumber",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "success",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "chainAlias",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getChain",
        "outputs": [
          {
            "internalType": "struct VmSafe.Chain",
            "name": "chain",
            "type": "tuple",
            "components": [
              {
                "internalType": "string",
                "name": "name",
                "type": "string"
              },
              {
                "internalType": "uint256",
                "name": "chainId",
                "type": "uint256"
              },
              {
                "internalType": "string",
                "name": "chainAlias",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "rpcUrl",
                "type": "string"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "chainId",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getChain",
        "outputs": [
          {
            "internalType": "struct VmSafe.Chain",
            "name": "chain",
            "type": "tuple",
            "components": [
              {
                "internalType": "string",
                "name": "name",
                "type": "string"
              },
              {
                "internalType": "uint256",
                "name": "chainId",
                "type": "uint256"
              },
              {
                "internalType": "string",
                "name": "chainAlias",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "rpcUrl",
                "type": "string"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getChainId",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "blockChainId",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getCode",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "creationBytecode",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "artifactPath",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getDeployedCode",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "runtimeBytecode",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "chainId",
            "type": "uint64"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getDeployment",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getDeployment",
        "outputs": [
          {
            "internalType": "address",
            "name": "deployedAddress",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "contractName",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "chainId",
            "type": "uint64"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getDeployments",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "deployedAddresses",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "pure",
        "type": "function",
        "name": "getEvmVersion",
        "outputs": [
          {
            "internalType": "string",
            "name": "evm",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getFoundryVersion",
        "outputs": [
          {
            "internalType": "string",
            "name": "version",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getLabel",
        "outputs": [
          {
            "internalType": "string",
            "name": "currentLabel",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "elementSlot",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getMappingKeyAndParentOf",
        "outputs": [
          {
            "internalType": "bool",
            "name": "found",
            "type": "bool"
          },
          {
            "internalType": "bytes32",
            "name": "key",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "parent",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "mappingSlot",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getMappingLength",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "length",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "mappingSlot",
            "type": "bytes32"
          },
          {
            "internalType": "uint256",
            "name": "idx",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getMappingSlotAt",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "value",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getNonce",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "nonce",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getNonce",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "nonce",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "blockNumber",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getRawBlockHeader",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "rlpHeader",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getRecordedLogs",
        "outputs": [
          {
            "internalType": "struct VmSafe.Log[]",
            "name": "logs",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32[]",
                "name": "topics",
                "type": "bytes32[]"
              },
              {
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
              },
              {
                "internalType": "address",
                "name": "emitter",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getStateDiff",
        "outputs": [
          {
            "internalType": "string",
            "name": "diff",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getStateDiffJson",
        "outputs": [
          {
            "internalType": "string",
            "name": "diff",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getStorageAccesses",
        "outputs": [
          {
            "internalType": "struct VmSafe.StorageAccess[]",
            "name": "storageAccesses",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "address",
                "name": "account",
                "type": "address"
              },
              {
                "internalType": "bytes32",
                "name": "slot",
                "type": "bytes32"
              },
              {
                "internalType": "bool",
                "name": "isWrite",
                "type": "bool"
              },
              {
                "internalType": "bytes32",
                "name": "previousValue",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "newValue",
                "type": "bytes32"
              },
              {
                "internalType": "bool",
                "name": "reverted",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "variableName",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getStorageSlots",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "slots",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getWallets",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "wallets",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "indexOf",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "enum VmSafe.ForgeContext",
            "name": "context",
            "type": "uint8"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "isContext",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "isDir",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "isFile",
        "outputs": [
          {
            "internalType": "bool",
            "name": "result",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "keyExists",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "keyExistsJson",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "keyExistsToml",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "newLabel",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "label"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "lastCallGas",
        "outputs": [
          {
            "internalType": "struct VmSafe.Gas",
            "name": "gas",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint64",
                "name": "gasLimit",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "gasTotalUsed",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "gasMemoryUsed",
                "type": "uint64"
              },
              {
                "internalType": "int64",
                "name": "gasRefunded",
                "type": "int64"
              },
              {
                "internalType": "uint64",
                "name": "gasRemaining",
                "type": "uint64"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "slot",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "load",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "parsedValue",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseBool",
        "outputs": [
          {
            "internalType": "bool",
            "name": "parsedValue",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseBytes",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "parsedValue",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseBytes32",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "parsedValue",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "parsedValue",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJson",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJson",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonAddressArray",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBool",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBoolArray",
        "outputs": [
          {
            "internalType": "bool[]",
            "name": "",
            "type": "bool[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBytes",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBytes32",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBytes32Array",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonBytesArray",
        "outputs": [
          {
            "internalType": "bytes[]",
            "name": "",
            "type": "bytes[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonIntArray",
        "outputs": [
          {
            "internalType": "int256[]",
            "name": "",
            "type": "int256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonKeys",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "keys",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonString",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonStringArray",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonType",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonType",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonTypeArray",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseJsonUintArray",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseToml",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseToml",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "abiEncodedData",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlAddressArray",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBool",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBoolArray",
        "outputs": [
          {
            "internalType": "bool[]",
            "name": "",
            "type": "bool[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBytes",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBytes32",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBytes32Array",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlBytesArray",
        "outputs": [
          {
            "internalType": "bytes[]",
            "name": "",
            "type": "bytes[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlIntArray",
        "outputs": [
          {
            "internalType": "int256[]",
            "name": "",
            "type": "int256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlKeys",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "keys",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlString",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlStringArray",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlType",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlType",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlTypeArray",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "toml",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "key",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseTomlUintArray",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "parseUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "parsedValue",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "pauseGasMetering"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "pauseTracing"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "projectRoot",
        "outputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "promptText",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "prompt",
        "outputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "promptText",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "promptAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "promptText",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "promptSecret",
        "outputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "promptText",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "promptSecretUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "promptText",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "promptUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "publicKeyP256",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "publicKeyX",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "publicKeyY",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomBool",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "len",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "randomBytes",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomBytes4",
        "outputs": [
          {
            "internalType": "bytes4",
            "name": "",
            "type": "bytes4"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomBytes8",
        "outputs": [
          {
            "internalType": "bytes8",
            "name": "",
            "type": "bytes8"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "bits",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "randomInt",
        "outputs": [
          {
            "internalType": "int256",
            "name": "",
            "type": "int256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "randomUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "bits",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "randomUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "min",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "max",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "randomUint",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "maxDepth",
            "type": "uint64"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readDir",
        "outputs": [
          {
            "internalType": "struct VmSafe.DirEntry[]",
            "name": "entries",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "string",
                "name": "errorMessage",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "path",
                "type": "string"
              },
              {
                "internalType": "uint64",
                "name": "depth",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "isDir",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isSymlink",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "uint64",
            "name": "maxDepth",
            "type": "uint64"
          },
          {
            "internalType": "bool",
            "name": "followLinks",
            "type": "bool"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readDir",
        "outputs": [
          {
            "internalType": "struct VmSafe.DirEntry[]",
            "name": "entries",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "string",
                "name": "errorMessage",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "path",
                "type": "string"
              },
              {
                "internalType": "uint64",
                "name": "depth",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "isDir",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isSymlink",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readDir",
        "outputs": [
          {
            "internalType": "struct VmSafe.DirEntry[]",
            "name": "entries",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "string",
                "name": "errorMessage",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "path",
                "type": "string"
              },
              {
                "internalType": "uint64",
                "name": "depth",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "isDir",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isSymlink",
                "type": "bool"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readFile",
        "outputs": [
          {
            "internalType": "string",
            "name": "data",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readFileBinary",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readLine",
        "outputs": [
          {
            "internalType": "string",
            "name": "line",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "linkPath",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "readLink",
        "outputs": [
          {
            "internalType": "string",
            "name": "targetPath",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "record"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "recordLogs"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "rememberKey",
        "outputs": [
          {
            "internalType": "address",
            "name": "keyAddr",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "derivationPath",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "count",
            "type": "uint32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "rememberKeys",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "keyAddrs",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "mnemonic",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "derivationPath",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "language",
            "type": "string"
          },
          {
            "internalType": "uint32",
            "name": "count",
            "type": "uint32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "rememberKeys",
        "outputs": [
          {
            "internalType": "address[]",
            "name": "keyAddrs",
            "type": "address[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "recursive",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "removeDir"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "removeFile"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "from",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "to",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "replace",
        "outputs": [
          {
            "internalType": "string",
            "name": "output",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "resetGasMetering"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "resolveEnv",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "resumeGasMetering"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "resumeTracing"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "urlOrAlias",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "method",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "params",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "rpc",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "method",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "params",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "rpc",
        "outputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "rpcAlias",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "rpcUrl",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "rpcUrlStructs",
        "outputs": [
          {
            "internalType": "struct VmSafe.Rpc[]",
            "name": "urls",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "string",
                "name": "key",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "url",
                "type": "string"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "rpcUrls",
        "outputs": [
          {
            "internalType": "string[2][]",
            "name": "urls",
            "type": "string[2][]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "address[]",
            "name": "values",
            "type": "address[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeAddress",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "address",
            "name": "value",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeAddress",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bool[]",
            "name": "values",
            "type": "bool[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBool",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "value",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBool",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bytes[]",
            "name": "values",
            "type": "bytes[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBytes",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBytes",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bytes32[]",
            "name": "values",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBytes32",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "bytes32",
            "name": "value",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeBytes32",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "int256",
            "name": "value",
            "type": "int256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeInt",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "int256[]",
            "name": "values",
            "type": "int256[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeInt",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "value",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeJson",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "serializeJsonType",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "typeDescription",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeJsonType",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "string[]",
            "name": "values",
            "type": "string[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeString",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "value",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeString",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeUint",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "uint256[]",
            "name": "values",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeUint",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "objectKey",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "serializeUintToHex",
        "outputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "overwrite",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setArbitraryStorage"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setArbitraryStorage"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "value",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setEnv"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "evm",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setEvmVersion"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "seed",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setSeed"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "array",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "shuffle",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "sign",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "v",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "sign",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "v",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "sign",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "v",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "sign",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "v",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signAndAttachDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "uint64",
            "name": "nonce",
            "type": "uint64"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signAndAttachDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "crossChain",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signAndAttachDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct VmSafe.Wallet",
            "name": "wallet",
            "type": "tuple",
            "components": [
              {
                "internalType": "address",
                "name": "addr",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyX",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "publicKeyY",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "privateKey",
                "type": "uint256"
              }
            ]
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signCompact",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "vs",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "signCompact",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "vs",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "signCompact",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "vs",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "signCompact",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "vs",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "crossChain",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "uint64",
            "name": "nonce",
            "type": "uint64"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "signDelegation",
        "outputs": [
          {
            "internalType": "struct VmSafe.SignedDelegation",
            "name": "signedDelegation",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "nonce",
                "type": "uint64"
              },
              {
                "internalType": "address",
                "name": "implementation",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "signP256",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "digest",
            "type": "bytes32"
          },
          {
            "internalType": "uint256",
            "name": "nonce",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "signWithNonceUnsafe",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "v",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "r",
            "type": "bytes32"
          },
          {
            "internalType": "bytes32",
            "name": "s",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "duration",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "sleep"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "array",
            "type": "uint256[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "sort",
        "outputs": [
          {
            "internalType": "uint256[]",
            "name": "",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "delimiter",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "split",
        "outputs": [
          {
            "internalType": "string[]",
            "name": "outputs",
            "type": "string[]"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startBroadcast"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startBroadcast"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "privateKey",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startBroadcast"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startDebugTraceRecording"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startMappingRecording"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "startStateDiffRecording"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "stopAndReturnDebugTraceRecording",
        "outputs": [
          {
            "internalType": "struct VmSafe.DebugStep[]",
            "name": "step",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "uint256[]",
                "name": "stack",
                "type": "uint256[]"
              },
              {
                "internalType": "bytes",
                "name": "memoryInput",
                "type": "bytes"
              },
              {
                "internalType": "uint8",
                "name": "opcode",
                "type": "uint8"
              },
              {
                "internalType": "uint64",
                "name": "depth",
                "type": "uint64"
              },
              {
                "internalType": "bool",
                "name": "isOutOfGas",
                "type": "bool"
              },
              {
                "internalType": "address",
                "name": "contractAddr",
                "type": "address"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "stopAndReturnStateDiff",
        "outputs": [
          {
            "internalType": "struct VmSafe.AccountAccess[]",
            "name": "accountAccesses",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "struct VmSafe.ChainInfo",
                "name": "chainInfo",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "uint256",
                    "name": "forkId",
                    "type": "uint256"
                  },
                  {
                    "internalType": "uint256",
                    "name": "chainId",
                    "type": "uint256"
                  }
                ]
              },
              {
                "internalType": "enum VmSafe.AccountAccessKind",
                "name": "kind",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "account",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "accessor",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "initialized",
                "type": "bool"
              },
              {
                "internalType": "uint256",
                "name": "oldBalance",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "newBalance",
                "type": "uint256"
              },
              {
                "internalType": "bytes",
                "name": "deployedCode",
                "type": "bytes"
              },
              {
                "internalType": "uint256",
                "name": "value",
                "type": "uint256"
              },
              {
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
              },
              {
                "internalType": "bool",
                "name": "reverted",
                "type": "bool"
              },
              {
                "internalType": "struct VmSafe.StorageAccess[]",
                "name": "storageAccesses",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "slot",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bool",
                    "name": "isWrite",
                    "type": "bool"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "previousValue",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "newValue",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bool",
                    "name": "reverted",
                    "type": "bool"
                  }
                ]
              },
              {
                "internalType": "uint64",
                "name": "depth",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "oldNonce",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "newNonce",
                "type": "uint64"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "stopBroadcast"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "stopMappingRecording"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "stopRecord"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "data",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toBase64",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toBase64",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "data",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toBase64URL",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toBase64URL",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toLowercase",
        "outputs": [
          {
            "internalType": "string",
            "name": "output",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "value",
            "type": "address"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes",
            "name": "value",
            "type": "bytes"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bool",
            "name": "value",
            "type": "bool"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "int256",
            "name": "value",
            "type": "int256"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "value",
            "type": "bytes32"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toString",
        "outputs": [
          {
            "internalType": "string",
            "name": "stringifiedValue",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "toUppercase",
        "outputs": [
          {
            "internalType": "string",
            "name": "output",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "input",
            "type": "string"
          }
        ],
        "stateMutability": "pure",
        "type": "function",
        "name": "trim",
        "outputs": [
          {
            "internalType": "string",
            "name": "output",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string[]",
            "name": "commandInput",
            "type": "string[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "tryFfi",
        "outputs": [
          {
            "internalType": "struct VmSafe.FfiResult",
            "name": "result",
            "type": "tuple",
            "components": [
              {
                "internalType": "int32",
                "name": "exitCode",
                "type": "int32"
              },
              {
                "internalType": "bytes",
                "name": "stdout",
                "type": "bytes"
              },
              {
                "internalType": "bytes",
                "name": "stderr",
                "type": "bytes"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "unixTime",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "milliseconds",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "data",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeFile"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeFileBinary"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeJson"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeJson"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "data",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeLine"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "valueKey",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeToml"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "json",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "path",
            "type": "string"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "writeToml"
      }
    ],
    "devdoc": {
      "kind": "dev",
      "methods": {},
      "version": 1
    },
    "userdoc": {
      "kind": "user",
      "methods": {
        "accesses(address)": {
          "notice": "Gets all accessed reads and write slot from a `vm.record` session, for a given address."
        },
        "addr(uint256)": {
          "notice": "Gets the address for a given private key."
        },
        "assertApproxEqAbs(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."
        },
        "assertApproxEqAbs(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."
        },
        "assertApproxEqAbs(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."
        },
        "assertApproxEqAbs(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."
        },
        "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": {
          "notice": "Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."
        },
        "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."
        },
        "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertApproxEqRel(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"
        },
        "assertApproxEqRel(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."
        },
        "assertApproxEqRel(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"
        },
        "assertApproxEqRel(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."
        },
        "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": {
          "notice": "Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."
        },
        "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."
        },
        "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertEq(address,address)": {
          "notice": "Asserts that two `address` values are equal."
        },
        "assertEq(address,address,string)": {
          "notice": "Asserts that two `address` values are equal and includes error message into revert string on failure."
        },
        "assertEq(address[],address[])": {
          "notice": "Asserts that two arrays of `address` values are equal."
        },
        "assertEq(address[],address[],string)": {
          "notice": "Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bool,bool)": {
          "notice": "Asserts that two `bool` values are equal."
        },
        "assertEq(bool,bool,string)": {
          "notice": "Asserts that two `bool` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bool[],bool[])": {
          "notice": "Asserts that two arrays of `bool` values are equal."
        },
        "assertEq(bool[],bool[],string)": {
          "notice": "Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bytes,bytes)": {
          "notice": "Asserts that two `bytes` values are equal."
        },
        "assertEq(bytes,bytes,string)": {
          "notice": "Asserts that two `bytes` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bytes32,bytes32)": {
          "notice": "Asserts that two `bytes32` values are equal."
        },
        "assertEq(bytes32,bytes32,string)": {
          "notice": "Asserts that two `bytes32` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bytes32[],bytes32[])": {
          "notice": "Asserts that two arrays of `bytes32` values are equal."
        },
        "assertEq(bytes32[],bytes32[],string)": {
          "notice": "Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."
        },
        "assertEq(bytes[],bytes[])": {
          "notice": "Asserts that two arrays of `bytes` values are equal."
        },
        "assertEq(bytes[],bytes[],string)": {
          "notice": "Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."
        },
        "assertEq(int256,int256)": {
          "notice": "Asserts that two `int256` values are equal."
        },
        "assertEq(int256,int256,string)": {
          "notice": "Asserts that two `int256` values are equal and includes error message into revert string on failure."
        },
        "assertEq(int256[],int256[])": {
          "notice": "Asserts that two arrays of `int256` values are equal."
        },
        "assertEq(int256[],int256[],string)": {
          "notice": "Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."
        },
        "assertEq(string,string)": {
          "notice": "Asserts that two `string` values are equal."
        },
        "assertEq(string,string,string)": {
          "notice": "Asserts that two `string` values are equal and includes error message into revert string on failure."
        },
        "assertEq(string[],string[])": {
          "notice": "Asserts that two arrays of `string` values are equal."
        },
        "assertEq(string[],string[],string)": {
          "notice": "Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."
        },
        "assertEq(uint256,uint256)": {
          "notice": "Asserts that two `uint256` values are equal."
        },
        "assertEq(uint256,uint256,string)": {
          "notice": "Asserts that two `uint256` values are equal and includes error message into revert string on failure."
        },
        "assertEq(uint256[],uint256[])": {
          "notice": "Asserts that two arrays of `uint256 values are equal."
        },
        "assertEq(uint256[],uint256[],string)": {
          "notice": "Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."
        },
        "assertEqDecimal(int256,int256,uint256)": {
          "notice": "Asserts that two `int256` values are equal, formatting them with decimals in failure message."
        },
        "assertEqDecimal(int256,int256,uint256,string)": {
          "notice": "Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertEqDecimal(uint256,uint256,uint256)": {
          "notice": "Asserts that two `uint256` values are equal, formatting them with decimals in failure message."
        },
        "assertEqDecimal(uint256,uint256,uint256,string)": {
          "notice": "Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertFalse(bool)": {
          "notice": "Asserts that the given condition is false."
        },
        "assertFalse(bool,string)": {
          "notice": "Asserts that the given condition is false and includes error message into revert string on failure."
        },
        "assertGe(int256,int256)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than or equal to second."
        },
        "assertGe(int256,int256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."
        },
        "assertGe(uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than or equal to second."
        },
        "assertGe(uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."
        },
        "assertGeDecimal(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."
        },
        "assertGeDecimal(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertGeDecimal(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."
        },
        "assertGeDecimal(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertGt(int256,int256)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than second."
        },
        "assertGt(int256,int256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."
        },
        "assertGt(uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than second."
        },
        "assertGt(uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."
        },
        "assertGtDecimal(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."
        },
        "assertGtDecimal(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertGtDecimal(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."
        },
        "assertGtDecimal(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertLe(int256,int256)": {
          "notice": "Compares two `int256` values. Expects first value to be less than or equal to second."
        },
        "assertLe(int256,int256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."
        },
        "assertLe(uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than or equal to second."
        },
        "assertLe(uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."
        },
        "assertLeDecimal(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."
        },
        "assertLeDecimal(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertLeDecimal(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."
        },
        "assertLeDecimal(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertLt(int256,int256)": {
          "notice": "Compares two `int256` values. Expects first value to be less than second."
        },
        "assertLt(int256,int256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."
        },
        "assertLt(uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than second."
        },
        "assertLt(uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."
        },
        "assertLtDecimal(int256,int256,uint256)": {
          "notice": "Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."
        },
        "assertLtDecimal(int256,int256,uint256,string)": {
          "notice": "Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertLtDecimal(uint256,uint256,uint256)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."
        },
        "assertLtDecimal(uint256,uint256,uint256,string)": {
          "notice": "Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertNotEq(address,address)": {
          "notice": "Asserts that two `address` values are not equal."
        },
        "assertNotEq(address,address,string)": {
          "notice": "Asserts that two `address` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(address[],address[])": {
          "notice": "Asserts that two arrays of `address` values are not equal."
        },
        "assertNotEq(address[],address[],string)": {
          "notice": "Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bool,bool)": {
          "notice": "Asserts that two `bool` values are not equal."
        },
        "assertNotEq(bool,bool,string)": {
          "notice": "Asserts that two `bool` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bool[],bool[])": {
          "notice": "Asserts that two arrays of `bool` values are not equal."
        },
        "assertNotEq(bool[],bool[],string)": {
          "notice": "Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bytes,bytes)": {
          "notice": "Asserts that two `bytes` values are not equal."
        },
        "assertNotEq(bytes,bytes,string)": {
          "notice": "Asserts that two `bytes` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bytes32,bytes32)": {
          "notice": "Asserts that two `bytes32` values are not equal."
        },
        "assertNotEq(bytes32,bytes32,string)": {
          "notice": "Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bytes32[],bytes32[])": {
          "notice": "Asserts that two arrays of `bytes32` values are not equal."
        },
        "assertNotEq(bytes32[],bytes32[],string)": {
          "notice": "Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(bytes[],bytes[])": {
          "notice": "Asserts that two arrays of `bytes` values are not equal."
        },
        "assertNotEq(bytes[],bytes[],string)": {
          "notice": "Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(int256,int256)": {
          "notice": "Asserts that two `int256` values are not equal."
        },
        "assertNotEq(int256,int256,string)": {
          "notice": "Asserts that two `int256` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(int256[],int256[])": {
          "notice": "Asserts that two arrays of `int256` values are not equal."
        },
        "assertNotEq(int256[],int256[],string)": {
          "notice": "Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(string,string)": {
          "notice": "Asserts that two `string` values are not equal."
        },
        "assertNotEq(string,string,string)": {
          "notice": "Asserts that two `string` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(string[],string[])": {
          "notice": "Asserts that two arrays of `string` values are not equal."
        },
        "assertNotEq(string[],string[],string)": {
          "notice": "Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(uint256,uint256)": {
          "notice": "Asserts that two `uint256` values are not equal."
        },
        "assertNotEq(uint256,uint256,string)": {
          "notice": "Asserts that two `uint256` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEq(uint256[],uint256[])": {
          "notice": "Asserts that two arrays of `uint256` values are not equal."
        },
        "assertNotEq(uint256[],uint256[],string)": {
          "notice": "Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."
        },
        "assertNotEqDecimal(int256,int256,uint256)": {
          "notice": "Asserts that two `int256` values are not equal, formatting them with decimals in failure message."
        },
        "assertNotEqDecimal(int256,int256,uint256,string)": {
          "notice": "Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertNotEqDecimal(uint256,uint256,uint256)": {
          "notice": "Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."
        },
        "assertNotEqDecimal(uint256,uint256,uint256,string)": {
          "notice": "Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."
        },
        "assertTrue(bool)": {
          "notice": "Asserts that the given condition is true."
        },
        "assertTrue(bool,string)": {
          "notice": "Asserts that the given condition is true and includes error message into revert string on failure."
        },
        "assume(bool)": {
          "notice": "If the condition is false, discard this run's fuzz inputs and generate new ones."
        },
        "assumeNoRevert((address,bool,bytes))": {
          "notice": "Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters."
        },
        "assumeNoRevert((address,bool,bytes)[])": {
          "notice": "Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters."
        },
        "assumeNoRevert()": {
          "notice": "Discard this run's fuzz inputs and generate new ones if next call reverted."
        },
        "attachBlob(bytes)": {
          "notice": "Attach an EIP-4844 blob to the next call"
        },
        "attachDelegation((uint8,bytes32,bytes32,uint64,address))": {
          "notice": "Designate the next call as an EIP-7702 transaction"
        },
        "attachDelegation((uint8,bytes32,bytes32,uint64,address),bool)": {
          "notice": "Designate the next call as an EIP-7702 transaction, with optional cross-chain validity."
        },
        "bound(int256,int256,int256)": {
          "notice": "Returns an int256 value bounded in given range and different from the current one."
        },
        "bound(uint256,uint256,uint256)": {
          "notice": "Returns an uint256 value bounded in given range and different from the current one."
        },
        "breakpoint(string)": {
          "notice": "Writes a breakpoint to jump to in the debugger."
        },
        "breakpoint(string,bool)": {
          "notice": "Writes a conditional breakpoint to jump to in the debugger."
        },
        "broadcast()": {
          "notice": "Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."
        },
        "broadcast(address)": {
          "notice": "Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."
        },
        "broadcast(uint256)": {
          "notice": "Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."
        },
        "broadcastRawTransaction(bytes)": {
          "notice": "Takes a signed transaction and broadcasts it to the network."
        },
        "closeFile(string)": {
          "notice": "Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."
        },
        "computeCreate2Address(bytes32,bytes32)": {
          "notice": "Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."
        },
        "computeCreate2Address(bytes32,bytes32,address)": {
          "notice": "Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."
        },
        "computeCreateAddress(address,uint256)": {
          "notice": "Compute the address a contract will be deployed at for a given deployer address and nonce."
        },
        "contains(string,string)": {
          "notice": "Returns true if `search` is found in `subject`, false otherwise."
        },
        "copyFile(string,string)": {
          "notice": "Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."
        },
        "copyStorage(address,address)": {
          "notice": "Utility cheatcode to copy storage of `from` contract to another `to` contract."
        },
        "createDir(string,bool)": {
          "notice": "Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."
        },
        "createWallet(string)": {
          "notice": "Derives a private key from the name, labels the account with that name, and returns the wallet."
        },
        "createWallet(uint256)": {
          "notice": "Generates a wallet from the private key and returns the wallet."
        },
        "createWallet(uint256,string)": {
          "notice": "Generates a wallet from the private key, labels the account with that name, and returns the wallet."
        },
        "deployCode(string)": {
          "notice": "Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional."
        },
        "deployCode(string,bytes)": {
          "notice": "Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts abi-encoded constructor arguments."
        },
        "deployCode(string,bytes,bytes32)": {
          "notice": "Deploys a contract from an artifact file, using the CREATE2 salt. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts abi-encoded constructor arguments."
        },
        "deployCode(string,bytes,uint256)": {
          "notice": "Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts abi-encoded constructor arguments and `msg.value`."
        },
        "deployCode(string,bytes,uint256,bytes32)": {
          "notice": "Deploys a contract from an artifact file, using the CREATE2 salt. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts abi-encoded constructor arguments and `msg.value`."
        },
        "deployCode(string,bytes32)": {
          "notice": "Deploys a contract from an artifact file, using the CREATE2 salt. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional."
        },
        "deployCode(string,uint256)": {
          "notice": "Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts `msg.value`."
        },
        "deployCode(string,uint256,bytes32)": {
          "notice": "Deploys a contract from an artifact file, using the CREATE2 salt. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional. Additionally accepts `msg.value`."
        },
        "deriveKey(string,string,uint32)": {
          "notice": "Derive a private key from a provided mnemonic string (or mnemonic file path) at `{derivationPath}{index}`."
        },
        "deriveKey(string,string,uint32,string)": {
          "notice": "Derive a private key from a provided mnemonic string (or mnemonic file path) in the specified language at `{derivationPath}{index}`."
        },
        "deriveKey(string,uint32)": {
          "notice": "Derive a private key from a provided mnemonic string (or mnemonic file path) at the derivation path `m/44'/60'/0'/0/{index}`."
        },
        "deriveKey(string,uint32,string)": {
          "notice": "Derive a private key from a provided mnemonic string (or mnemonic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."
        },
        "eip712HashStruct(string,bytes)": {
          "notice": "Generates the struct hash of the canonical EIP-712 type representation and its abi-encoded data. Supports 2 different inputs: 1. Name of the type (i.e. \"PermitSingle\"): * requires previous binding generation with `forge bind-json`. * bindings will be retrieved from the path configured in `foundry.toml`. 2. String representation of the type (i.e. \"Foo(Bar bar) Bar(uint256 baz)\"). * Note: the cheatcode will use the canonical type even if the input is malformated with the wrong order of elements or with extra whitespaces."
        },
        "eip712HashStruct(string,string,bytes)": {
          "notice": "Generates the struct hash of the canonical EIP-712 type representation and its abi-encoded data. Requires previous binding generation with `forge bind-json`. Params: * `bindingsPath`: path where the output of `forge bind-json` is stored. * `typeName`: Name of the type (i.e. \"PermitSingle\"). * `abiEncodedData`: ABI-encoded data for the struct that is being hashed."
        },
        "eip712HashType(string)": {
          "notice": "Generates the hash of the canonical EIP-712 type representation. Supports 2 different inputs: 1. Name of the type (i.e. \"Transaction\"): * requires previous binding generation with `forge bind-json`. * bindings will be retrieved from the path configured in `foundry.toml`. 2. String representation of the type (i.e. \"Foo(Bar bar) Bar(uint256 baz)\"). * Note: the cheatcode will output the canonical type even if the input is malformated with the wrong order of elements or with extra whitespaces."
        },
        "eip712HashType(string,string)": {
          "notice": "Generates the hash of the canonical EIP-712 type representation. Requires previous binding generation with `forge bind-json`. Params: * `bindingsPath`: path where the output of `forge bind-json` is stored. * `typeName`: Name of the type (i.e. \"Transaction\")."
        },
        "eip712HashTypedData(string)": {
          "notice": "Generates a ready-to-sign digest of human-readable typed data following the EIP-712 standard."
        },
        "ensNamehash(string)": {
          "notice": "Returns ENS namehash for provided string."
        },
        "envAddress(string)": {
          "notice": "Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."
        },
        "envAddress(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envBool(string)": {
          "notice": "Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."
        },
        "envBool(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envBytes(string)": {
          "notice": "Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."
        },
        "envBytes(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envBytes32(string)": {
          "notice": "Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."
        },
        "envBytes32(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envExists(string)": {
          "notice": "Gets the environment variable `name` and returns true if it exists, else returns false."
        },
        "envInt(string)": {
          "notice": "Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."
        },
        "envInt(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envOr(string,address)": {
          "notice": "Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,bool)": {
          "notice": "Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,bytes)": {
          "notice": "Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,bytes32)": {
          "notice": "Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,int256)": {
          "notice": "Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,address[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,bool[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,bytes32[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,bytes[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,int256[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,string[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,string,uint256[])": {
          "notice": "Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envOr(string,uint256)": {
          "notice": "Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."
        },
        "envString(string)": {
          "notice": "Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."
        },
        "envString(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "envUint(string)": {
          "notice": "Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."
        },
        "envUint(string,string)": {
          "notice": "Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."
        },
        "eth_getLogs(uint256,uint256,address,bytes32[])": {
          "notice": "Gets all the logs according to specified filter."
        },
        "exists(string)": {
          "notice": "Returns true if the given path points to an existing entity, else returns false."
        },
        "ffi(string[])": {
          "notice": "Performs a foreign function call via the terminal."
        },
        "foundryVersionAtLeast(string)": {
          "notice": "Returns true if the current Foundry version is greater than or equal to the given version. The given version string must be in the format `major.minor.patch`. This is equivalent to `foundryVersionCmp(version) >= 0`."
        },
        "foundryVersionCmp(string)": {
          "notice": "Compares the current Foundry version with the given version string. The given version string must be in the format `major.minor.patch`. Returns: -1 if current Foundry version is less than the given version 0 if current Foundry version equals the given version 1 if current Foundry version is greater than the given version This result can then be used with a comparison operator against `0`. For example, to check if the current Foundry version is greater than or equal to `1.0.0`: `if (foundryVersionCmp(\"1.0.0\") >= 0) { ... }`"
        },
        "fsMetadata(string)": {
          "notice": "Given a path, query the file system to get information about a file, directory, etc."
        },
        "getArtifactPathByCode(bytes)": {
          "notice": "Gets the artifact path from code (aka. creation code)."
        },
        "getArtifactPathByDeployedCode(bytes)": {
          "notice": "Gets the artifact path from deployed code (aka. runtime code)."
        },
        "getBlobBaseFee()": {
          "notice": "Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"
        },
        "getBlockNumber()": {
          "notice": "Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"
        },
        "getBlockTimestamp()": {
          "notice": "Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"
        },
        "getBroadcast(string,uint64,uint8)": {
          "notice": "Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`."
        },
        "getBroadcasts(string,uint64)": {
          "notice": "Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."
        },
        "getBroadcasts(string,uint64,uint8)": {
          "notice": "Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."
        },
        "getChain(string)": {
          "notice": "Returns a Chain struct for specific alias"
        },
        "getChain(uint256)": {
          "notice": "Returns a Chain struct for specific chainId"
        },
        "getChainId()": {
          "notice": "Gets the current `block.chainid` of the currently selected environment. You should use this instead of `block.chainid` if you use `vm.selectFork` or `vm.createSelectFork`, as `block.chainid` could be assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"
        },
        "getCode(string)": {
          "notice": "Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional."
        },
        "getDeployedCode(string)": {
          "notice": "Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of <path>:<contract>:<version> where <contract> and <version> parts are optional."
        },
        "getDeployment(string)": {
          "notice": "Returns the most recent deployment for the current `chainId`."
        },
        "getDeployment(string,uint64)": {
          "notice": "Returns the most recent deployment for the given contract on `chainId`"
        },
        "getDeployments(string,uint64)": {
          "notice": "Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last."
        },
        "getEvmVersion()": {
          "notice": "Returns the test or script execution evm version. **Note:** The execution evm version is not the same as the compilation one."
        },
        "getFoundryVersion()": {
          "notice": "Returns the Foundry version. Format: <cargo_version>-<tag>+<git_sha_short>.<unix_build_timestamp>.<profile> Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences."
        },
        "getLabel(address)": {
          "notice": "Gets the label for the specified address."
        },
        "getMappingKeyAndParentOf(address,bytes32)": {
          "notice": "Gets the map key and parent of a mapping at a given slot, for a given address."
        },
        "getMappingLength(address,bytes32)": {
          "notice": "Gets the number of elements in the mapping at the given slot, for a given address."
        },
        "getMappingSlotAt(address,bytes32,uint256)": {
          "notice": "Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."
        },
        "getNonce((address,uint256,uint256,uint256))": {
          "notice": "Get the nonce of a `Wallet`."
        },
        "getNonce(address)": {
          "notice": "Gets the nonce of an account."
        },
        "getRawBlockHeader(uint256)": {
          "notice": "Gets the RLP encoded block header for a given block number. Returns the block header in the same format as `cast block <block_number> --raw`."
        },
        "getRecordedLogs()": {
          "notice": "Gets all the recorded logs."
        },
        "getStateDiff()": {
          "notice": "Returns state diffs from current `vm.startStateDiffRecording` session."
        },
        "getStateDiffJson()": {
          "notice": "Returns state diffs from current `vm.startStateDiffRecording` session, in json format."
        },
        "getStorageAccesses()": {
          "notice": "Returns an array of `StorageAccess` from current `vm.stateStateDiffRecording` session"
        },
        "getStorageSlots(address,string)": {
          "notice": "Returns an array of storage slots occupied by the specified variable."
        },
        "getWallets()": {
          "notice": "Returns addresses of available unlocked wallets in the script environment."
        },
        "indexOf(string,string)": {
          "notice": "Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."
        },
        "isContext(uint8)": {
          "notice": "Returns true if `forge` command was executed in given context."
        },
        "isDir(string)": {
          "notice": "Returns true if the path exists on disk and is pointing at a directory, else returns false."
        },
        "isFile(string)": {
          "notice": "Returns true if the path exists on disk and is pointing at a regular file, else returns false."
        },
        "keyExists(string,string)": {
          "notice": "Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."
        },
        "keyExistsJson(string,string)": {
          "notice": "Checks if `key` exists in a JSON object."
        },
        "keyExistsToml(string,string)": {
          "notice": "Checks if `key` exists in a TOML table."
        },
        "label(address,string)": {
          "notice": "Labels an address in call traces."
        },
        "lastCallGas()": {
          "notice": "Gets the gas used in the last call from the callee perspective."
        },
        "load(address,bytes32)": {
          "notice": "Loads a storage slot from an address."
        },
        "parseAddress(string)": {
          "notice": "Parses the given `string` into an `address`."
        },
        "parseBool(string)": {
          "notice": "Parses the given `string` into a `bool`."
        },
        "parseBytes(string)": {
          "notice": "Parses the given `string` into `bytes`."
        },
        "parseBytes32(string)": {
          "notice": "Parses the given `string` into a `bytes32`."
        },
        "parseInt(string)": {
          "notice": "Parses the given `string` into a `int256`."
        },
        "parseJson(string)": {
          "notice": "ABI-encodes a JSON object."
        },
        "parseJson(string,string)": {
          "notice": "ABI-encodes a JSON object at `key`."
        },
        "parseJsonAddress(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `address`."
        },
        "parseJsonAddressArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `address[]`."
        },
        "parseJsonBool(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bool`."
        },
        "parseJsonBoolArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bool[]`."
        },
        "parseJsonBytes(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bytes`."
        },
        "parseJsonBytes32(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bytes32`."
        },
        "parseJsonBytes32Array(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bytes32[]`."
        },
        "parseJsonBytesArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `bytes[]`."
        },
        "parseJsonInt(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `int256`."
        },
        "parseJsonIntArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `int256[]`."
        },
        "parseJsonKeys(string,string)": {
          "notice": "Returns an array of all the keys in a JSON object."
        },
        "parseJsonString(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `string`."
        },
        "parseJsonStringArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `string[]`."
        },
        "parseJsonType(string,string)": {
          "notice": "Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."
        },
        "parseJsonType(string,string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."
        },
        "parseJsonTypeArray(string,string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."
        },
        "parseJsonUint(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `uint256`."
        },
        "parseJsonUintArray(string,string)": {
          "notice": "Parses a string of JSON data at `key` and coerces it to `uint256[]`."
        },
        "parseToml(string)": {
          "notice": "ABI-encodes a TOML table."
        },
        "parseToml(string,string)": {
          "notice": "ABI-encodes a TOML table at `key`."
        },
        "parseTomlAddress(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `address`."
        },
        "parseTomlAddressArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `address[]`."
        },
        "parseTomlBool(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bool`."
        },
        "parseTomlBoolArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bool[]`."
        },
        "parseTomlBytes(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bytes`."
        },
        "parseTomlBytes32(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bytes32`."
        },
        "parseTomlBytes32Array(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bytes32[]`."
        },
        "parseTomlBytesArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `bytes[]`."
        },
        "parseTomlInt(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `int256`."
        },
        "parseTomlIntArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `int256[]`."
        },
        "parseTomlKeys(string,string)": {
          "notice": "Returns an array of all the keys in a TOML table."
        },
        "parseTomlString(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `string`."
        },
        "parseTomlStringArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `string[]`."
        },
        "parseTomlType(string,string)": {
          "notice": "Parses a string of TOML data and coerces it to type corresponding to `typeDescription`."
        },
        "parseTomlType(string,string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`."
        },
        "parseTomlTypeArray(string,string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`."
        },
        "parseTomlUint(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `uint256`."
        },
        "parseTomlUintArray(string,string)": {
          "notice": "Parses a string of TOML data at `key` and coerces it to `uint256[]`."
        },
        "parseUint(string)": {
          "notice": "Parses the given `string` into a `uint256`."
        },
        "pauseGasMetering()": {
          "notice": "Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."
        },
        "pauseTracing()": {
          "notice": "Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging."
        },
        "projectRoot()": {
          "notice": "Get the path of the current project root."
        },
        "prompt(string)": {
          "notice": "Prompts the user for a string value in the terminal."
        },
        "promptAddress(string)": {
          "notice": "Prompts the user for an address in the terminal."
        },
        "promptSecret(string)": {
          "notice": "Prompts the user for a hidden string value in the terminal."
        },
        "promptSecretUint(string)": {
          "notice": "Prompts the user for hidden uint256 in the terminal (usually pk)."
        },
        "promptUint(string)": {
          "notice": "Prompts the user for uint256 in the terminal."
        },
        "publicKeyP256(uint256)": {
          "notice": "Derives secp256r1 public key from the provided `privateKey`."
        },
        "randomAddress()": {
          "notice": "Returns a random `address`."
        },
        "randomBool()": {
          "notice": "Returns a random `bool`."
        },
        "randomBytes(uint256)": {
          "notice": "Returns a random byte array value of the given length."
        },
        "randomBytes4()": {
          "notice": "Returns a random fixed-size byte array of length 4."
        },
        "randomBytes8()": {
          "notice": "Returns a random fixed-size byte array of length 8."
        },
        "randomInt()": {
          "notice": "Returns a random `int256` value."
        },
        "randomInt(uint256)": {
          "notice": "Returns a random `int256` value of given bits."
        },
        "randomUint()": {
          "notice": "Returns a random uint256 value."
        },
        "randomUint(uint256)": {
          "notice": "Returns a random `uint256` value of given bits."
        },
        "randomUint(uint256,uint256)": {
          "notice": "Returns random uint256 value between the provided range (=min..=max)."
        },
        "readDir(string)": {
          "notice": "Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."
        },
        "readDir(string,uint64)": {
          "notice": "See `readDir(string)`."
        },
        "readDir(string,uint64,bool)": {
          "notice": "See `readDir(string)`."
        },
        "readFile(string)": {
          "notice": "Reads the entire content of file to string. `path` is relative to the project root."
        },
        "readFileBinary(string)": {
          "notice": "Reads the entire content of file as binary. `path` is relative to the project root."
        },
        "readLine(string)": {
          "notice": "Reads next line of file to string."
        },
        "readLink(string)": {
          "notice": "Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."
        },
        "record()": {
          "notice": "Records all storage reads and writes. Use `accesses` to get the recorded data. Subsequent calls to `record` will clear the previous data."
        },
        "recordLogs()": {
          "notice": "Record all the transaction logs."
        },
        "rememberKey(uint256)": {
          "notice": "Adds a private key to the local forge wallet and returns the address."
        },
        "rememberKeys(string,string,string,uint32)": {
          "notice": "Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."
        },
        "rememberKeys(string,string,uint32)": {
          "notice": "Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."
        },
        "removeDir(string,bool)": {
          "notice": "Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."
        },
        "removeFile(string)": {
          "notice": "Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."
        },
        "replace(string,string,string)": {
          "notice": "Replaces occurrences of `from` in the given `string` with `to`."
        },
        "resetGasMetering()": {
          "notice": "Reset gas metering (i.e. gas usage is set to gas limit)."
        },
        "resolveEnv(string)": {
          "notice": "Resolves the env variable placeholders of a given input string."
        },
        "resumeGasMetering()": {
          "notice": "Resumes gas metering (i.e. gas usage is counted again). Noop if already on."
        },
        "resumeTracing()": {
          "notice": "Unpauses collection of call traces."
        },
        "rpc(string,string)": {
          "notice": "Performs an Ethereum JSON-RPC request to the current fork URL."
        },
        "rpc(string,string,string)": {
          "notice": "Performs an Ethereum JSON-RPC request to the given endpoint."
        },
        "rpcUrl(string)": {
          "notice": "Returns the RPC url for the given alias."
        },
        "rpcUrlStructs()": {
          "notice": "Returns all rpc urls and their aliases as structs."
        },
        "rpcUrls()": {
          "notice": "Returns all rpc urls and their aliases `[alias, url][]`."
        },
        "serializeAddress(string,string,address)": {
          "notice": "See `serializeJson`."
        },
        "serializeAddress(string,string,address[])": {
          "notice": "See `serializeJson`."
        },
        "serializeBool(string,string,bool)": {
          "notice": "See `serializeJson`."
        },
        "serializeBool(string,string,bool[])": {
          "notice": "See `serializeJson`."
        },
        "serializeBytes(string,string,bytes)": {
          "notice": "See `serializeJson`."
        },
        "serializeBytes(string,string,bytes[])": {
          "notice": "See `serializeJson`."
        },
        "serializeBytes32(string,string,bytes32)": {
          "notice": "See `serializeJson`."
        },
        "serializeBytes32(string,string,bytes32[])": {
          "notice": "See `serializeJson`."
        },
        "serializeInt(string,string,int256)": {
          "notice": "See `serializeJson`."
        },
        "serializeInt(string,string,int256[])": {
          "notice": "See `serializeJson`."
        },
        "serializeJson(string,string)": {
          "notice": "Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."
        },
        "serializeJsonType(string,bytes)": {
          "notice": "See `serializeJson`."
        },
        "serializeJsonType(string,string,string,bytes)": {
          "notice": "See `serializeJson`."
        },
        "serializeString(string,string,string)": {
          "notice": "See `serializeJson`."
        },
        "serializeString(string,string,string[])": {
          "notice": "See `serializeJson`."
        },
        "serializeUint(string,string,uint256)": {
          "notice": "See `serializeJson`."
        },
        "serializeUint(string,string,uint256[])": {
          "notice": "See `serializeJson`."
        },
        "serializeUintToHex(string,string,uint256)": {
          "notice": "See `serializeJson`."
        },
        "setArbitraryStorage(address)": {
          "notice": "Utility cheatcode to set arbitrary storage for given target address."
        },
        "setArbitraryStorage(address,bool)": {
          "notice": "Utility cheatcode to set arbitrary storage for given target address and overwrite any storage slots that have been previously set."
        },
        "setEnv(string,string)": {
          "notice": "Sets environment variables."
        },
        "setEvmVersion(string)": {
          "notice": "Set the exact test or script execution evm version, e.g. `berlin`, `cancun`. **Note:** The execution evm version is not the same as the compilation one."
        },
        "setSeed(uint256)": {
          "notice": "Set RNG seed."
        },
        "shuffle(uint256[])": {
          "notice": "Randomly shuffles an array."
        },
        "sign((address,uint256,uint256,uint256),bytes32)": {
          "notice": "Signs data with a `Wallet`."
        },
        "sign(address,bytes32)": {
          "notice": "Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."
        },
        "sign(bytes32)": {
          "notice": "Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."
        },
        "sign(uint256,bytes32)": {
          "notice": "Signs `digest` with `privateKey` using the secp256k1 curve."
        },
        "signAndAttachDelegation(address,uint256)": {
          "notice": "Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction"
        },
        "signAndAttachDelegation(address,uint256,bool)": {
          "notice": "Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction, with optional cross-chain validity."
        },
        "signAndAttachDelegation(address,uint256,uint64)": {
          "notice": "Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction for specific nonce"
        },
        "signCompact((address,uint256,uint256,uint256),bytes32)": {
          "notice": "Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."
        },
        "signCompact(address,bytes32)": {
          "notice": "Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address."
        },
        "signCompact(bytes32)": {
          "notice": "Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."
        },
        "signCompact(uint256,bytes32)": {
          "notice": "Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."
        },
        "signDelegation(address,uint256)": {
          "notice": "Sign an EIP-7702 authorization for delegation"
        },
        "signDelegation(address,uint256,bool)": {
          "notice": "Sign an EIP-7702 authorization for delegation, with optional cross-chain validity."
        },
        "signDelegation(address,uint256,uint64)": {
          "notice": "Sign an EIP-7702 authorization for delegation for specific nonce"
        },
        "signP256(uint256,bytes32)": {
          "notice": "Signs `digest` with `privateKey` using the secp256r1 curve."
        },
        "signWithNonceUnsafe(uint256,bytes32,uint256)": {
          "notice": "Signs `digest` with `privateKey` on the secp256k1 curve, using the given `nonce` as the raw ephemeral k value in ECDSA (instead of deriving it deterministically)."
        },
        "sleep(uint256)": {
          "notice": "Suspends execution of the main thread for `duration` milliseconds."
        },
        "sort(uint256[])": {
          "notice": "Sorts an array in ascending order."
        },
        "split(string,string)": {
          "notice": "Splits the given `string` into an array of strings divided by the `delimiter`."
        },
        "startBroadcast()": {
          "notice": "Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."
        },
        "startBroadcast(address)": {
          "notice": "Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."
        },
        "startBroadcast(uint256)": {
          "notice": "Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."
        },
        "startDebugTraceRecording()": {
          "notice": "Records the debug trace during the run."
        },
        "startMappingRecording()": {
          "notice": "Starts recording all map SSTOREs for later retrieval."
        },
        "startStateDiffRecording()": {
          "notice": "Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"
        },
        "stopAndReturnDebugTraceRecording()": {
          "notice": "Stop debug trace recording and returns the recorded debug trace."
        },
        "stopAndReturnStateDiff()": {
          "notice": "Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."
        },
        "stopBroadcast()": {
          "notice": "Stops collecting onchain transactions."
        },
        "stopMappingRecording()": {
          "notice": "Stops recording all map SSTOREs for later retrieval and clears the recorded data."
        },
        "stopRecord()": {
          "notice": "Stops recording storage reads and writes."
        },
        "toBase64(bytes)": {
          "notice": "Encodes a `bytes` value to a base64 string."
        },
        "toBase64(string)": {
          "notice": "Encodes a `string` value to a base64 string."
        },
        "toBase64URL(bytes)": {
          "notice": "Encodes a `bytes` value to a base64url string."
        },
        "toBase64URL(string)": {
          "notice": "Encodes a `string` value to a base64url string."
        },
        "toLowercase(string)": {
          "notice": "Converts the given `string` value to Lowercase."
        },
        "toString(address)": {
          "notice": "Converts the given value to a `string`."
        },
        "toString(bool)": {
          "notice": "Converts the given value to a `string`."
        },
        "toString(bytes)": {
          "notice": "Converts the given value to a `string`."
        },
        "toString(bytes32)": {
          "notice": "Converts the given value to a `string`."
        },
        "toString(int256)": {
          "notice": "Converts the given value to a `string`."
        },
        "toString(uint256)": {
          "notice": "Converts the given value to a `string`."
        },
        "toUppercase(string)": {
          "notice": "Converts the given `string` value to Uppercase."
        },
        "trim(string)": {
          "notice": "Trims leading and trailing whitespace from the given `string` value."
        },
        "tryFfi(string[])": {
          "notice": "Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."
        },
        "unixTime()": {
          "notice": "Returns the time since unix epoch in milliseconds."
        },
        "writeFile(string,string)": {
          "notice": "Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."
        },
        "writeFileBinary(string,bytes)": {
          "notice": "Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."
        },
        "writeJson(string,string)": {
          "notice": "Write a serialized JSON object to a file. If the file exists, it will be overwritten."
        },
        "writeJson(string,string,string)": {
          "notice": "Write a serialized JSON object to an **existing** JSON file, replacing a value with key = <value_key.> This is useful to replace a specific value of a JSON file, without having to parse the entire thing. This cheatcode will create new keys if they didn't previously exist."
        },
        "writeLine(string,string)": {
          "notice": "Writes line to file, creating a file if it does not exist. `path` is relative to the project root."
        },
        "writeToml(string,string)": {
          "notice": "Takes serialized JSON, converts to TOML and write a serialized TOML to a file."
        },
        "writeToml(string,string,string)": {
          "notice": "Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = <value_key.> This is useful to replace a specific value of a TOML file, without having to parse the entire thing. This cheatcode will create new keys if they didn't previously exist."
        }
      },
      "version": 1
    }
  },
  "settings": {
    "remappings": [
      "@openzeppelin/=node_modules/@openzeppelin/",
      "forge-std/=lib/forge-std/src/",
      "hardhat/=node_modules/hardhat/"
    ],
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "metadata": {
      "bytecodeHash": "ipfs"
    },
    "compilationTarget": {
      "lib/forge-std/src/Vm.sol": "VmSafe"
    },
    "evmVersion": "cancun",
    "libraries": {},
    "viaIR": true
  },
  "sources": {
    "lib/forge-std/src/Vm.sol": {
      "keccak256": "0x9a713f54fb97feca432be59f4105779b6041d55f09e814b47e820dabac8a6ffe",
      "urls": [
        "bzz-raw://1b023d74b975d6ec572f2fa88b8310688c223803ef71376667b780188772e1a2",
        "dweb:/ipfs/QmbxEQvNUBxeSUi1w9Fr1BvmLiUyGwXrSDTfX3sWTY5WXV"
      ],
      "license": "MIT OR Apache-2.0"
    }
  },
  "version": 1
}