{
  "abi": [
    {
      "type": "function",
      "name": "sendCDeposit",
      "inputs": [
        { "name": "_wei", "type": "uint64", "internalType": "uint64" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendCWithdrawal",
      "inputs": [
        { "name": "_wei", "type": "uint64", "internalType": "uint64" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendIocOrder",
      "inputs": [
        { "name": "asset", "type": "uint32", "internalType": "uint32" },
        { "name": "isBuy", "type": "bool", "internalType": "bool" },
        { "name": "limitPx", "type": "uint64", "internalType": "uint64" },
        { "name": "sz", "type": "uint64", "internalType": "uint64" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendSpot",
      "inputs": [
        { "name": "destination", "type": "address", "internalType": "address" },
        { "name": "token", "type": "uint64", "internalType": "uint64" },
        { "name": "_wei", "type": "uint64", "internalType": "uint64" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendTokenDelegate",
      "inputs": [
        { "name": "validator", "type": "address", "internalType": "address" },
        { "name": "_wei", "type": "uint64", "internalType": "uint64" },
        { "name": "isUndelegate", "type": "bool", "internalType": "bool" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendUsdClassTransfer",
      "inputs": [
        { "name": "ntl", "type": "uint64", "internalType": "uint64" },
        { "name": "toPerp", "type": "bool", "internalType": "bool" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sendVaultTransfer",
      "inputs": [
        { "name": "vault", "type": "address", "internalType": "address" },
        { "name": "isDeposit", "type": "bool", "internalType": "bool" },
        { "name": "usd", "type": "uint64", "internalType": "uint64" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "CDeposit",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "_wei",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CWithdrawal",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "_wei",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "IocOrder",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "asset",
          "type": "uint32",
          "indexed": false,
          "internalType": "uint32"
        },
        {
          "name": "isBuy",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        },
        {
          "name": "limitPx",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "sz",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SpotSend",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "destination",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "_wei",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TokenDelegate",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "validator",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "_wei",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "isUndelegate",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "UsdClassTransfer",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "ntl",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "toPerp",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "VaultTransfer",
      "inputs": [
        {
          "name": "user",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "vault",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "isDeposit",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        },
        {
          "name": "usd",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    }
  ],
  "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} },
  "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} },
  "methodIdentifiers": {
    "sendCDeposit(uint64)": "414fa437",
    "sendCWithdrawal(uint64)": "84918d1e",
    "sendIocOrder(uint32,bool,uint64,uint64)": "4e4719ab",
    "sendSpot(address,uint64,uint64)": "0b0ac0ab",
    "sendTokenDelegate(address,uint64,bool)": "db30aa53",
    "sendUsdClassTransfer(uint64,bool)": "2d9d5db6",
    "sendVaultTransfer(address,bool,uint64)": "258f0dcc"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"CDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"CWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"asset\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"limitPx\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sz\",\"type\":\"uint64\"}],\"name\":\"IocOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"token\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"SpotSend\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isUndelegate\",\"type\":\"bool\"}],\"name\":\"TokenDelegate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ntl\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"toPerp\",\"type\":\"bool\"}],\"name\":\"UsdClassTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isDeposit\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"usd\",\"type\":\"uint64\"}],\"name\":\"VaultTransfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"sendCDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"sendCWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"asset\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"limitPx\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sz\",\"type\":\"uint64\"}],\"name\":\"sendIocOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"token\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"}],\"name\":\"sendSpot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_wei\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isUndelegate\",\"type\":\"bool\"}],\"name\":\"sendTokenDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"ntl\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"toPerp\",\"type\":\"bool\"}],\"name\":\"sendUsdClassTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDeposit\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"usd\",\"type\":\"uint64\"}],\"name\":\"sendVaultTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IHyperLiquidWritePrecompile.sol\":\"IHyperLiquidWritePrecompile\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/interfaces/IHyperLiquidWritePrecompile.sol\":{\"keccak256\":\"0xbfa7d38d7675898af0def60823f15550730af3bacb64068a09e1746b21c2cf4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5cba8210ee21bd186dfddbaa2b3f1ceaeb597763cac1e6271c9ae6e8ff4b53f\",\"dweb:/ipfs/QmVV8BtvpwQQ3jqUdTEFs2nnT9Q7gxTajRqgJPmKQuforV\"]}},\"version\":1}",
  "metadata": {
    "compiler": { "version": "0.8.22+commit.4fc1097e" },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint64",
              "name": "_wei",
              "type": "uint64",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "CDeposit",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint64",
              "name": "_wei",
              "type": "uint64",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "CWithdrawal",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint32",
              "name": "asset",
              "type": "uint32",
              "indexed": false
            },
            {
              "internalType": "bool",
              "name": "isBuy",
              "type": "bool",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "limitPx",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "sz",
              "type": "uint64",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "IocOrder",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "destination",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint64",
              "name": "token",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "_wei",
              "type": "uint64",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "SpotSend",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "validator",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint64",
              "name": "_wei",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "bool",
              "name": "isUndelegate",
              "type": "bool",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "TokenDelegate",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint64",
              "name": "ntl",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "bool",
              "name": "toPerp",
              "type": "bool",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "UsdClassTransfer",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "vault",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bool",
              "name": "isDeposit",
              "type": "bool",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "usd",
              "type": "uint64",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "VaultTransfer",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "uint64", "name": "_wei", "type": "uint64" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendCDeposit"
        },
        {
          "inputs": [
            { "internalType": "uint64", "name": "_wei", "type": "uint64" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendCWithdrawal"
        },
        {
          "inputs": [
            { "internalType": "uint32", "name": "asset", "type": "uint32" },
            { "internalType": "bool", "name": "isBuy", "type": "bool" },
            { "internalType": "uint64", "name": "limitPx", "type": "uint64" },
            { "internalType": "uint64", "name": "sz", "type": "uint64" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendIocOrder"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "destination",
              "type": "address"
            },
            { "internalType": "uint64", "name": "token", "type": "uint64" },
            { "internalType": "uint64", "name": "_wei", "type": "uint64" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendSpot"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "validator",
              "type": "address"
            },
            { "internalType": "uint64", "name": "_wei", "type": "uint64" },
            { "internalType": "bool", "name": "isUndelegate", "type": "bool" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendTokenDelegate"
        },
        {
          "inputs": [
            { "internalType": "uint64", "name": "ntl", "type": "uint64" },
            { "internalType": "bool", "name": "toPerp", "type": "bool" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendUsdClassTransfer"
        },
        {
          "inputs": [
            { "internalType": "address", "name": "vault", "type": "address" },
            { "internalType": "bool", "name": "isDeposit", "type": "bool" },
            { "internalType": "uint64", "name": "usd", "type": "uint64" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sendVaultTransfer"
        }
      ],
      "devdoc": { "kind": "dev", "methods": {}, "version": 1 },
      "userdoc": { "kind": "user", "methods": {}, "version": 1 }
    },
    "settings": {
      "remappings": [
        "@layerzerolabs/=node_modules/@layerzerolabs/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/",
        "forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/",
        "hardhat/=node_modules/hardhat/",
        "solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"
      ],
      "optimizer": { "enabled": true, "runs": 20000 },
      "metadata": { "bytecodeHash": "ipfs" },
      "compilationTarget": {
        "contracts/interfaces/IHyperLiquidWritePrecompile.sol": "IHyperLiquidWritePrecompile"
      },
      "evmVersion": "shanghai",
      "libraries": {}
    },
    "sources": {
      "contracts/interfaces/IHyperLiquidWritePrecompile.sol": {
        "keccak256": "0xbfa7d38d7675898af0def60823f15550730af3bacb64068a09e1746b21c2cf4b",
        "urls": [
          "bzz-raw://a5cba8210ee21bd186dfddbaa2b3f1ceaeb597763cac1e6271c9ae6e8ff4b53f",
          "dweb:/ipfs/QmVV8BtvpwQQ3jqUdTEFs2nnT9Q7gxTajRqgJPmKQuforV"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "id": 6
}
