// AUTO-GENERATED from forge build of Se7en-Seas/boring-vault @ 0e23e7f (solc 0.8.21, cancun, optimizer 200). // Do not edit by hand. Regenerate from the pinned commit if contracts change. export interface Artifact { abi: readonly unknown[]; bytecode: `0x${string}`; } export const RolesAuthority: Artifact = { abi: [{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_authority","type":"address","internalType":"contract Authority"}],"stateMutability":"nonpayable"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Authority"}],"stateMutability":"view"},{"type":"function","name":"canCall","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"functionSig","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"doesRoleHaveCapability","inputs":[{"name":"role","type":"uint8","internalType":"uint8"},{"name":"target","type":"address","internalType":"address"},{"name":"functionSig","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"doesUserHaveRole","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"role","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRolesWithCapability","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUserRoles","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isCapabilityPublic","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"contract Authority"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPublicCapability","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"functionSig","type":"bytes4","internalType":"bytes4"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRoleCapability","inputs":[{"name":"role","type":"uint8","internalType":"uint8"},{"name":"target","type":"address","internalType":"address"},{"name":"functionSig","type":"bytes4","internalType":"bytes4"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserRole","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"role","type":"uint8","internalType":"uint8"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newAuthority","type":"address","indexed":true,"internalType":"contract Authority"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PublicCapabilityUpdated","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"functionSig","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RoleCapabilityUpdated","inputs":[{"name":"role","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"functionSig","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"UserRoleUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"role","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}] as const, bytecode: "0x608060405234801561000f575f80fd5b50604051610b58380380610b5883398101604081905261002e916100dd565b5f80546001600160a01b03199081166001600160a01b0385811691821784556001805490931690851617909155604051849284929133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350505050610115565b6001600160a01b03811681146100da575f80fd5b50565b5f80604083850312156100ee575f80fd5b82516100f9816100c6565b602084015190925061010a816100c6565b809150509250929050565b610a36806101225f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063bf7e214f11610063578063bf7e214f1461022c578063c6b0263e1461023f578063ea7ca27614610252578063f2fde38b14610288575f80fd5b80638da5cb5b146101a3578063b4bad06a146101cd578063b700961314610219575f80fd5b806306a36aee146100cf5780632f47571f1461010157806367aff4841461013e5780637917b794146101535780637a9e5e4b1461017d5780637d40583d14610190575b5f80fd5b6100ee6100dd3660046107b5565b60026020525f908152604090205481565b6040519081526020015b60405180910390f35b61012e61010f3660046107f3565b600360209081525f928352604080842090915290825290205460ff1681565b60405190151581526020016100f8565b61015161014c366004610843565b61029b565b005b6100ee6101613660046107f3565b600460209081525f928352604080842090915290825290205481565b61015161018b3660046107b5565b610376565b61015161019e366004610889565b61045a565b5f546101b5906001600160a01b031681565b6040516001600160a01b0390911681526020016100f8565b61012e6101db3660046108de565b6001600160a01b03919091165f9081526004602090815260408083206001600160e01b031990941683529290522054600160ff929092161c16151590565b61012e610227366004610920565b610562565b6001546101b5906001600160a01b031681565b61015161024d36600461093d565b6105df565b61012e610260366004610968565b6001600160a01b03919091165f90815260026020526040902054600160ff9092161c16151590565b6101516102963660046107b5565b61067e565b6102b0335f356001600160e01b0319166106f9565b6102d55760405162461bcd60e51b81526004016102cc90610992565b60405180910390fd5b8015610303576001600160a01b0383165f9081526002602052604090208054600160ff85161b179055610328565b6001600160a01b0383165f9081526002602052604090208054600160ff85161b191690555b8160ff16836001600160a01b03167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf283604051610369911515815260200190565b60405180910390a3505050565b5f546001600160a01b0316331480610407575060015460405163b700961360e01b81526001600160a01b039091169063b7009613906103c890339030906001600160e01b03195f3516906004016109b8565b602060405180830381865afa1580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040791906109e5565b61040f575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b61046f335f356001600160e01b0319166106f9565b61048b5760405162461bcd60e51b81526004016102cc90610992565b80156104ce576001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b179055610508565b6001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b191690555b816001600160e01b031916836001600160a01b03168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e84604051610554911515815260200190565b60405180910390a450505050565b6001600160a01b0382165f9081526003602090815260408083206001600160e01b03198516845290915281205460ff16806105d757506001600160a01b038084165f9081526004602090815260408083206001600160e01b031987168452825280832054938816835260029091529020541615155b949350505050565b6105f4335f356001600160e01b0319166106f9565b6106105760405162461bcd60e51b81526004016102cc90610992565b6001600160a01b0383165f8181526003602090815260408083206001600160e01b0319871680855290835292819020805460ff191686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e9101610369565b610693335f356001600160e01b0319166106f9565b6106af5760405162461bcd60e51b81526004016102cc90610992565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b03168015801590610780575060405163b700961360e01b81526001600160a01b0382169063b700961390610741908790309088906004016109b8565b602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078091906109e5565b806105d757505f546001600160a01b03858116911614949350505050565b6001600160a01b03811681146107b2575f80fd5b50565b5f602082840312156107c5575f80fd5b81356107d08161079e565b9392505050565b80356001600160e01b0319811681146107ee575f80fd5b919050565b5f8060408385031215610804575f80fd5b823561080f8161079e565b915061081d602084016107d7565b90509250929050565b803560ff811681146107ee575f80fd5b80151581146107b2575f80fd5b5f805f60608486031215610855575f80fd5b83356108608161079e565b925061086e60208501610826565b9150604084013561087e81610836565b809150509250925092565b5f805f806080858703121561089c575f80fd5b6108a585610826565b935060208501356108b58161079e565b92506108c3604086016107d7565b915060608501356108d381610836565b939692955090935050565b5f805f606084860312156108f0575f80fd5b6108f984610826565b925060208401356109098161079e565b9150610917604085016107d7565b90509250925092565b5f805f60608486031215610932575f80fd5b83356108f98161079e565b5f805f6060848603121561094f575f80fd5b833561095a8161079e565b925061086e602085016107d7565b5f8060408385031215610979575f80fd5b82356109848161079e565b915061081d60208401610826565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156109f5575f80fd5b81516107d08161083656fea26469706673582212207e87e208b269a1e33abaefdef9d1ed10316258a6787e7be842d4c710185823a764736f6c63430008150033", }; export const BoringVault: Artifact = { abi: [{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Authority"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"enter","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"asset","type":"address","internalType":"contract ERC20"},{"name":"assetAmount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"shareAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exit","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"asset","type":"address","internalType":"contract ERC20"},{"name":"assetAmount","type":"uint256","internalType":"uint256"},{"name":"from","type":"address","internalType":"address"},{"name":"shareAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BeforeTransferHook"}],"stateMutability":"view"},{"type":"function","name":"manage","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"data","type":"bytes[]","internalType":"bytes[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"manage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"contract Authority"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBeforeTransferHook","inputs":[{"name":"_hook","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newAuthority","type":"address","indexed":true,"internalType":"contract Authority"}],"anonymous":false},{"type":"event","name":"Enter","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Exit","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}] as const, bytecode: "0x60e060405234801562000010575f80fd5b506040516200225338038062002253833981016040819052620000339162000263565b835f848484836200004584826200038c565b5060016200005483826200038c565b5060ff81166080524660a0526200006a6200010b565b60c0525050600680546001600160a01b038086166001600160a01b03199283168117909355600780549186169190921617905560405190915033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a3505050505050620004ce565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200013d919062000454565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620001c9575f80fd5b81516001600160401b0380821115620001e657620001e6620001a5565b604051601f8301601f19908116603f01168101908282118183101715620002115762000211620001a5565b816040528381526020925086838588010111156200022d575f80fd5b5f91505b8382101562000250578582018301518183018401529082019062000231565b5f93810190920192909252949350505050565b5f805f806080858703121562000277575f80fd5b84516001600160a01b03811681146200028e575f80fd5b60208601519094506001600160401b0380821115620002ab575f80fd5b620002b988838901620001b9565b94506040870151915080821115620002cf575f80fd5b50620002de87828801620001b9565b925050606085015160ff81168114620002f5575f80fd5b939692955090935050565b600181811c908216806200031557607f821691505b6020821081036200033457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000387575f81815260208120601f850160051c81016020861015620003625750805b601f850160051c820191505b8181101562000383578281556001016200036e565b5050505b505050565b81516001600160401b03811115620003a857620003a8620001a5565b620003c081620003b9845462000300565b846200033a565b602080601f831160018114620003f6575f8415620003de5750858301515b5f19600386901b1c1916600185901b17855562000383565b5f85815260208120601f198616915b82811015620004265788860151825594840194600190910190840162000405565b50858210156200044457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f808354620004638162000300565b600182811680156200047e57600181146200049457620004c2565b60ff1984168752821515830287019450620004c2565b875f526020805f205f5b85811015620004b95781548a8201529084019082016200049e565b50505082870194505b50929695505050505050565b60805160a05160c051611d5a620004f95f395f61092901525f6108f401525f6102e00152611d5a5ff3fe60806040526004361061017e575f3560e01c80637ecebe00116100cd578063bc197c8111610087578063dd62ed3e11610062578063dd62ed3e146104cd578063f23a6e6114610503578063f2fde38b1461052e578063f6e715d01461054d575f80fd5b8063bc197c8114610464578063bf7e214f1461048f578063d505accf146104ae575f80fd5b80637ecebe00146103915780637f5a7c7b146103bc5780638929565f146103f35780638da5cb5b1461041257806395d89b4114610431578063a9059cbb14610445575f80fd5b8063224d8703116101385780633644e515116101135780633644e5151461031457806339d6ba321461032857806370a08231146103475780637a9e5e4b14610372575f80fd5b8063224d87031461028457806323b872dd146102b0578063313ce567146102cf575f80fd5b806301ffc9a71461018957806306fdde03146101bd578063095ea7b3146101de578063150b7a02146101fd57806318160ddd1461024057806318457e6114610263575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506101a86101a336600461147e565b61056c565b60405190151581526020015b60405180910390f35b3480156101c8575f80fd5b506101d16105a2565b6040516101b491906114f2565b3480156101e9575f80fd5b506101a86101f8366004611518565b61062d565b348015610208575f80fd5b506102276102173660046115f3565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101b4565b34801561024b575f80fd5b5061025560025481565b6040519081526020016101b4565b34801561026e575f80fd5b5061028261027d36600461165b565b610698565b005b34801561028f575f80fd5b506102a361029e3660046116fa565b61075d565b6040516101b4919061178d565b3480156102bb575f80fd5b506101a86102ca3660046117ed565b6108d1565b3480156102da575f80fd5b506103027f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101b4565b34801561031f575f80fd5b506102556108f1565b348015610333575f80fd5b5061028261034236600461165b565b61094b565b348015610352575f80fd5b5061025561036136600461182b565b60036020525f908152604090205481565b34801561037d575f80fd5b5061028261038c36600461182b565b6109f9565b34801561039c575f80fd5b506102556103ab36600461182b565b60056020525f908152604090205481565b3480156103c7575f80fd5b506008546103db906001600160a01b031681565b6040516001600160a01b0390911681526020016101b4565b3480156103fe575f80fd5b5061028261040d36600461182b565b610ade565b34801561041d575f80fd5b506006546103db906001600160a01b031681565b34801561043c575f80fd5b506101d1610b31565b348015610450575f80fd5b506101a861045f366004611518565b610b3e565b34801561046f575f80fd5b5061022761047e3660046118c3565b63bc197c8160e01b95945050505050565b34801561049a575f80fd5b506007546103db906001600160a01b031681565b3480156104b9575f80fd5b506102826104c836600461196a565b610b53565b3480156104d8575f80fd5b506102556104e73660046119db565b600460209081525f928352604080842090915290825290205481565b34801561050e575f80fd5b5061022761051d366004611a12565b63f23a6e6160e01b95945050505050565b348015610539575f80fd5b5061028261054836600461182b565b610d91565b348015610558575f80fd5b506101d1610567366004611a76565b610e0d565b5f6001600160e01b03198216630271189760e51b148061059c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f80546105ae90611afa565b80601f01602080910402602001604051908101604052809291908181526020018280546105da90611afa565b80156106255780601f106105fc57610100808354040283529160200191610625565b820191905f5260205f20905b81548152906001019060200180831161060857829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106879086815260200190565b60405180910390a350600192915050565b6106ad335f356001600160e01b031916610e93565b6106d25760405162461bcd60e51b81526004016106c990611b32565b60405180910390fd5b6106dc8282610f3a565b82156106f6576106f66001600160a01b0385168685610fa1565b816001600160a01b0316846001600160a01b0316866001600160a01b03167fe0c82280a1164680e0cf43be7db4c4c9f985423623ad7a544fb76c772bdc6043868560405161074e929190918252602082015260400190565b60405180910390a45050505050565b6060610774335f356001600160e01b031916610e93565b6107905760405162461bcd60e51b81526004016106c990611b32565b858067ffffffffffffffff8111156107aa576107aa611542565b6040519080825280602002602001820160405280156107dd57816020015b60608152602001906001900390816107c85790505b5091505f5b818110156108c5576108978787838181106107ff576107ff611b58565b90506020028101906108119190611b6c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925088915085905081811061085957610859611b58565b905060200201358b8b8581811061087257610872611b58565b9050602002016020810190610887919061182b565b6001600160a01b03169190611024565b8382815181106108a9576108a9611b58565b6020026020010181905250806108be90611bc3565b90506107e2565b50509695505050505050565b5f6108dc84846110bd565b6108e784848461113a565b90505b9392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000461461092657610921611214565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b610960335f356001600160e01b031916610e93565b61097c5760405162461bcd60e51b81526004016106c990611b32565b8215610997576109976001600160a01b0385168630866112ac565b6109a18282611344565b816001600160a01b0316846001600160a01b0316866001600160a01b03167fea00f88768a86184a6e515238a549c171769fe7460a011d6fd0bcd48ca078ea4868560405161074e929190918252602082015260400190565b6006546001600160a01b0316331480610a8b575060075460405163b700961360e01b81526001600160a01b039091169063b700961390610a4c90339030906001600160e01b03195f351690600401611bdb565b602060405180830381865afa158015610a67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8b9190611c08565b610a93575f80fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b610af3335f356001600160e01b031916610e93565b610b0f5760405162461bcd60e51b81526004016106c990611b32565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600180546105ae90611afa565b5f610b4933846110bd565b6108ea8383611393565b42841015610ba35760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016106c9565b5f6001610bae6108f1565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610cb6573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811615801590610cec5750876001600160a01b0316816001600160a01b0316145b610d295760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016106c9565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b610da6335f356001600160e01b031916610e93565b610dc25760405162461bcd60e51b81526004016106c990611b32565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a350565b6060610e24335f356001600160e01b031916610e93565b610e405760405162461bcd60e51b81526004016106c990611b32565b610e8a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506001600160a01b03881691905084611024565b95945050505050565b6007545f906001600160a01b03168015801590610f1a575060405163b700961360e01b81526001600160a01b0382169063b700961390610edb90879030908890600401611bdb565b602060405180830381865afa158015610ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1a9190611c08565b80610f3257506006546001600160a01b038581169116145b949350505050565b6001600160a01b0382165f9081526003602052604081208054839290610f61908490611c27565b90915550506002805482900390556040518181525f906001600160a01b038416905f80516020611d05833981519152906020015b60405180910390a35050565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f51141617169150508061101e5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016106c9565b50505050565b6060814710156110495760405163cd78605960e01b81523060048201526024016106c9565b5f80856001600160a01b031684866040516110649190611c3a565b5f6040518083038185875af1925050503d805f811461109e576040519150601f19603f3d011682016040523d82523d5f602084013e6110a3565b606091505b50915091506110b38683836113f6565b9695505050505050565b6008546001600160a01b03161561113657600854604051630abd626b60e41b81526001600160a01b03848116600483015283811660248301523360448301529091169063abd626b0906064015f6040518083038186803b15801561111f575f80fd5b505afa158015611131573d5f803e3d5ffd5b505050505b5050565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f1981146111935761116f8382611c27565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f90815260036020526040812080548592906111ba908490611c27565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716905f80516020611d05833981519152906112019087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516112449190611c55565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f6040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b038416602482015282604482015260205f6064835f8a5af13d15601f3d1160015f51141617169150508061133d5760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016106c9565b5050505050565b8060025f8282546113559190611cf1565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481525f80516020611d058339815191529101610f95565b335f908152600360205260408120805483919083906113b3908490611c27565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133905f80516020611d05833981519152906106879086815260200190565b60608261140b5761140682611452565b6108ea565b815115801561142257506001600160a01b0384163b155b1561144b57604051639996b31560e01b81526001600160a01b03851660048201526024016106c9565b50806108ea565b8051156114625780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b5f6020828403121561148e575f80fd5b81356001600160e01b0319811681146108ea575f80fd5b5f5b838110156114bf5781810151838201526020016114a7565b50505f910152565b5f81518084526114de8160208601602086016114a5565b601f01601f19169290920160200192915050565b602081525f6108ea60208301846114c7565b6001600160a01b038116811461147b575f80fd5b5f8060408385031215611529575f80fd5b823561153481611504565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561157f5761157f611542565b604052919050565b5f82601f830112611596575f80fd5b813567ffffffffffffffff8111156115b0576115b0611542565b6115c3601f8201601f1916602001611556565b8181528460208386010111156115d7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215611606575f80fd5b843561161181611504565b9350602085013561162181611504565b925060408501359150606085013567ffffffffffffffff811115611643575f80fd5b61164f87828801611587565b91505092959194509250565b5f805f805f60a0868803121561166f575f80fd5b853561167a81611504565b9450602086013561168a81611504565b93506040860135925060608601356116a181611504565b949793965091946080013592915050565b5f8083601f8401126116c2575f80fd5b50813567ffffffffffffffff8111156116d9575f80fd5b6020830191508360208260051b85010111156116f3575f80fd5b9250929050565b5f805f805f806060878903121561170f575f80fd5b863567ffffffffffffffff80821115611726575f80fd5b6117328a838b016116b2565b9098509650602089013591508082111561174a575f80fd5b6117568a838b016116b2565b9096509450604089013591508082111561176e575f80fd5b5061177b89828a016116b2565b979a9699509497509295939492505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156117e057603f198886030184526117ce8583516114c7565b945092850192908501906001016117b2565b5092979650505050505050565b5f805f606084860312156117ff575f80fd5b833561180a81611504565b9250602084013561181a81611504565b929592945050506040919091013590565b5f6020828403121561183b575f80fd5b81356108ea81611504565b5f82601f830112611855575f80fd5b8135602067ffffffffffffffff82111561187157611871611542565b8160051b611880828201611556565b9283528481018201928281019087851115611899575f80fd5b83870192505b848310156118b85782358252918301919083019061189f565b979650505050505050565b5f805f805f60a086880312156118d7575f80fd5b85356118e281611504565b945060208601356118f281611504565b9350604086013567ffffffffffffffff8082111561190e575f80fd5b61191a89838a01611846565b9450606088013591508082111561192f575f80fd5b61193b89838a01611846565b93506080880135915080821115611950575f80fd5b5061195d88828901611587565b9150509295509295909350565b5f805f805f805f60e0888a031215611980575f80fd5b873561198b81611504565b9650602088013561199b81611504565b95506040880135945060608801359350608088013560ff811681146119be575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f80604083850312156119ec575f80fd5b82356119f781611504565b91506020830135611a0781611504565b809150509250929050565b5f805f805f60a08688031215611a26575f80fd5b8535611a3181611504565b94506020860135611a4181611504565b93506040860135925060608601359150608086013567ffffffffffffffff811115611a6a575f80fd5b61195d88828901611587565b5f805f8060608587031215611a89575f80fd5b8435611a9481611504565b9350602085013567ffffffffffffffff80821115611ab0575f80fd5b818701915087601f830112611ac3575f80fd5b813581811115611ad1575f80fd5b886020828501011115611ae2575f80fd5b95986020929092019750949560400135945092505050565b600181811c90821680611b0e57607f821691505b602082108103611b2c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112611b81575f80fd5b83018035915067ffffffffffffffff821115611b9b575f80fd5b6020019150368190038213156116f3575f80fd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611bd457611bd4611baf565b5060010190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f60208284031215611c18575f80fd5b815180151581146108ea575f80fd5b8181038181111561059c5761059c611baf565b5f8251611c4b8184602087016114a5565b9190910192915050565b5f80835481600182811c915080831680611c7057607f831692505b60208084108203611c8f57634e487b7160e01b86526022600452602486fd5b818015611ca35760018114611cb857611ce3565b60ff1986168952841515850289019650611ce3565b5f8a8152602090205f5b86811015611cdb5781548b820152908501908301611cc2565b505084890196505b509498975050505050505050565b8082018082111561059c5761059c611baf56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd23228c32f58b9aa89e92e3c26ab47ba6029104f8800c7a68f08459dae39e3d64736f6c63430008150033", }; export const ManagerWithMerkleVerification: Artifact = { abi: [{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_vault","type":"address","internalType":"address"},{"name":"_balancerVault","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Authority"}],"stateMutability":"view"},{"type":"function","name":"balancerVault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BalancerVault"}],"stateMutability":"view"},{"type":"function","name":"flashLoan","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isPaused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"manageRoot","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"manageVaultWithMerkleVerification","inputs":[{"name":"manageProofs","type":"bytes32[][]","internalType":"bytes32[][]"},{"name":"decodersAndSanitizers","type":"address[]","internalType":"address[]"},{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"targetData","type":"bytes[]","internalType":"bytes[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"receiveFlashLoan","inputs":[{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"feeAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"contract Authority"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setManageRoot","inputs":[{"name":"strategist","type":"address","internalType":"address"},{"name":"_manageRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BoringVault"}],"stateMutability":"view"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newAuthority","type":"address","indexed":true,"internalType":"contract Authority"}],"anonymous":false},{"type":"event","name":"BoringVaultManaged","inputs":[{"name":"callsMade","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ManageRootUpdated","inputs":[{"name":"strategist","type":"address","indexed":true,"internalType":"address"},{"name":"oldRoot","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__BadFlashLoanIntentHash","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__FailedToVerifyManageProof","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"targetData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ManagerWithMerkleVerification__FlashLoanNotExecuted","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__FlashLoanNotInProgress","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__InvalidDecodersAndSanitizersLength","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__InvalidManageProofLength","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__InvalidTargetDataLength","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__InvalidValuesLength","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__OnlyCallableByBalancerVault","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__OnlyCallableByBoringVault","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__Paused","inputs":[]},{"type":"error","name":"ManagerWithMerkleVerification__TotalSupplyMustRemainConstantDuringPlatform","inputs":[]}] as const, bytecode: "0x60c06040525f60045534801562000014575f80fd5b506040516200223a3803806200223a8339810160408190526200003791620000f8565b5f80546001600160a01b0385166001600160a01b031991821681178355600180549092169091556040518592919033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908490a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350506001600160a01b039182166080521660a052506200013f565b80516001600160a01b0381168114620000f3575f80fd5b919050565b5f805f606084860312156200010b575f80fd5b6200011684620000dc565b92506200012660208501620000dc565b91506200013660408501620000dc565b90509250925092565b60805160a05161209b6200019f5f395f818160ee015281816107e3015281816109da0152610bed01525f8181610225015281816103da01528181610511015281816106170152818161076601528181610a8c0152610ccf015261209b5ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80638456cb5911610088578063bf7e214f11610063578063bf7e214f146101e7578063f04f2707146101fa578063f2fde38b1461020d578063fbfa77cf14610220575f80fd5b80638456cb59146101b05780638da5cb5b146101b8578063b187bd26146101ca575f80fd5b80633f4ba83a116100c35780633f4ba83a146101555780635c38449e1461015d5780635ca58a99146101705780637a9e5e4b1461019d575f80fd5b8063158274a5146100e957806321801a991461012d578063244b0f6a14610142575b5f80fd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61014061013b36600461128e565b610247565b005b6101406101503660046112ff565b6102df565b6101406106f6565b61014061016b366004611421565b61075b565b61018f61017e3660046114c5565b60026020525f908152604090205481565b604051908152602001610124565b6101406101ab3660046114c5565b610883565b610140610967565b5f54610110906001600160a01b031681565b6005546101d79060ff1681565b6040519015158152602001610124565b600154610110906001600160a01b031681565b6101406102083660046114e0565b6109cf565b61014061021b3660046114c5565b610da7565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b61025c335f356001600160e01b031916610e22565b6102815760405162461bcd60e51b81526004016102789061159a565b60405180910390fd5b6001600160a01b0382165f81815260026020908152604091829020805490859055825181815291820185905292917f0b958dec85f1470000479dfb22c365829411f52bcde602d24ea0abf5ac7e8860910160405180910390a2505050565b6102f4335f356001600160e01b031916610e22565b6103105760405162461bcd60e51b81526004016102789061159a565b60055460ff161561033457604051631b7b196560e31b815260040160405180910390fd5b848981146103555760405163029c70cf60e41b815260040160405180910390fd5b8084146103755760405163581ddbfd60e01b815260040160405180910390fd5b8082146103955760405163e9fd1adf60e01b815260040160405180910390fd5b8088146103b557604051631b4d824d60e31b815260040160405180910390fd5b335f9081526002602090815260408083205481516318160ddd60e01b815291519093927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926318160ddd92600480830193928290030181865afa158015610427573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044b91906115c0565b90505f5b838110156106145761050f838f8f8481811061046d5761046d6115d7565b905060200281019061047f91906115eb565b8f8f86818110610491576104916115d7565b90506020020160208101906104a691906114c5565b8e8e878181106104b8576104b86115d7565b90506020020160208101906104cd91906114c5565b8b8b888181106104df576104df6115d7565b905060200201358e8e898181106104f8576104f86115d7565b905060200281019061050a9190611630565b610eca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f6e715d08b8b84818110610550576105506115d7565b905060200201602081019061056591906114c5565b8a8a85818110610577576105776115d7565b90506020028101906105899190611630565b8a8a8781811061059b5761059b6115d7565b905060200201356040518563ffffffff1660e01b81526004016105c1949392919061169a565b5f604051808303815f875af11580156105dc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261060391908101906117aa565b5061060d816117ef565b905061044f565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069591906115c0565b81146106b457604051630ecee17560e01b815260040160405180910390fd5b6040518381527f53d426e7d80bb2c8674d3b45577e2d464d423faad6531b21f95ac11ac18b1cb69060200160405180910390a150505050505050505050505050565b61070b335f356001600160e01b031916610e22565b6107275760405162461bcd60e51b81526004016102789061159a565b6005805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933905f90a1565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107a4576040516377ed816560e01b815260040160405180910390fd5b81816040516107b4929190611807565b60405190819003812060049081556003805460ff19166001179055632e1c224f60e11b82526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691635c38449e91610822918b918b918b918b918b918b918b910161185d565b5f604051808303815f87803b158015610839575f80fd5b505af115801561084b573d5f803e3d5ffd5b50506003805460ff1916905550506004541561087a57604051633de6ce8160e21b815260040160405180910390fd5b50505050505050565b5f546001600160a01b0316331480610914575060015460405163b700961360e01b81526001600160a01b039091169063b7009613906108d590339030906001600160e01b03195f3516906004016118d3565b602060405180830381865afa1580156108f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109149190611900565b61091c575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b61097c335f356001600160e01b031916610e22565b6109985760405162461bcd60e51b81526004016102789061159a565b6005805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752905f90a1565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a185760405163a38bce7f60e01b815260040160405180910390fd5b60035460ff16610a3b576040516326e6e2c760e01b815260040160405180910390fd5b5f8282604051610a4c929190611807565b604051809103902090506004548114610a7857604051631663f61360e01b815260040160405180910390fd5b5f60048190555b86811015610b0b57610afb7f0000000000000000000000000000000000000000000000000000000000000000898984818110610abd57610abd6115d7565b905060200201358c8c85818110610ad657610ad66115d7565b9050602002016020810190610aeb91906114c5565b6001600160a01b03169190610fb4565b610b04816117ef565b9050610a7f565b505f80808080610b1d87890189611b96565b60405163122587b560e11b815294995092975090955093509150309063244b0f6a90610b559088908890889088908890600401611d2e565b5f604051808303815f87803b158015610b6c575f80fd5b505af1158015610b7e573d5f803e3d5ffd5b5050505050505050505f878790506001600160401b03811115610ba357610ba36116cf565b604051908082528060200260200182016040528015610bd657816020015b6060815260200190600190039081610bc15790505b5090505f5b87811015610cc45763a9059cbb60e01b7f0000000000000000000000000000000000000000000000000000000000000000888884818110610c1e57610c1e6115d7565b905060200201358b8b85818110610c3757610c376115d7565b90506020020135610c489190611e09565b6040516001600160a01b0390921660248301526044820152606401604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050828281518110610ca857610ca86115d7565b602002602001018190525080610cbd906117ef565b9050610bdb565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663224d87038b8b848b6001600160401b03811115610d0f57610d0f6116cf565b604051908082528060200260200182016040528015610d38578160200160208202803683370190505b506040518563ffffffff1660e01b8152600401610d589493929190611e1c565b5f604051808303815f875af1158015610d73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d9a9190810190611e60565b5050505050505050505050565b610dbc335f356001600160e01b031916610e22565b610dd85760405162461bcd60e51b81526004016102789061159a565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b03168015801590610ea9575060405163b700961360e01b81526001600160a01b0382169063b700961390610e6a908790309088906004016118d3565b602060405180830381865afa158015610e85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea99190611900565b80610ec057505f546001600160a01b038581169116145b9150505b92915050565b5f610f1483838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250506001600160a01b038a1692915050611037565b806020019051810190610f2791906117aa565b90505f610f3484846110a9565b90506001600160a01b03811615610f6a578181604051602001610f58929190611f0a565b60405160208183030381529060405291505b610f838a8a8a898b8a610f7d8a8c611f3b565b89611163565b610fa8578584848760405163c0dcd1a760e01b8152600401610278949392919061169a565b50505050505050505050565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f5114161716915050806110315760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610278565b50505050565b60605f80846001600160a01b0316846040516110539190611f69565b5f60405180830381855afa9150503d805f811461108b576040519150601f19603f3d011682016040523d82523d5f602084013e611090565b606091505b50915091506110a08583836111b7565b95945050505050565b5f816044811061115c575f84846110c1602085611f84565b6110cc928290611f97565b6110d591611fbe565b60408051808201909152600f81526e111c9bdb99531a588b9d185c99d95d608a1b60209091015290507fc1b9dfe6c6d6343c26291b77edfcc5dbc62c3afa2ee72581da4e3cdbe96a0a4f810161115a578484611132603485611f84565b9061113e602086611f84565b9261114b93929190611f97565b61115491611fdb565b60601c92505b505b5092915050565b5f805f851190505f8688838787604051602001611184959493929190612009565b6040516020818303038152906040528051906020012090506111a88a8a8d84611216565b9b9a5050505050505050505050565b6060826111cc576111c78261124e565b61120f565b81511580156111e357506001600160a01b0384163b155b1561120c57604051639996b31560e01b81526001600160a01b0385166004820152602401610278565b50805b9392505050565b5f8315611246578360051b8501855b803580851160051b94855260209485185260405f2093018181106112255750505b501492915050565b80511561125e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114611277575f80fd5b5f806040838503121561129f575f80fd5b82356112aa8161127a565b946020939093013593505050565b5f8083601f8401126112c8575f80fd5b5081356001600160401b038111156112de575f80fd5b6020830191508360208260051b85010111156112f8575f80fd5b9250929050565b5f805f805f805f805f8060a08b8d031215611318575f80fd5b8a356001600160401b038082111561132e575f80fd5b61133a8e838f016112b8565b909c509a5060208d0135915080821115611352575f80fd5b61135e8e838f016112b8565b909a50985060408d0135915080821115611376575f80fd5b6113828e838f016112b8565b909850965060608d013591508082111561139a575f80fd5b6113a68e838f016112b8565b909650945060808d01359150808211156113be575f80fd5b506113cb8d828e016112b8565b915080935050809150509295989b9194979a5092959850565b5f8083601f8401126113f4575f80fd5b5081356001600160401b0381111561140a575f80fd5b6020830191508360208285010111156112f8575f80fd5b5f805f805f805f6080888a031215611437575f80fd5b87356114428161127a565b965060208801356001600160401b038082111561145d575f80fd5b6114698b838c016112b8565b909850965060408a0135915080821115611481575f80fd5b61148d8b838c016112b8565b909650945060608a01359150808211156114a5575f80fd5b506114b28a828b016113e4565b989b979a50959850939692959293505050565b5f602082840312156114d5575f80fd5b813561120f8161127a565b5f805f805f805f806080898b0312156114f7575f80fd5b88356001600160401b038082111561150d575f80fd5b6115198c838d016112b8565b909a50985060208b0135915080821115611531575f80fd5b61153d8c838d016112b8565b909850965060408b0135915080821115611555575f80fd5b6115618c838d016112b8565b909650945060608b0135915080821115611579575f80fd5b506115868b828c016113e4565b999c989b5096995094979396929594505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b5f602082840312156115d0575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112611600575f80fd5b8301803591506001600160401b03821115611619575f80fd5b6020019150600581901b36038213156112f8575f80fd5b5f808335601e19843603018112611645575f80fd5b8301803591506001600160401b0382111561165e575f80fd5b6020019150368190038213156112f8575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03851681526060602082018190525f906116be9083018587611672565b905082604083015295945050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561170b5761170b6116cf565b604052919050565b5f6001600160401b0382111561172b5761172b6116cf565b50601f01601f191660200190565b5f5b8381101561175357818101518382015260200161173b565b50505f910152565b5f82601f83011261176a575f80fd5b815161177d61177882611713565b6116e3565b818152846020838601011115611791575f80fd5b6117a2826020830160208701611739565b949350505050565b5f602082840312156117ba575f80fd5b81516001600160401b038111156117cf575f80fd5b610ec08482850161175b565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611800576118006117db565b5060010190565b818382375f9101908152919050565b8183525f60208085019450825f5b858110156118525781356118378161127a565b6001600160a01b031687529582019590820190600101611824565b509495945050505050565b6001600160a01b03881681526080602082018190525f90611881908301888a611816565b82810360408401528581526001600160fb1b0386111561189f575f80fd5b8560051b8088602084013701828103602090810160608501526118c59082018587611672565b9a9950505050505050505050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f60208284031215611910575f80fd5b8151801515811461120f575f80fd5b5f6001600160401b03821115611937576119376116cf565b5060051b60200190565b5f82601f830112611950575f80fd5b813560206119606117788361191f565b828152600592831b850182019282820191908785111561197e575f80fd5b8387015b85811015611a0e5780356001600160401b038111156119a0575f8081fd5b8801603f81018a136119b1575f8081fd5b8581013560406119c36117788361191f565b82815291851b8301810191888101908d8411156119df575f8081fd5b938201935b838510156119fd578435825293890193908901906119e4565b885250505093850193508401611982565b5090979650505050505050565b5f82601f830112611a2a575f80fd5b81356020611a3a6117788361191f565b82815260059290921b84018101918181019086841115611a58575f80fd5b8286015b84811015611a7c578035611a6f8161127a565b8352918301918301611a5c565b509695505050505050565b5f82601f830112611a96575f80fd5b81356020611aa66117788361191f565b82815260059290921b84018101918181019086841115611ac4575f80fd5b8286015b84811015611a7c5780356001600160401b03811115611ae6575f8081fd5b8701603f81018913611af7575f8081fd5b848101356040611b0961177883611713565b8281528b82848601011115611b1d575f8081fd5b82828501898301375f92810188019290925250845250918301918301611ac8565b5f82601f830112611b4d575f80fd5b81356020611b5d6117788361191f565b82815260059290921b84018101918181019086841115611b7b575f80fd5b8286015b84811015611a7c5780358352918301918301611b7f565b5f805f805f60a08688031215611baa575f80fd5b85356001600160401b0380821115611bc0575f80fd5b611bcc89838a01611941565b96506020880135915080821115611be1575f80fd5b611bed89838a01611a1b565b95506040880135915080821115611c02575f80fd5b611c0e89838a01611a1b565b94506060880135915080821115611c23575f80fd5b611c2f89838a01611a87565b93506080880135915080821115611c44575f80fd5b50611c5188828901611b3e565b9150509295509295909350565b5f8151808452602080850194508084015f5b838110156118525781516001600160a01b031687529582019590820190600101611c70565b5f81518084526020808501808196508360051b810191508286015f5b85811015611cf357828403895281518051808652611cd481888801898501611739565b99860199601f01601f1916949094018501935090840190600101611cb1565b5091979650505050505050565b5f8151808452602080850194508084015f5b8381101561185257815187529582019590820190600101611d12565b5f60a0820160a0835280885180835260c08501915060c08160051b86010192506020808b015f805b84811015611daa5788870360bf19018652825180518089529085019085890190845b81811015611d9457835183529287019291870191600101611d78565b5090985050509483019491830191600101611d56565b50505085840381870152505050611dc18188611c5e565b90508281036040840152611dd58187611c5e565b90508281036060840152611de98186611c95565b90508281036080840152611dfd8185611d00565b98975050505050505050565b80820180821115610ec457610ec46117db565b606081525f611e2f606083018688611816565b8281036020840152611e418186611c95565b90508281036040840152611e558185611d00565b979650505050505050565b5f6020808385031215611e71575f80fd5b82516001600160401b0380821115611e87575f80fd5b818501915085601f830112611e9a575f80fd5b8151611ea86117788261191f565b81815260059190911b83018401908481019088831115611ec6575f80fd5b8585015b83811015611efd57805185811115611ee1575f8081fd5b611eef8b89838a010161175b565b845250918601918601611eca565b5098975050505050505050565b5f8351611f1b818460208801611739565b60609390931b6001600160601b0319169190920190815260140192915050565b6001600160e01b0319813581811691600485101561115a5760049490940360031b84901b1690921692915050565b5f8251611f7a818460208701611739565b9190910192915050565b81810381811115610ec457610ec46117db565b5f8085851115611fa5575f80fd5b83861115611fb1575f80fd5b5050820193919092039150565b80356020831015610ec4575f19602084900360031b1b1692915050565b6001600160601b0319813581811691601485101561115a5760149490940360031b84901b1690921692915050565b6001600160601b0319606087811b8216835286901b16601482015283151560f81b60288201526001600160e01b03198316602982015281515f9061205481602d850160208701611739565b91909101602d01969550505050505056fea2646970667358221220beb52dee335ec18ca958b2df683ca258ca5c5fcbdfd2a4e41a9240d05e276d1864736f6c63430008150033", }; export const AccountantWithRateProviders: Artifact = { abi: [{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_vault","type":"address","internalType":"address"},{"name":"payoutAddress","type":"address","internalType":"address"},{"name":"startingExchangeRate","type":"uint96","internalType":"uint96"},{"name":"_base","type":"address","internalType":"address"},{"name":"allowedExchangeRateChangeUpper","type":"uint16","internalType":"uint16"},{"name":"allowedExchangeRateChangeLower","type":"uint16","internalType":"uint16"},{"name":"minimumUpdateDelayInSeconds","type":"uint24","internalType":"uint24"},{"name":"platformFee","type":"uint16","internalType":"uint16"},{"name":"performanceFee","type":"uint16","internalType":"uint16"}],"stateMutability":"nonpayable"},{"type":"function","name":"accountantState","inputs":[],"outputs":[{"name":"payoutAddress","type":"address","internalType":"address"},{"name":"highwaterMark","type":"uint96","internalType":"uint96"},{"name":"feesOwedInBase","type":"uint128","internalType":"uint128"},{"name":"totalSharesLastUpdate","type":"uint128","internalType":"uint128"},{"name":"exchangeRate","type":"uint96","internalType":"uint96"},{"name":"allowedExchangeRateChangeUpper","type":"uint16","internalType":"uint16"},{"name":"allowedExchangeRateChangeLower","type":"uint16","internalType":"uint16"},{"name":"lastUpdateTimestamp","type":"uint64","internalType":"uint64"},{"name":"isPaused","type":"bool","internalType":"bool"},{"name":"minimumUpdateDelayInSeconds","type":"uint24","internalType":"uint24"},{"name":"platformFee","type":"uint16","internalType":"uint16"},{"name":"performanceFee","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Authority"}],"stateMutability":"view"},{"type":"function","name":"base","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"claimFees","inputs":[{"name":"feeAsset","type":"address","internalType":"contract ERC20"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getRate","inputs":[],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRateInQuote","inputs":[{"name":"quote","type":"address","internalType":"contract ERC20"}],"outputs":[{"name":"rateInQuote","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRateInQuoteSafe","inputs":[{"name":"quote","type":"address","internalType":"contract ERC20"}],"outputs":[{"name":"rateInQuote","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRateSafe","inputs":[],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"previewUpdateExchangeRate","inputs":[{"name":"newExchangeRate","type":"uint96","internalType":"uint96"}],"outputs":[{"name":"updateWillPause","type":"bool","internalType":"bool"},{"name":"newFeesOwedInBase","type":"uint256","internalType":"uint256"},{"name":"totalFeesOwedInBase","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rateProviderData","inputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"outputs":[{"name":"isPeggedToBase","type":"bool","internalType":"bool"},{"name":"rateProvider","type":"address","internalType":"contract IRateProvider"}],"stateMutability":"view"},{"type":"function","name":"resetHighwaterMark","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"contract Authority"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRateProviderData","inputs":[{"name":"asset","type":"address","internalType":"contract ERC20"},{"name":"isPeggedToBase","type":"bool","internalType":"bool"},{"name":"rateProvider","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateDelay","inputs":[{"name":"minimumUpdateDelayInSeconds","type":"uint24","internalType":"uint24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateExchangeRate","inputs":[{"name":"newExchangeRate","type":"uint96","internalType":"uint96"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLower","inputs":[{"name":"allowedExchangeRateChangeLower","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePayoutAddress","inputs":[{"name":"payoutAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePerformanceFee","inputs":[{"name":"performanceFee","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePlatformFee","inputs":[{"name":"platformFee","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUpper","inputs":[{"name":"allowedExchangeRateChangeUpper","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BoringVault"}],"stateMutability":"view"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newAuthority","type":"address","indexed":true,"internalType":"contract Authority"}],"anonymous":false},{"type":"event","name":"DelayInSecondsUpdated","inputs":[{"name":"oldDelay","type":"uint24","indexed":false,"internalType":"uint24"},{"name":"newDelay","type":"uint24","indexed":false,"internalType":"uint24"}],"anonymous":false},{"type":"event","name":"ExchangeRateUpdated","inputs":[{"name":"oldRate","type":"uint96","indexed":false,"internalType":"uint96"},{"name":"newRate","type":"uint96","indexed":false,"internalType":"uint96"},{"name":"currentTime","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"FeesClaimed","inputs":[{"name":"feeAsset","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"HighwaterMarkReset","inputs":[],"anonymous":false},{"type":"event","name":"LowerBoundUpdated","inputs":[{"name":"oldBound","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"newBound","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[],"anonymous":false},{"type":"event","name":"PayoutAddressUpdated","inputs":[{"name":"oldPayout","type":"address","indexed":false,"internalType":"address"},{"name":"newPayout","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PerformanceFeeUpdated","inputs":[{"name":"oldFee","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"newFee","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"PlatformFeeUpdated","inputs":[{"name":"oldFee","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"newFee","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"RateProviderUpdated","inputs":[{"name":"asset","type":"address","indexed":false,"internalType":"address"},{"name":"isPegged","type":"bool","indexed":false,"internalType":"bool"},{"name":"rateProvider","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[],"anonymous":false},{"type":"event","name":"UpperBoundUpdated","inputs":[{"name":"oldBound","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"newBound","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"error","name":"AccountantWithRateProviders__ExchangeRateAboveHighwaterMark","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__LowerBoundTooLarge","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__OnlyCallableByBoringVault","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__Paused","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__PerformanceFeeTooLarge","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__PlatformFeeTooLarge","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__UpdateDelayTooLarge","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__UpperBoundTooSmall","inputs":[]},{"type":"error","name":"AccountantWithRateProviders__ZeroFeesOwed","inputs":[]}] as const, bytecode: "0x61010060405234801562000011575f80fd5b50604051620025c4380380620025c483398101604081905262000034916200043f565b5f80546001600160a01b038c166001600160a01b031991821681178355600180549092169091556040518c92919033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908490a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350506001600160a01b03861660808190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801562000109573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012f91906200051d565b60ff1660a0526001600160a01b03891660c08190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156200017e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a491906200051d565b620001b190600a62000655565b60e08181525050604051806101800160405280896001600160a01b03168152602001886001600160601b031681526020015f6001600160801b0316815260200160c0516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000256919062000665565b6001600160801b0390811682526001600160601b03998a1660208084019190915261ffff9889166040808501919091529789166060808501919091526001600160401b034281166080808701919091525f60a08088019190915262ffffff9a8b1660c080890191909152998d1660e080890191909152988d16610100978801528751948801518f16600160a01b026001600160a01b039095169490941760025599860151918601518416600160801b9081029290941691909117600355978401516004805492860151978601519686015194860151610120870151610140880151610160909801518d16600160f01b026001600160f01b03988e16600160e01b02989098166001600160e01b0391909b16600160c81b0262ffffff60c81b19921515600160c01b029290921663ffffffff60c01b1997909c16909502600160801b600160c01b0319988d16600160701b0298909816600160701b600160c01b031999909c166c01000000000000000000000000026001600160701b031990941692909d169190911791909117959095169790971792909217919091169390931795909517929092169190911717909155506200067d92505050565b80516001600160a01b038116811462000428575f80fd5b919050565b805161ffff8116811462000428575f80fd5b5f805f805f805f805f806101408b8d0312156200045a575f80fd5b620004658b62000411565b99506200047560208c0162000411565b98506200048560408c0162000411565b60608c01519098506001600160601b0381168114620004a2575f80fd5b9650620004b260808c0162000411565b9550620004c260a08c016200042d565b9450620004d260c08c016200042d565b935060e08b015162ffffff81168114620004ea575f80fd5b9250620004fb6101008c016200042d565b91506200050c6101208c016200042d565b90509295989b9194979a5092959850565b5f602082840312156200052e575f80fd5b815160ff811681146200053f575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200059a57815f19048211156200057e576200057e62000546565b808516156200058c57918102915b93841c93908002906200055f565b509250929050565b5f82620005b2575060016200064f565b81620005c057505f6200064f565b8160018114620005d95760028114620005e45762000604565b60019150506200064f565b60ff841115620005f857620005f862000546565b50506001821b6200064f565b5060208310610133831016604e8410600b841016171562000629575081810a6200064f565b6200063583836200055a565b805f19048211156200064b576200064b62000546565b0290505b92915050565b5f6200053f60ff841683620005a2565b5f6020828403121562000676575f80fd5b5051919050565b60805160a05160c05160e051611ed4620006f05f395f8181611a2401528181611a540152611ace01525f818161051801528181610545015281816113aa015261177d01525f8181610237015281816106d5015261090401525f81816103cb0152818161061e01526108120152611ed45ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c8063634da58f116100d95780638456cb5911610093578063bf7e214f1161006e578063bf7e214f146104e5578063e059ac07146104f8578063f2fde38b14610500578063fbfa77cf14610513575f80fd5b80638456cb59146104b85780638da5cb5b146104c0578063afb06952146104d2575f80fd5b8063634da58f14610448578063679aefce1461045b5780636a054dc91461046c578063709ac1c31461047f5780637a9e5e4b14610492578063820973da146104a5575f80fd5b80633458113d116101445780634d8be07e1161011f5780634d8be07e146103b35780635001f3b5146103c657806356200819146104055780636183fb9514610418575f80fd5b80633458113d1461026b5780633f4ba83a1461027e578063433255de14610286575f80fd5b806312e2d8f31461018b57806315a0ea6a146101e15780631dcbb110146101f6578063207ec0e714610217578063282a87001461022a578063313ce56714610232575b5f80fd5b6101bd610199366004611b33565b60056020525f908152604090205460ff81169061010090046001600160a01b031682565b6040805192151583526001600160a01b039091166020830152015b60405180910390f35b6101f46101ef366004611b33565b61053a565b005b610209610204366004611b33565b61080f565b6040519081526020016101d8565b6101f4610225366004611b4e565b6109c8565b610209610a8f565b6102597f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101d8565b6101f4610279366004611b6f565b610acc565b6101f4610c06565b600254600354600454610321926001600160a01b03811692600160a01b9091046001600160601b03908116926001600160801b0380841693600160801b9081900490911692821691600160601b810461ffff90811692600160701b830482169290810467ffffffffffffffff1691600160c01b820460ff1691600160c81b810462ffffff1691600160e01b8204811691600160f01b9004168c565b604080516001600160a01b03909d168d526001600160601b039b8c1660208e01526001600160801b039a8b16908d01529890971660608b015297909416608089015261ffff92831660a089015290821660c088015267ffffffffffffffff1660e087015290151561010086015262ffffff909316610120850152821661014084015216610160820152610180016101d8565b6101f46103c1366004611ba2565b610c6e565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d8565b6101f4610413366004611b33565b610d44565b61042b610426366004611b6f565b610dcf565b6040805193151584526020840192909252908201526060016101d8565b6101f4610456366004611b4e565b610ecd565b6004546001600160601b0316610209565b6101f461047a366004611bea565b610f83565b6101f461048d366004611b4e565b61103d565b6101f46104a0366004611b33565b6110f4565b6102096104b3366004611b33565b6111d8565b6101f4611214565b5f546103ed906001600160a01b031681565b6101f46104e0366004611b4e565b611282565b6001546103ed906001600160a01b031681565b6101f4611338565b6101f461050e366004611b33565b6114dd565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461058357604051637e3db46f60e01b815260040160405180910390fd5b600454600290600160c01b900460ff16156105b157604051631d98997b60e11b815260040160405180910390fd5b60018101546001600160801b03165f036105de5760405163115b9d8b60e21b815260040160405180910390fd5b6001600160a01b038083165f81815260056020908152604080832081518083019092525460ff8116151582526101009004851691810191909152909290917f0000000000000000000000000000000000000000000000000000000000000000909116900361065b5760018301546001600160801b03169150610790565b5f846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610698573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106bc9190611c0c565b60018501549091505f906106fa906001600160801b03167f000000000000000000000000000000000000000000000000000000000000000084611558565b83519091501561070c5780935061078d565b5f83602001516001600160a01b031663679aefce6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561074d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107719190611c2c565b905061078961078184600a611d37565b8390836115c7565b9450505b50505b6001830180546fffffffffffffffffffffffffffffffff1916905582546107c6906001600160a01b0386811691339116856115e2565b836001600160a01b03167f9493e5bbe4e8e0ac67284469a2d677403d0378a85a59e341d3abc433d0d9a2098360405161080191815260200190565b60405180910390a250505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361085a5750506004546001600160601b031690565b6001600160a01b038083165f81815260056020908152604080832081518083018352905460ff811615158252610100900490951685830152805163313ce56760e01b8152905192939263313ce567926004808401939192918290030181865afa1580156108c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ed9190611c0c565b6004549091505f90610929906001600160601b03167f000000000000000000000000000000000000000000000000000000000000000084611558565b83519091501561093b578093506109c0565b5f83602001516001600160a01b031663679aefce6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a09190611c2c565b90505f6109ae84600a611d37565b90506109bb8184846115c7565b955050505b505050919050565b6109dd335f356001600160e01b03191661167a565b610a025760405162461bcd60e51b81526004016109f990611d45565b60405180910390fd5b6127108161ffff161115610a2957604051637375d3bf60e01b815260040160405180910390fd5b6004805461ffff838116600160701b81810261ffff60701b1985161790945560408051949093049091168084526020840191909152917f76fe3c3557dd03afa5caf76f66f4019444ef3999e784ba08f47a33428fcc64d591015b60405180910390a15050565b6004545f90600160c01b900460ff1615610abc57604051631d98997b60e11b815260040160405180910390fd5b506004546001600160601b031690565b610ae1335f356001600160e01b03191661167a565b610afd5760405162461bcd60e51b81526004016109f990611d45565b5f805f805f610b0b86611720565b945094509450945094508415610b355760028401805460ff60c01b1916600160c01b179055610b42565b610b4284878484876118aa565b610b6b868560020180546bffffffffffffffffffffffff19166001600160601b03831617905590565b6001850180546001600160801b03908116600160801b91851682021790915560028601805467ffffffffffffffff60801b191667ffffffffffffffff8716928302179055604080516001600160601b03808716825284166020820152908101919091529096507fa95bc6aba40bbc4d95fc35f118c4cd8b53fc5d5b89ed264002af03503a7a94399060600160405180910390a1505050505050565b610c1b335f356001600160e01b03191661167a565b610c375760405162461bcd60e51b81526004016109f990611d45565b6004805460ff60c01b191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933905f90a1565b610c83335f356001600160e01b03191661167a565b610c9f5760405162461bcd60e51b81526004016109f990611d45565b6040805180820182528315158082526001600160a01b0384811660208085018281528984165f818152600584528890209651875492516001600160a81b0319909316901515610100600160a81b03191617610100929095169190910293909317909455845191825292810191909152918201527f59f9adfe8cf4c9d4b77fb03aa2ae5f373632c97cb8caf6b61f0643d3d170a8fe9060600160405180910390a1505050565b610d59335f356001600160e01b03191661167a565b610d755760405162461bcd60e51b81526004016109f990611d45565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fba2be5e898fed1646bc0814dee1cc9a2aee98f51fced7d5fc4699c47d99077539101610a83565b5f805f805f805f80610de089611720565b6001840154949c506001600160801b0390941699508b985091965094509250905084610ec157600184015460028501545f918291610e4d91600160801b908190046001600160801b03169190810467ffffffffffffffff1690600160e01b900461ffff168e88888b6119c3565b875491935091505f906001600160601b03600160a01b9091048116908d161115610ea55786546002880154610ea1918e918591600160a01b90046001600160601b031690600160f01b900461ffff16611aaf565b5090505b610eaf8184611d6b565b9950610ebb8a8a611d6b565b98505050505b50505050509193909250565b610ee2335f356001600160e01b03191661167a565b610efe5760405162461bcd60e51b81526004016109f990611d45565b6127108161ffff161015610f255760405163a4ec27a960e01b815260040160405180910390fd5b6004805461ffff838116600160601b81810261ffff60601b1985161790945560408051949093049091168084526020840191909152917f67d3a3f6bebb5b894324217d5224ff719d5d95dfc67f1bb2645dddbfcd43cadb9101610a83565b610f98335f356001600160e01b03191661167a565b610fb45760405162461bcd60e51b81526004016109f990611d45565b621275008162ffffff161115610fdd57604051635badbfbb60e01b815260040160405180910390fd5b6004805462ffffff838116600160c81b81810262ffffff60c81b1985161790945560408051949093049091168084526020840191909152917f5f7db254db512f40348d8a7ca15d574c051dfe59c19b47e273d926f2f43186069101610a83565b611052335f356001600160e01b03191661167a565b61106e5760405162461bcd60e51b81526004016109f990611d45565b6113888161ffff1611156110955760405163fdaeddbb60e01b815260040160405180910390fd5b6004805461ffff838116600160f01b8181026001600160f01b0385161790945560408051949093049091168084526020840191909152917fba8506b6cb85330fea21cbca8490aafb6a69b166f06201ef755eb511b2709fc19101610a83565b5f546001600160a01b0316331480611185575060015460405163b700961360e01b81526001600160a01b039091169063b70096139061114690339030906001600160e01b03195f351690600401611d7e565b602060405180830381865afa158015611161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111859190611dab565b61118d575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b6004545f90600160c01b900460ff161561120557604051631d98997b60e11b815260040160405180910390fd5b61120e8261080f565b92915050565b611229335f356001600160e01b03191661167a565b6112455760405162461bcd60e51b81526004016109f990611d45565b6004805460ff60c01b1916600160c01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752905f90a1565b611297335f356001600160e01b03191661167a565b6112b35760405162461bcd60e51b81526004016109f990611d45565b6107d08161ffff1611156112da5760405163173aacc160e31b815260040160405180910390fd5b6004805461ffff838116600160e01b81810261ffff60e01b1985161790945560408051949093049091168084526020840191909152917f84e4fe32bf74c4011a7e1fde79c63acdffaf92a0112cde153e7b0abee665bc6b9101610a83565b61134d335f356001600160e01b03191661167a565b6113695760405162461bcd60e51b81526004016109f990611d45565b600280546004546001600160601b03600160a01b9092048216911611156113a357604051638058acff60e01b815260040160405180910390fd5b5f4290505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114289190611c2c565b60028401549091506114479084906001600160601b03168084866118aa565b6001830180546001600160801b03908116600160801b91841682021790915560045484546001600160a01b03166001600160601b03909116600160a01b0217845560028401805467ffffffffffffffff60801b191667ffffffffffffffff85169092029190911790556040517f98637d475d52bc596e25457cb3385a05269c42e57d4d9f7561dacbbe8583eb89905f90a1505050565b6114f2335f356001600160e01b03191661167a565b61150e5760405162461bcd60e51b81526004016109f990611d45565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b5f8160ff168360ff160361156d5750826115c0565b8160ff168360ff1610156115a1576115858383611dc6565b61159090600a611d37565b61159a9085611ddf565b90506115c0565b6115ab8284611dc6565b6115b690600a611d37565b61159a9085611df6565b9392505050565b5f825f1904841183021582026115db575f80fd5b5091020490565b5f6040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b038416602482015282604482015260205f6064835f8a5af13d15601f3d1160015f5114161716915050806116735760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016109f9565b5050505050565b6001545f906001600160a01b03168015801590611701575060405163b700961360e01b81526001600160a01b0382169063b7009613906116c290879030908890600401611d7e565b602060405180830381865afa1580156116dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117019190611dab565b8061171857505f546001600160a01b038581169116145b949350505050565b6004545f90600290829081908190600160c01b900460ff161561175657604051631d98997b60e11b815260040160405180910390fd5b429250836002015f9054906101000a90046001600160601b03166001600160601b031691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fb9190611c2c565b600285015490915061182a90600160c81b810462ffffff1690600160801b900467ffffffffffffffff16611e15565b67ffffffffffffffff168367ffffffffffffffff16108061187057506002840154611864908390600160601b900461ffff166127106115c7565b866001600160601b0316115b806118a057506002840154611894908390600160701b900461ffff166127106115c7565b866001600160601b0316105b9693955091935091565b600185015460028601545f9182916118f191600160801b908190046001600160801b03169190810467ffffffffffffffff1690600160e01b900461ffff16898989896119c3565b885491935091506001600160601b03600160a01b90910481169087161115611977575f61194887838a5f0160149054906101000a90046001600160601b03168b600201601e9054906101000a900461ffff16611aaf565b5090506119558184611d6b565b88546001600160a01b0316600160a01b6001600160601b038a16021789559250505b6001870180548391905f906119969084906001600160801b0316611e3d565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505050505050565b5f826001600160801b0389168111156119e257506001600160801b0388165b61ffff871615611aa3575f6119f78985611e5d565b67ffffffffffffffff1690505f86886001600160601b031611611a4d57611a48836001600160601b038a167f00000000000000000000000000000000000000000000000000000000000000006115c7565b611a78565b611a7883887f00000000000000000000000000000000000000000000000000000000000000006115c7565b90505f611a8c8261ffff8c166127106115c7565b9050611a9d81846301e133806115c7565b94505050505b97509795505050505050565b5f8080611abc8588611e7e565b6001600160601b03169050611af281877f00000000000000000000000000000000000000000000000000000000000000006115c7565b915061ffff841615611b1257611b0f8261ffff86166127106115c7565b92505b5094509492505050565b6001600160a01b0381168114611b30575f80fd5b50565b5f60208284031215611b43575f80fd5b81356115c081611b1c565b5f60208284031215611b5e575f80fd5b813561ffff811681146115c0575f80fd5b5f60208284031215611b7f575f80fd5b81356001600160601b03811681146115c0575f80fd5b8015158114611b30575f80fd5b5f805f60608486031215611bb4575f80fd5b8335611bbf81611b1c565b92506020840135611bcf81611b95565b91506040840135611bdf81611b1c565b809150509250925092565b5f60208284031215611bfa575f80fd5b813562ffffff811681146115c0575f80fd5b5f60208284031215611c1c575f80fd5b815160ff811681146115c0575f80fd5b5f60208284031215611c3c575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c9157815f1904821115611c7757611c77611c43565b80851615611c8457918102915b93841c9390800290611c5c565b509250929050565b5f82611ca75750600161120e565b81611cb357505f61120e565b8160018114611cc95760028114611cd357611cef565b600191505061120e565b60ff841115611ce457611ce4611c43565b50506001821b61120e565b5060208310610133831016604e8410600b8410161715611d12575081810a61120e565b611d1c8383611c57565b805f1904821115611d2f57611d2f611c43565b029392505050565b5f6115c060ff841683611c99565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b8082018082111561120e5761120e611c43565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f60208284031215611dbb575f80fd5b81516115c081611b95565b60ff828116828216039081111561120e5761120e611c43565b808202811582820484141761120e5761120e611c43565b5f82611e1057634e487b7160e01b5f52601260045260245ffd5b500490565b67ffffffffffffffff818116838216019080821115611e3657611e36611c43565b5092915050565b6001600160801b03818116838216019080821115611e3657611e36611c43565b67ffffffffffffffff828116828216039080821115611e3657611e36611c43565b6001600160601b03828116828216039080821115611e3657611e36611c4356fea264697066735822122034b3e23bc8aeb9b4e3bad22e58ec6daf8825d958e42e6b71aab911bcb140f1b264736f6c63430008150033", }; export const TellerWithMultiAssetSupport: Artifact = { abi: [{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_vault","type":"address","internalType":"address"},{"name":"_accountant","type":"address","internalType":"address"},{"name":"_weth","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"accountant","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AccountantWithRateProviders"}],"stateMutability":"view"},{"type":"function","name":"allowAll","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowFrom","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowOperator","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowTo","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assetData","inputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"outputs":[{"name":"allowDeposits","type":"bool","internalType":"bool"},{"name":"allowWithdraws","type":"bool","internalType":"bool"},{"name":"sharePremium","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Authority"}],"stateMutability":"view"},{"type":"function","name":"beforeTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"bulkDeposit","inputs":[{"name":"depositAsset","type":"address","internalType":"contract ERC20"},{"name":"depositAmount","type":"uint256","internalType":"uint256"},{"name":"minimumMint","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"bulkWithdraw","inputs":[{"name":"withdrawAsset","type":"address","internalType":"contract ERC20"},{"name":"shareAmount","type":"uint256","internalType":"uint256"},{"name":"minimumAssets","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"assetsOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"denyAll","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"denyFrom","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"denyOperator","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"denyTo","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"depositAsset","type":"address","internalType":"contract ERC20"},{"name":"depositAmount","type":"uint256","internalType":"uint256"},{"name":"minimumMint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositNonce","inputs":[],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"depositWithPermit","inputs":[{"name":"depositAsset","type":"address","internalType":"contract ERC20"},{"name":"depositAmount","type":"uint256","internalType":"uint256"},{"name":"minimumMint","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"fromDenyList","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPaused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nativeWrapper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH"}],"stateMutability":"view"},{"type":"function","name":"operatorDenyList","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"publicDepositHistory","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"refundDeposit","inputs":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"depositAsset","type":"address","internalType":"address"},{"name":"depositAmount","type":"uint256","internalType":"uint256"},{"name":"shareAmount","type":"uint256","internalType":"uint256"},{"name":"depositTimestamp","type":"uint256","internalType":"uint256"},{"name":"shareLockUpPeriodAtTimeOfDeposit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"contract Authority"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setShareLockPeriod","inputs":[{"name":"_shareLockPeriod","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"shareLockPeriod","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"shareUnlockTime","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"toDenyList","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateAssetData","inputs":[{"name":"asset","type":"address","internalType":"contract ERC20"},{"name":"allowDeposits","type":"bool","internalType":"bool"},{"name":"allowWithdraws","type":"bool","internalType":"bool"},{"name":"sharePremium","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BoringVault"}],"stateMutability":"view"},{"type":"event","name":"AllowFrom","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AllowOperator","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AllowTo","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetDataUpdated","inputs":[{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"allowDeposits","type":"bool","indexed":false,"internalType":"bool"},{"name":"allowWithdraws","type":"bool","indexed":false,"internalType":"bool"},{"name":"sharePremium","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newAuthority","type":"address","indexed":true,"internalType":"contract Authority"}],"anonymous":false},{"type":"event","name":"BulkDeposit","inputs":[{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"depositAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BulkWithdraw","inputs":[{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"shareAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DenyFrom","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DenyOperator","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DenyTo","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"depositAsset","type":"address","indexed":true,"internalType":"address"},{"name":"depositAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shareAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositTimestamp","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shareLockPeriodAtTimeOfDeposit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DepositRefunded","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[],"anonymous":false},{"type":"error","name":"TellerWithMultiAssetSupport__AssetNotSupported","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__BadDepositHash","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__CannotDepositNative","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__DualDeposit","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__MinimumAssetsNotMet","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__MinimumMintNotMet","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__Paused","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__ShareLockPeriodTooLong","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__SharePremiumTooLarge","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__SharesAreLocked","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__SharesAreUnLocked","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__TransferDenied","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"TellerWithMultiAssetSupport__ZeroAssets","inputs":[]},{"type":"error","name":"TellerWithMultiAssetSupport__ZeroShares","inputs":[]}] as const, bytecode: "0x610100604052600160025534801562000016575f80fd5b506040516200271c3803806200271c83398101604081905262000039916200017b565b5f80546001600160a01b0386166001600160a01b031991821681178355600180549092169091556040518692919033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908490a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350506001600160a01b03831660808190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156200010e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001349190620001d5565b6200014190600a6200030d565b60c0526001600160a01b0391821660a0521660e052506200031d9050565b80516001600160a01b038116811462000176575f80fd5b919050565b5f805f80608085870312156200018f575f80fd5b6200019a856200015f565b9350620001aa602086016200015f565b9250620001ba604086016200015f565b9150620001ca606086016200015f565b905092959194509250565b5f60208284031215620001e6575f80fd5b815160ff81168114620001f7575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200025257815f1904821115620002365762000236620001fe565b808516156200024457918102915b93841c939080029062000217565b509250929050565b5f826200026a5750600162000307565b816200027857505f62000307565b81600181146200029157600281146200029c57620002bc565b600191505062000307565b60ff841115620002b057620002b0620001fe565b50506001821b62000307565b5060208310610133831016604e8410600b8410161715620002e1575081810a62000307565b620002ed838362000212565b805f1904821115620003035762000303620001fe565b0290505b92915050565b5f620001f760ff8416836200025a565b60805160a05160c05160e051612370620003ac5f395f8181610249015281816107e301528181610860015281816108ae01526111d101525f8181610f3d0152611b5f01525f81816104a001528181610ece0152611b8101525f818161070c0152818161088401528181610f9b0152818161120b01528181611c6601528181611e260152611ec601526123705ff3fe6080604052600436106101f1575f3560e01c80635f45bac811610108578063a924bf611161009d578063c29d2f101161006d578063c29d2f1014610658578063de35f5cb14610677578063f07f287d146106ae578063f2fde38b146106dc578063fbfa77cf146106fb575f80fd5b8063a924bf61146105db578063abd626b0146105fa578063b187bd2614610619578063bf7e214f14610639575f80fd5b80638dfd8ba1116100d85780638dfd8ba1146105325780639a94d3d0146105515780639d5744201461057c5780639fdb11b61461059b575f80fd5b80635f45bac8146104c25780637a9e5e4b146104e15780638456cb59146105005780638da5cb5b14610514575f80fd5b806326a64b40116101895780633e64ce99116101595780633e64ce99146103d85780633f4ba83a146103f757806341fee44a1461040b57806346b563f4146104705780634fb3ccc51461048f575f80fd5b806326a64b401461034d5780632c524c421461037b5780633b5754071461039a5780633d935d9e146103b9575f80fd5b80631899ea81116101c45780631899ea81146102c557806318aed921146102f05780631b62636c1461030f5780631ba9a4581461032e575f80fd5b806304ded84a146101f55780630b48a8b8146102385780630efe6a8b1461028357806312056e2d146102a4575b5f80fd5b348015610200575f80fd5b5061022361020f366004611f93565b60086020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610243575f80fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161022f565b610296610291366004611fb5565b61072e565b60405190815260200161022f565b3480156102af575f80fd5b506102c36102be366004611fe7565b610942565b005b3480156102d0575f80fd5b506102966102df366004611f93565b60066020525f908152604090205481565b3480156102fb575f80fd5b506102c361030a366004611f93565b6109cf565b34801561031a575f80fd5b506102c3610329366004611f93565b610ad7565b348015610339575f80fd5b506102c3610348366004611f93565b610b53565b348015610358575f80fd5b50610223610367366004611f93565b60076020525f908152604090205460ff1681565b348015610386575f80fd5b506102c3610395366004611f93565b610bcc565b3480156103a5575f80fd5b506102c36103b4366004611f93565b610c48565b3480156103c4575f80fd5b506102966103d336600461200e565b610cc4565b3480156103e3575f80fd5b506102966103f2366004612076565b610dc4565b348015610402575f80fd5b506102c3611051565b348015610416575f80fd5b5061044f610425366004611f93565b60036020525f908152604090205460ff8082169161010081049091169062010000900461ffff1683565b604080519315158452911515602084015261ffff169082015260600161022f565b34801561047b575f80fd5b506102c361048a3660046120bd565b6110b9565b34801561049a575f80fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cd575f80fd5b506102c36104dc366004611f93565b6112c3565b3480156104ec575f80fd5b506102c36104fb366004611f93565b61133c565b34801561050b575f80fd5b506102c3611420565b34801561051f575f80fd5b505f5461026b906001600160a01b031681565b34801561053d575f80fd5b506102c361054c36600461212a565b61148e565b34801561055c575f80fd5b5061029661056b36600461217e565b60056020525f908152604090205481565b348015610587575f80fd5b50610296610596366004612076565b6115a7565b3480156105a6575f80fd5b506004546105c290600160601b900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161022f565b3480156105e6575f80fd5b506102c36105f5366004611f93565b61166c565b348015610605575f80fd5b506102c3610614366004612195565b6116e5565b348015610624575f80fd5b5060045461022390600160a01b900460ff1681565b348015610644575f80fd5b5060015461026b906001600160a01b031681565b348015610663575f80fd5b506102c3610672366004611f93565b6117ba565b348015610682575f80fd5b50600454610696906001600160601b031681565b6040516001600160601b03909116815260200161022f565b3480156106b9575f80fd5b506102236106c8366004611f93565b60096020525f908152604090205460ff1681565b3480156106e7575f80fd5b506102c36106f6366004611f93565b6118bb565b348015610706575f80fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610744335f356001600160e01b031916611936565b6107695760405162461bcd60e51b8152600401610760906121dd565b60405180910390fd5b60025460011461078b5760405162461bcd60e51b815260040161076090612203565b600280555f610799856119de565b90505f73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038716016108d557345f036107e15760405163259be69560e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561083a575f80fd5b505af115801561084c573d5f803e3d5ffd5b503498506108ab9350506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691507f0000000000000000000000000000000000000000000000000000000000000000905087611a99565b507f00000000000000000000000000000000000000000000000000000000000000009450306108f7565b34156108f457604051631cf02cf960e21b815260040160405180910390fd5b50335b610905868686843387611b1b565b9250610934338787866004600c9054906101000a900467ffffffffffffffff1667ffffffffffffffff16611cda565b505060016002559392505050565b610957335f356001600160e01b031916611936565b6109735760405162461bcd60e51b8152600401610760906121dd565b6203f4808167ffffffffffffffff1611156109a157604051631fac010160e21b815260040160405180910390fd5b6004805467ffffffffffffffff909216600160601b0267ffffffffffffffff60601b19909216919091179055565b6109e4335f356001600160e01b031916611936565b610a005760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f8181526007602090815260408083208054600160ff1991821681179092556008845282852080548216831790556009909352818420805490931617909155517fd658022b1a3aaf6ad3b3c615253712807f21a8f7bc3e4996e10618175d4afb2b9190a26040516001600160a01b038216907f79fc685a7dbabb75a67df5e69a90602cef1f19bc465b060eab1ac56685e04a13905f90a26040516001600160a01b038216907f3afb02134e37f7205acf470adc2fc4ebb70614b1599a602d069790915380e2aa905f90a250565b610aec335f356001600160e01b031916611936565b610b085760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260096020526040808220805460ff19166001179055517f3afb02134e37f7205acf470adc2fc4ebb70614b1599a602d069790915380e2aa9190a250565b610b68335f356001600160e01b031916611936565b610b845760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260096020526040808220805460ff19169055517f77cb944c14da76928795279d1519ce9150085a06e0a53c61d5a86fc4e0fd57c69190a250565b610be1335f356001600160e01b031916611936565b610bfd5760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260076020526040808220805460ff19166001179055517fd658022b1a3aaf6ad3b3c615253712807f21a8f7bc3e4996e10618175d4afb2b9190a250565b610c5d335f356001600160e01b031916611936565b610c795760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260086020526040808220805460ff19166001179055517f79fc685a7dbabb75a67df5e69a90602cef1f19bc465b060eab1ac56685e04a139190a250565b5f610cda335f356001600160e01b031916611936565b610cf65760405162461bcd60e51b8152600401610760906121dd565b600254600114610d185760405162461bcd60e51b815260040161076090612203565b600280558773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601610d5b576040516316df5df960e31b815260040160405180910390fd5b5f610d658a6119de565b9050610d758a8a89898989611e09565b610d838a8a8a333386611b1b565b9250610db2338b8b866004600c9054906101000a900467ffffffffffffffff1667ffffffffffffffff16611cda565b50506001600255979650505050505050565b5f610dda335f356001600160e01b031916611936565b610df65760405162461bcd60e51b8152600401610760906121dd565b600454600160a01b900460ff1615610e215760405163e0f9e71d60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600360209081526040918290208251606081018452905460ff80821615158352610100820416151592820183905262010000900461ffff1692810192909252610e8b5760405163645fd19f60e11b815260040160405180910390fd5b845f03610eab57604051630ea3153160e21b815260040160405180910390fd5b604051634104b9ed60e11b81526001600160a01b038781166004830152610f61917f00000000000000000000000000000000000000000000000000000000000000009091169063820973da90602401602060405180830381865afa158015610f15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f399190612227565b86907f0000000000000000000000000000000000000000000000000000000000000000611f61565b915083821015610f84576040516302620f6160e61b815260040160405180910390fd5b6040516318457e6160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318457e6190610fd89086908a90879033908c9060040161223e565b5f604051808303815f87803b158015610fef575f80fd5b505af1158015611001573d5f803e3d5ffd5b50505050856001600160a01b03167fdcc60b41ff1c604459e6aa4a7299817416b19fc586a392f111646e26597c4af98660405161104091815260200190565b60405180910390a250949350505050565b611066335f356001600160e01b031916611936565b6110825760405162461bcd60e51b8152600401610760906121dd565b6004805460ff60a01b191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933905f90a1565b6110ce335f356001600160e01b031916611936565b6110ea5760405162461bcd60e51b8152600401610760906121dd565b806110f58342612285565b1061111357604051634c1eef1760e11b815260040160405180910390fd5b604080516001600160a01b038089166020830152871691810191909152606081018590526080810184905260a0810183905260c081018290525f9060e00160408051601f1981840301815291815281516020928301205f8b8152600590935291205490915081146111975760405163fa174ecb60e01b815260040160405180910390fd5b5f888152600560205260408120556001600160a01b03861673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146111cf57856111f1565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516318457e6160e01b81529096506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318457e6190611248908a908a908a9083908b9060040161223e565b5f604051808303815f87803b15801561125f575f80fd5b505af1158015611271573d5f803e3d5ffd5b50505050866001600160a01b0316887faf98ea774275cadfa3e477a7b52cba03e01197445a76bd5d0d561608708c3624836040516112b191815260200190565b60405180910390a35050505050505050565b6112d8335f356001600160e01b031916611936565b6112f45760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260086020526040808220805460ff19169055517f039bcf51833310242b8b7c6aa0fbabf1bf2b5e5270807ee020f1920ef200666b9190a250565b5f546001600160a01b03163314806113cd575060015460405163b700961360e01b81526001600160a01b039091169063b70096139061138e90339030906001600160e01b03195f351690600401612298565b602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd91906122c5565b6113d5575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b611435335f356001600160e01b031916611936565b6114515760405162461bcd60e51b8152600401610760906121dd565b6004805460ff60a01b1916600160a01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752905f90a1565b6114a3335f356001600160e01b031916611936565b6114bf5760405162461bcd60e51b8152600401610760906121dd565b6103e861ffff821611156114e657604051636c5cde8760e01b815260040160405180910390fd5b6040805160608082018352851515808352851515602080850182815261ffff8881168789018181526001600160a01b038e165f818152600387528b902099518a549551925161ffff1990961690151561ff00191617610100921515929092029190911763ffff0000191662010000949093169390930291909117909655865193845290830191909152938101929092527fe08301321781ac43935a2099b2c3fd42de0a0ee87a519cac00e8c9cecd26ff12910160405180910390a250505050565b5f6115bd335f356001600160e01b031916611936565b6115d95760405162461bcd60e51b8152600401610760906121dd565b6002546001146115fb5760405162461bcd60e51b815260040161076090612203565b600280555f611609866119de565b9050611619868686338786611b1b565b9150856001600160a01b03167f6f9b974223f85a1ae805c33b8b519039e2435481d949db1110de151a94d587af8660405161165691815260200190565b60405180910390a2506001600255949350505050565b611681335f356001600160e01b031916611936565b61169d5760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f81815260076020526040808220805460ff19169055517fae893dda71e2eee548f8291f458cceae4bd22b56a79906928591e4420444c0e99190a250565b6001600160a01b0383165f9081526007602052604090205460ff168061172257506001600160a01b0382165f9081526008602052604090205460ff165b8061174457506001600160a01b0381165f9081526009602052604090205460ff165b1561177d57604051632821264f60e01b81526001600160a01b038085166004830152808416602483015282166044820152606401610760565b6001600160a01b0383165f908152600660205260409020544210156117b55760405163f64059db60e01b815260040160405180910390fd5b505050565b6117cf335f356001600160e01b031916611936565b6117eb5760405162461bcd60e51b8152600401610760906121dd565b6001600160a01b0381165f818152600760209081526040808320805460ff199081169091556008835281842080548216905560099092528083208054909216909155517fae893dda71e2eee548f8291f458cceae4bd22b56a79906928591e4420444c0e99190a26040516001600160a01b038216907f039bcf51833310242b8b7c6aa0fbabf1bf2b5e5270807ee020f1920ef200666b905f90a26040516001600160a01b038216907f77cb944c14da76928795279d1519ce9150085a06e0a53c61d5a86fc4e0fd57c6905f90a250565b6118d0335f356001600160e01b031916611936565b6118ec5760405162461bcd60e51b8152600401610760906121dd565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b031680158015906119bd575060405163b700961360e01b81526001600160a01b0382169063b70096139061197e90879030908890600401612298565b602060405180830381865afa158015611999573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119bd91906122c5565b806119d457505f546001600160a01b038581169116145b9150505b92915050565b604080516060810182525f8082526020820181905291810191909152600454600160a01b900460ff1615611a255760405163e0f9e71d60e01b815260040160405180910390fd5b506001600160a01b0381165f908152600360209081526040918290208251606081018452905460ff8082161515808452610100830490911615159383019390935262010000900461ffff1692810192909252611a945760405163645fd19f60e11b815260040160405180910390fd5b919050565b5f60405163095ea7b360e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505080611b155760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610760565b50505050565b5f855f03611b3c5760405163259be69560e11b815260040160405180910390fd5b604051634104b9ed60e11b81526001600160a01b038881166004830152611bf2917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000169063820973da90602401602060405180830381865afa158015611bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bea9190612227565b889190611f61565b90505f826040015161ffff1611611c095780611c2c565b611c2c8260400151612710611c1e91906122e0565b829061ffff16612710611f61565b905084811015611c4f5760405163097b2ad560e31b815260040160405180910390fd5b604051631ceb5d1960e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906339d6ba3290611ca39087908b908b908990889060040161223e565b5f604051808303815f87803b158015611cba575f80fd5b505af1158015611ccc573d5f803e3d5ffd5b505050509695505050505050565b600480545f91908290611cf5906001600160601b0316612302565b82546001600160601b039182166101009390930a838102920219161790915590508115611d9957611d268242612327565b6001600160a01b038781165f81815260066020908152604091829020949094558051938401919091529087169082015260608101859052608081018490524260a082015260c0810183905260e00160408051601f1981840301815291815281516020928301205f84815260059093529120555b846001600160a01b0316866001600160a01b0316827fe96d7872363f475d18b2f5390caaa5eaa96b2d38e42c62afe4ac08ebd2b13c3a87874288604051611df9949392919093845260208401929092526040830152606082015260800190565b60405180910390a4505050505050565b60405163d505accf60e01b81523360048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018790526064820186905260ff8516608483015260a4820184905260c4820183905287169063d505accf9060e4015f604051808303815f87803b158015611e94575f80fd5b505af1925050508015611ea5575060015b611f5957604051636eb1769f60e11b81523360048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116602483015286919088169063dd62ed3e90604401602060405180830381865afa158015611f16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3a9190612227565b1015611f59576040516301b8851f60e41b815260040160405180910390fd5b505050505050565b5f825f190484118302158202611f75575f80fd5b5091020490565b6001600160a01b0381168114611f90575f80fd5b50565b5f60208284031215611fa3575f80fd5b8135611fae81611f7c565b9392505050565b5f805f60608486031215611fc7575f80fd5b8335611fd281611f7c565b95602085013595506040909401359392505050565b5f60208284031215611ff7575f80fd5b813567ffffffffffffffff81168114611fae575f80fd5b5f805f805f805f60e0888a031215612024575f80fd5b873561202f81611f7c565b9650602088013595506040880135945060608801359350608088013560ff81168114612059575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f805f8060808587031215612089575f80fd5b843561209481611f7c565b9350602085013592506040850135915060608501356120b281611f7c565b939692955090935050565b5f805f805f805f60e0888a0312156120d3575f80fd5b8735965060208801356120e581611f7c565b955060408801356120f581611f7c565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b8015158114611f90575f80fd5b5f805f806080858703121561213d575f80fd5b843561214881611f7c565b935060208501356121588161211d565b925060408501356121688161211d565b9150606085013561ffff811681146120b2575f80fd5b5f6020828403121561218e575f80fd5b5035919050565b5f805f606084860312156121a7575f80fd5b83356121b281611f7c565b925060208401356121c281611f7c565b915060408401356121d281611f7c565b809150509250925092565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b5f60208284031215612237575f80fd5b5051919050565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156119d8576119d8612271565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156122d5575f80fd5b8151611fae8161211d565b61ffff8281168282160390808211156122fb576122fb612271565b5092915050565b5f6001600160601b0380831681810361231d5761231d612271565b6001019392505050565b808201808211156119d8576119d861227156fea2646970667358221220de0790e36cc713fdec1a564de4b836dcdb68afb3eef25e13e2ca32a1f205635564736f6c63430008150033", }; export const ARTIFACTS = { RolesAuthority, BoringVault, ManagerWithMerkleVerification, AccountantWithRateProviders, TellerWithMultiAssetSupport } as const;