@layerzerolabs/hyperliquid-composer
Version:
LayerZero Labs reference EVM OmniChain Fungible Token (OFT) implementation for Hyperliquid
589 lines (588 loc) • 21.9 kB
JSON
{
"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
}