{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"impl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"VaultCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"num","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"VaultImplChanged","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultImplProposed","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"},{"name":"activationTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"factory()":"c45a0155","implementation()":"5c60da1b","kill()":"41c0e1b5","killed()":"1f3a0e41","num()":"4e70b1dc","owner()":"8da5cb5b","upgrade(address)":"0900f010","withdraw(address,uint256)":"f3fef3a3","withdraw(uint256)":"2e1a7d4d","withdrawTo(address,address,uint256)":"c3b35a7e","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"VaultCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"VaultImplChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"VaultImplProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IVault.sol\":\"IVaultProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x121d0b729b518650687a6f267485dcd35e320ef4f0abb77c11dba1a2173e0d67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e379276bca67a148345fe51a777b6c59147b38622f12314213789760997d2545\",\"dweb:/ipfs/QmdHnhJ6fcH9q4SKqjd7B9VVyBqykEkcht1QMPDc6Sgbbt\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0x67ae7a59ee4e4e244bf17604c4cb390233503eaa011a24bcdf737773d5b5a9f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0d0c6459d297427055354956e807209fd425d814467d7c6ccb6157567718405d\",\"dweb:/ipfs/QmTV5b15om8gFaAxmsrAgVqeVTQmv2xYd6beK3mXe541Du\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xf08b30272a94d68a193b54643ebfc26fa8677764dc19527d97cc391021437506\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27f23f8f0002869820a4ff4efcfa14d2b4be04e7b48035355f8afe5a15296efb\",\"dweb:/ipfs/QmYahHKhgoz1tZ3sAjad4CH9UjpzXsogyzdCf1H7crXNCr\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xf92491919220097ca59e5511d6f5ecb70ce7738b164d64abd72674f5fdaaa86c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://afbc5c521400a69dcea03cb18e3907f02481de3568cf6f2f52062a4b9620b08b\",\"dweb:/ipfs/QmR3sjaKQF9AdLxUiiMSM4i5X88dnkKWsdxNjrPJ3hGE1L\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0xdf24938122dae8f20b0460357ea30c7e9873b7c962502783b2c88392d2b10b75\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dd9ee9f5b760a794606e89ed39e4491477bb46d15423bcccde11256d6c2c1cbd\",\"dweb:/ipfs/QmdP7eBXFtwHj4yr48vNC51pikvPDGn9eJQ1VMmxAybMp1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint8","name":"num","type":"uint8","indexed":false}],"type":"event","name":"VaultCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false}],"type":"event","name":"VaultImplChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":false}],"type":"event","name":"VaultImplProposed","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IVault.sol":"IVaultProxy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x121d0b729b518650687a6f267485dcd35e320ef4f0abb77c11dba1a2173e0d67","urls":["bzz-raw://e379276bca67a148345fe51a777b6c59147b38622f12314213789760997d2545","dweb:/ipfs/QmdHnhJ6fcH9q4SKqjd7B9VVyBqykEkcht1QMPDc6Sgbbt"],"license":"UNLICENSED"},"src/core/LineLib.sol":{"keccak256":"0x67ae7a59ee4e4e244bf17604c4cb390233503eaa011a24bcdf737773d5b5a9f4","urls":["bzz-raw://0d0c6459d297427055354956e807209fd425d814467d7c6ccb6157567718405d","dweb:/ipfs/QmTV5b15om8gFaAxmsrAgVqeVTQmv2xYd6beK3mXe541Du"],"license":"UNLICENSED"},"src/core/OrderSpec.sol":{"keccak256":"0xf08b30272a94d68a193b54643ebfc26fa8677764dc19527d97cc391021437506","urls":["bzz-raw://27f23f8f0002869820a4ff4efcfa14d2b4be04e7b48035355f8afe5a15296efb","dweb:/ipfs/QmYahHKhgoz1tZ3sAjad4CH9UjpzXsogyzdCf1H7crXNCr"],"license":"UNLICENSED"},"src/interface/IFeeManager.sol":{"keccak256":"0xf92491919220097ca59e5511d6f5ecb70ce7738b164d64abd72674f5fdaaa86c","urls":["bzz-raw://afbc5c521400a69dcea03cb18e3907f02481de3568cf6f2f52062a4b9620b08b","dweb:/ipfs/QmR3sjaKQF9AdLxUiiMSM4i5X88dnkKWsdxNjrPJ3hGE1L"],"license":"UNLICENSED"},"src/interface/IVault.sol":{"keccak256":"0xdf24938122dae8f20b0460357ea30c7e9873b7c962502783b2c88392d2b10b75","urls":["bzz-raw://dd9ee9f5b760a794606e89ed39e4491477bb46d15423bcccde11256d6c2c1cbd","dweb:/ipfs/QmdP7eBXFtwHj4yr48vNC51pikvPDGn9eJQ1VMmxAybMp1"],"license":"UNLICENSED"}},"version":1},"id":72}