{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BASIS_POINTS_DIVISOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_SPREAD_BASIS_POINTS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PRICE_PRECISION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"forceUpdatePrice","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_price","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMaxPrice","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMinPrice","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_maximise","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPriceInfo","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"currentPrice","type":"uint256","internalType":"uint256"},{"name":"cachedPrice","type":"uint256","internalType":"uint256"},{"name":"maxPrice","type":"uint256","internalType":"uint256"},{"name":"minPrice","type":"uint256","internalType":"uint256"},{"name":"spread","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"gov","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_usdcAddress","type":"address","internalType":"address"},{"name":"_usdcPriceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isKeeper","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastPrice","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxPriceChangeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setKeeper","inputs":[{"name":"_keeper","type":"address","internalType":"address"},{"name":"_isActive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxPriceChangeBps","inputs":[{"name":"_maxPriceChangeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSpreadBasisPoints","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_spreadBasisPoints","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSpreadBasisPointsForMultiple","inputs":[{"name":"_tokens","type":"address[]","internalType":"address[]"},{"name":"_spreadBasisPoints","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUSDCAddress","inputs":[{"name":"_usdcAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUSDCPriceFeed","inputs":[{"name":"_usdcPriceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spreadBasisPoints","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updatePrice","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"KeeperSet","inputs":[{"name":"keeper","type":"address","indexed":true,"internalType":"address"},{"name":"isActive","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PriceUpdate","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"oldPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SpreadUpdate","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"spreadBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"Forbidden","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidChainlinkPrice","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MaxChangeTooHigh","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"PriceChangeTooLarge","inputs":[]},{"type":"error","name":"SpreadTooHigh","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206113135f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161124c90816100c782396080518181816107b801526108880152f35b6001600160401b0319166001600160401b039081175f5160206113135f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816302d4545714610c59575080630957aed914610c3e578063126082cf14610c2257806312d43a5114610bfb578063485cc95514610a485780634f1ef2861461080c57806352d1902d146107a65780635d42fb6b1461071d578063697cd71a146107005780636ba42aaa146106c357806376d69760146106aa57806381a612d61461068757806383daeb47146106445780638edbf436146105a657806395082d251461057f57806396e85ced1461052c5780639b889380146104b2578063a27ea3861461047a578063aaf5bfc31461041b578063ad3cb1cc146103bd578063c9e0c10614610265578063d1b9e853146101f1578063e124e6d2146101c6578063ed0df72b1461016b5763f5a6ba2e1461012f575f80fd5b34610167576020366003190112610167576001600160a01b03610150610c7c565b165f526005602052602060405f2054604051908152f35b5f80fd5b3461016757602036600319011261016757610184610c7c565b5f546001600160a01b031633036101b757600380546001600160a01b0319166001600160a01b0392909216919091179055005b631dd2188d60e31b5f5260045ffd5b346101675760203660031901126101675760206101e96101e4610c7c565b610e87565b604051908152f35b34610167576101ff36610ce4565b5f549091906001600160a01b031633036101b75760207f8dd62d4e1f60b96148552898e743aa2b571686baa26f4f1b647565dc3996c1a79160018060a01b031692835f526006825260405f209015159060ff1981541660ff8316179055604051908152a2005b346101675760403660031901126101675760043567ffffffffffffffff811161016757610296903690600401610d13565b60243567ffffffffffffffff8111610167576102b6903690600401610d13565b5f549092906001600160a01b031633036101b757828103610386575f5b8181106102dc57005b60c86102e9828686610e4f565b351161037757806102fd6001928686610e4f565b35828060a01b0361031761031284878b610e4f565b610e73565b165f52600460205260405f2055610332610312828589610e4f565b7fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11796020610360848989610e4f565b3592604051938452858060a01b031692a2016102d3565b639821c0c960e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b34610167575f3660031901126101675760408051906103dc8183610c92565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b3461016757602036600319011261016757610434610c7c565b5f546001600160a01b031633036101b7576001600160a01b0316801561046b576001600160601b0360a01b60015416176001555f80f35b63e6c4247b60e01b5f5260045ffd5b34610167576020366003190112610167576001600160a01b0361049b610c7c565b165f526004602052602060405f2054604051908152f35b34610167576040366003190112610167576104cb610c7c565b5f5460243591906001600160a01b031633036101b75760c882116103775760207fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11799160018060a01b031692835f52600482528060405f2055604051908152a2005b3461016757602036600319011261016757610545610c7c565b335f52600660205260ff60405f205416158061056b575b6101b7576101e9602091610dc1565b505f546001600160a01b031633141561055c565b34610167575f3660031901126101675760206040516c0c9f2c9cd04674edea400000008152f35b34610167576020366003190112610167576105bf610c7c565b6001546001600160a01b038281169116810361060257505060a06105e1610ef7565b5f8180805b6040519485526020850152604084015260608301526080820152f35b8161060e60a093610fc3565b91805f52600560205260405f2054905f52600460205260405f20549161063e8461063881846110a1565b926110e1565b916105e6565b34610167576020366003190112610167575f54600435906001600160a01b031633036101b7576107d0811161067857600255005b63165376f560e21b5f5260045ffd5b346101675760203660031901126101675760206101e96106a5610c7c565b610d86565b346101675760206101e96106bd36610ce4565b90610d44565b34610167576020366003190112610167576001600160a01b036106e4610c7c565b165f526006602052602060ff60405f2054166040519015158152f35b34610167575f366003190112610167576020600254604051908152f35b3461016757604036600319011261016757610736610c7c565b5f5460243591906001600160a01b031633036101b7576001600160a01b03165f818152600560209081526040918290208054908590558251908152908101939093524290830152907f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e011690606090a2005b34610167575f366003190112610167577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107fd5760206040515f5160206111d75f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261016757610820610c7c565b6024359067ffffffffffffffff821161016757366023830112156101675781600401359061084d82610cc8565b9161085b6040519384610c92565b8083526020830193366024838301011161016757815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610a26575b506107fd575f546001600160a01b031633036101b7576040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f91816109f2575b5061090b5784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111d75f395f51905f528692036109e05750823b156109ce575f5160206111d75f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156109b5575f80916109ab945190845af43d156109ad573d9161098f83610cc8565b9261099d6040519485610c92565b83523d5f602085013e611178565b005b606091611178565b505050346109bf57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610a1e575b81610a0e60209383610c92565b81010312610167575190866108f3565b3d9150610a01565b5f5160206111d75f395f51905f52546001600160a01b031614159050846108b3565b3461016757604036600319011261016757610a61610c7c565b6024356001600160a01b03811690819003610167575f5160206111f75f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610bf3575b6001149081610be9575b159081610be0575b50610bd15767ffffffffffffffff1981166001175f5160206111f75f395f51905f525582610ba5575b505f5160206111f75f395f51905f52549260ff8460401c1615610b96576001600160a01b0316801561046b576001600160601b0360a01b60015416176001556001600160601b0360a01b6003541617600355336001600160601b0360a01b5f5416175f556101f4600255610b4e57005b68ff000000000000000019165f5160206111f75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b631afcd79f60e31b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111f75f395f51905f525583610ade565b63f92ee8a960e01b5f5260045ffd5b90501585610ab5565b303b159150610aad565b849150610aa3565b34610167575f366003190112610167575f546040516001600160a01b039091168152602090f35b34610167575f3660031901126101675760206040516127108152f35b34610167575f36600319011261016757602060405160c88152f35b34610167575f366003190112610167576001546001600160a01b03168152602090f35b600435906001600160a01b038216820361016757565b90601f8019910116810190811067ffffffffffffffff821117610cb457604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111610cb457601f01601f191660200190565b6040906003190112610167576004356001600160a01b0381168103610167579060243580151581036101675790565b9181601f840112156101675782359167ffffffffffffffff8311610167576020808501948460051b01011161016757565b6001549091906001600160a01b03808416911614610d7c5781610d69610d7993610fc3565b90610d748282611033565b611119565b90565b5050610d79610ef7565b6001546001600160a01b03828116911614610db85780610da8610d7992610fc3565b90610db38282611033565b6110e1565b50610d79610ef7565b6001546001600160a01b0382811691168114610d7c57805f5260056020527f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e0116610e4960405f2054610e1b610e1486610fc3565b8096611033565b835f5260056020528460405f2055604051918291864291846040919493926060820195825260208201520152565b0390a290565b9190811015610e5f5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101675790565b6001546001600160a01b03828116911614610db85780610ea9610d7992610fc3565b90610eb48282611033565b6110a1565b519069ffffffffffffffffffff8216820361016757565b81810292918115918404141715610ee357565b634e487b7160e01b5f52601160045260245ffd5b600354604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa908115610fb8575f91610f6b575b505f811315610f5c5769021e19e0c9bab240000081029080820469021e19e0c9bab24000001490151715610ee35790565b638002905d60e01b5f5260045ffd5b905060a0813d60a011610fb0575b81610f8660a09383610c92565b8101031261016757610f9781610eb9565b50610fa9608060208301519201610eb9565b505f610f2b565b3d9150610f79565b6040513d5f823e3d90fd5b60405163adcc40cb60e01b815290602090829060049082906001600160a01b03165afa908115610fb8575f91610ff7575090565b90506020813d60201161101e575b8161101260209383610c92565b81010312610167575190565b3d9150611005565b91908203918211610ee357565b6001600160a01b03165f9081526005602052604090205490811561109d5761107661271091838082115f1461108d5761106b91611026565b925b60025490610ed0565b041061107e57565b63a8eb64ed60e01b5f5260045ffd5b9061109791611026565b9261106d565b5050565b6001600160a01b03165f9081526004602052604090205480156110dd5761271001908161271011610ee357612710916110d991610ed0565b0490565b5090565b6001600160a01b03165f9081526004602052604090205480156110dd5761271003906127108211610ee357612710916110d991610ed0565b6001600160a01b03165f908152600460205260409020549091811561117357156111585761271001908161271011610ee357612710916110d991610ed0565b61271003906127108211610ee357612710916110d991610ed0565b505090565b9061119c575080511561118d57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806111cd575b6111ad575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156111a556fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122013c1c4626c36d74a561bcc161c48da5a709c54d2e1d6ba6a3ee8aa86179f195064736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"523:10977:17:-:0;;;;;;;1171:4:47;1163:13;;-1:-1:-1;;;;;;;;;;;523:10977:17;;;;;;7894:76:46;;-1:-1:-1;;;;;;;;;;;523:10977:17;;7983:34:46;7979:146;;-1:-1:-1;523:10977:17;;;;;;;;1163:13:47;523:10977:17;;;;;;;;;;;7979:146:46;-1:-1:-1;;;;;;523:10977:17;-1:-1:-1;;;;;523:10977:17;;;-1:-1:-1;;;;;;;;;;;523:10977:17;;;8085:29:46;;523:10977:17;;8085:29:46;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:46;;-1:-1:-1;7936:23:46;523:10977:17;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816302d4545714610c59575080630957aed914610c3e578063126082cf14610c2257806312d43a5114610bfb578063485cc95514610a485780634f1ef2861461080c57806352d1902d146107a65780635d42fb6b1461071d578063697cd71a146107005780636ba42aaa146106c357806376d69760146106aa57806381a612d61461068757806383daeb47146106445780638edbf436146105a657806395082d251461057f57806396e85ced1461052c5780639b889380146104b2578063a27ea3861461047a578063aaf5bfc31461041b578063ad3cb1cc146103bd578063c9e0c10614610265578063d1b9e853146101f1578063e124e6d2146101c6578063ed0df72b1461016b5763f5a6ba2e1461012f575f80fd5b34610167576020366003190112610167576001600160a01b03610150610c7c565b165f526005602052602060405f2054604051908152f35b5f80fd5b3461016757602036600319011261016757610184610c7c565b5f546001600160a01b031633036101b757600380546001600160a01b0319166001600160a01b0392909216919091179055005b631dd2188d60e31b5f5260045ffd5b346101675760203660031901126101675760206101e96101e4610c7c565b610e87565b604051908152f35b34610167576101ff36610ce4565b5f549091906001600160a01b031633036101b75760207f8dd62d4e1f60b96148552898e743aa2b571686baa26f4f1b647565dc3996c1a79160018060a01b031692835f526006825260405f209015159060ff1981541660ff8316179055604051908152a2005b346101675760403660031901126101675760043567ffffffffffffffff811161016757610296903690600401610d13565b60243567ffffffffffffffff8111610167576102b6903690600401610d13565b5f549092906001600160a01b031633036101b757828103610386575f5b8181106102dc57005b60c86102e9828686610e4f565b351161037757806102fd6001928686610e4f565b35828060a01b0361031761031284878b610e4f565b610e73565b165f52600460205260405f2055610332610312828589610e4f565b7fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11796020610360848989610e4f565b3592604051938452858060a01b031692a2016102d3565b639821c0c960e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b34610167575f3660031901126101675760408051906103dc8183610c92565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b3461016757602036600319011261016757610434610c7c565b5f546001600160a01b031633036101b7576001600160a01b0316801561046b576001600160601b0360a01b60015416176001555f80f35b63e6c4247b60e01b5f5260045ffd5b34610167576020366003190112610167576001600160a01b0361049b610c7c565b165f526004602052602060405f2054604051908152f35b34610167576040366003190112610167576104cb610c7c565b5f5460243591906001600160a01b031633036101b75760c882116103775760207fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11799160018060a01b031692835f52600482528060405f2055604051908152a2005b3461016757602036600319011261016757610545610c7c565b335f52600660205260ff60405f205416158061056b575b6101b7576101e9602091610dc1565b505f546001600160a01b031633141561055c565b34610167575f3660031901126101675760206040516c0c9f2c9cd04674edea400000008152f35b34610167576020366003190112610167576105bf610c7c565b6001546001600160a01b038281169116810361060257505060a06105e1610ef7565b5f8180805b6040519485526020850152604084015260608301526080820152f35b8161060e60a093610fc3565b91805f52600560205260405f2054905f52600460205260405f20549161063e8461063881846110a1565b926110e1565b916105e6565b34610167576020366003190112610167575f54600435906001600160a01b031633036101b7576107d0811161067857600255005b63165376f560e21b5f5260045ffd5b346101675760203660031901126101675760206101e96106a5610c7c565b610d86565b346101675760206101e96106bd36610ce4565b90610d44565b34610167576020366003190112610167576001600160a01b036106e4610c7c565b165f526006602052602060ff60405f2054166040519015158152f35b34610167575f366003190112610167576020600254604051908152f35b3461016757604036600319011261016757610736610c7c565b5f5460243591906001600160a01b031633036101b7576001600160a01b03165f818152600560209081526040918290208054908590558251908152908101939093524290830152907f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e011690606090a2005b34610167575f366003190112610167577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107fd5760206040515f5160206111d75f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261016757610820610c7c565b6024359067ffffffffffffffff821161016757366023830112156101675781600401359061084d82610cc8565b9161085b6040519384610c92565b8083526020830193366024838301011161016757815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610a26575b506107fd575f546001600160a01b031633036101b7576040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f91816109f2575b5061090b5784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111d75f395f51905f528692036109e05750823b156109ce575f5160206111d75f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156109b5575f80916109ab945190845af43d156109ad573d9161098f83610cc8565b9261099d6040519485610c92565b83523d5f602085013e611178565b005b606091611178565b505050346109bf57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610a1e575b81610a0e60209383610c92565b81010312610167575190866108f3565b3d9150610a01565b5f5160206111d75f395f51905f52546001600160a01b031614159050846108b3565b3461016757604036600319011261016757610a61610c7c565b6024356001600160a01b03811690819003610167575f5160206111f75f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610bf3575b6001149081610be9575b159081610be0575b50610bd15767ffffffffffffffff1981166001175f5160206111f75f395f51905f525582610ba5575b505f5160206111f75f395f51905f52549260ff8460401c1615610b96576001600160a01b0316801561046b576001600160601b0360a01b60015416176001556001600160601b0360a01b6003541617600355336001600160601b0360a01b5f5416175f556101f4600255610b4e57005b68ff000000000000000019165f5160206111f75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b631afcd79f60e31b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111f75f395f51905f525583610ade565b63f92ee8a960e01b5f5260045ffd5b90501585610ab5565b303b159150610aad565b849150610aa3565b34610167575f366003190112610167575f546040516001600160a01b039091168152602090f35b34610167575f3660031901126101675760206040516127108152f35b34610167575f36600319011261016757602060405160c88152f35b34610167575f366003190112610167576001546001600160a01b03168152602090f35b600435906001600160a01b038216820361016757565b90601f8019910116810190811067ffffffffffffffff821117610cb457604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111610cb457601f01601f191660200190565b6040906003190112610167576004356001600160a01b0381168103610167579060243580151581036101675790565b9181601f840112156101675782359167ffffffffffffffff8311610167576020808501948460051b01011161016757565b6001549091906001600160a01b03808416911614610d7c5781610d69610d7993610fc3565b90610d748282611033565b611119565b90565b5050610d79610ef7565b6001546001600160a01b03828116911614610db85780610da8610d7992610fc3565b90610db38282611033565b6110e1565b50610d79610ef7565b6001546001600160a01b0382811691168114610d7c57805f5260056020527f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e0116610e4960405f2054610e1b610e1486610fc3565b8096611033565b835f5260056020528460405f2055604051918291864291846040919493926060820195825260208201520152565b0390a290565b9190811015610e5f5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101675790565b6001546001600160a01b03828116911614610db85780610ea9610d7992610fc3565b90610eb48282611033565b6110a1565b519069ffffffffffffffffffff8216820361016757565b81810292918115918404141715610ee357565b634e487b7160e01b5f52601160045260245ffd5b600354604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa908115610fb8575f91610f6b575b505f811315610f5c5769021e19e0c9bab240000081029080820469021e19e0c9bab24000001490151715610ee35790565b638002905d60e01b5f5260045ffd5b905060a0813d60a011610fb0575b81610f8660a09383610c92565b8101031261016757610f9781610eb9565b50610fa9608060208301519201610eb9565b505f610f2b565b3d9150610f79565b6040513d5f823e3d90fd5b60405163adcc40cb60e01b815290602090829060049082906001600160a01b03165afa908115610fb8575f91610ff7575090565b90506020813d60201161101e575b8161101260209383610c92565b81010312610167575190565b3d9150611005565b91908203918211610ee357565b6001600160a01b03165f9081526005602052604090205490811561109d5761107661271091838082115f1461108d5761106b91611026565b925b60025490610ed0565b041061107e57565b63a8eb64ed60e01b5f5260045ffd5b9061109791611026565b9261106d565b5050565b6001600160a01b03165f9081526004602052604090205480156110dd5761271001908161271011610ee357612710916110d991610ed0565b0490565b5090565b6001600160a01b03165f9081526004602052604090205480156110dd5761271003906127108211610ee357612710916110d991610ed0565b6001600160a01b03165f908152600460205260409020549091811561117357156111585761271001908161271011610ee357612710916110d991610ed0565b61271003906127108211610ee357612710916110d991610ed0565b505090565b9061119c575080511561118d57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806111cd575b6111ad575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156111a556fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122013c1c4626c36d74a561bcc161c48da5a709c54d2e1d6ba6a3ee8aa86179f195064736f6c634300081e0033","sourceMap":"523:10977:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;-1:-1:-1;;;;;523:10977:17;;:::i;:::-;;;;1467:44;523:10977;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;2926:53;523:10977;;-1:-1:-1;;;;;;523:10977:17;-1:-1:-1;;;;;523:10977:17;;;;;;;;;;;1860:41;1890:11;;;523:10977;1890:11;523:10977;;1890:11;523:10977;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;523:10977;3452:29;523:10977;;;;;;;;;;;3408:8;523:10977;;;;;;;;;;;;;;;;;;;;;;;;;3452:29;523:10977;;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;4613:43;;;523:10977;;;4706:18;;;;;;523:10977;4726:3;1071;4749:21;;;;;:::i;:::-;523:10977;4749:47;4745:75;;4866:21;;523:10977;4866:21;;;;:::i;:::-;523:10977;;;;;;4852:10;;;;;;:::i;:::-;;:::i;:::-;523:10977;;;;;;;;;;4919:10;;;;;;:::i;:::-;4906:47;523:10977;4931:21;;;;;:::i;:::-;523:10977;;;;;;;;;;;;;4906:47;;523:10977;4691:13;;4745:75;4162:15;;;523:10977;4805:15;523:10977;;4805:15;523:10977;;;-1:-1:-1;;;523:10977:17;;;;;;;;;;;;-1:-1:-1;;;523:10977:17;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;523:10977:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;-1:-1:-1;;;;;523:10977:17;2647:26;;2643:55;;-1:-1:-1;;;;;523:10977:17;;2708:26;523:10977;;;2708:26;523:10977;;;;2643:55;2272:16;;;523:10977;2682:16;523:10977;;2682:16;523:10977;;;;;;-1:-1:-1;;523:10977:17;;;;-1:-1:-1;;;;;523:10977:17;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;1071:3;4109:44;;4105:72;;523:10977;4248:40;523:10977;;;;;;;;;;;;;;;;;;;;;;;;4248:40;523:10977;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;1975:10;523:10977;;1966:8;523:10977;;;;;;;;1965:21;:42;;;523:10977;1961:66;;5121:547;523:10977;5121:547;;:::i;1965:42::-;-1:-1:-1;523:10977:17;;-1:-1:-1;;;;;523:10977:17;1975:10;1990:17;;1965:42;;523:10977;;;;;;-1:-1:-1;;523:10977:17;;;;;;;949:8;523:10977;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;-1:-1:-1;;;;;523:10977:17;;;;;9864:21;;;;9921:15;;523:10977;9921:15;;:::i;:::-;523:10977;9988:23;;;9860:544;523:10977;;;;;;;;;;;;;;;;;;;;;;9860:544;10149:20;;523:10977;10149:20;;:::i;:::-;523:10977;;;;10197:9;523:10977;;;;;;;;;;;;;;;;10287:40;10352:41;10287:40;;;;;:::i;:::-;10352:41;;:::i;:::-;9860:544;;;523:10977;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;3731:4;3710:25;;3706:56;;3785:38;523:10977;;3706:56;3744:18;;;523:10977;3744:18;523:10977;;3744:18;523:10977;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;523:10977:17;;;;-1:-1:-1;;;;;523:10977:17;;:::i;:::-;;;;1548:40;523:10977;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;1166:32;523:10977;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;-1:-1:-1;;;;;523:10977:17;;;;;5915:9;523:10977;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:15;523:10977;;;;;5983:54;;523:10977;;5983:54;523:10977;;;;;;;-1:-1:-1;;523:10977:17;;;;5090:6:47;-1:-1:-1;;;;;523:10977:17;5081:4:47;5073:23;5069:145;;523:10977:17;;;-1:-1:-1;;;;;;;;;;;523:10977:17;;;5069:145:47;4844:29;;;523:10977:17;5174:29:47;523:10977:17;;5174:29:47;523:10977:17;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4667:6:47;523:10977:17;4658:4:47;4650:23;;;:120;;;;523:10977:17;4633:251:47;;;523:10977:17;;-1:-1:-1;;;;;523:10977:17;1864:10;:17;1860:41;;523:10977;;-1:-1:-1;;;6131:52:47;;-1:-1:-1;;;;;523:10977:17;;;;;;;;;6131:52:47;;523:10977:17;;6131:52:47;;;523:10977:17;-1:-1:-1;6127:437:47;;1805:47:60;;;;523:10977:17;6493:60:47;523:10977:17;;;;6493:60:47;6127:437;6225:40;-1:-1:-1;;;;;;;;;;;6225:40:47;;;6221:120;;1748:29:60;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;523:10977:17;;-1:-1:-1;;;;;;523:10977:17;;;;;2407:36:60;-1:-1:-1;;2407:36:60;523:10977:17;;2458:15:60;:11;;523:10977:17;4065:25:67;;4107:55;4065:25;;;;;;523:10977:17;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:67;:::i;:::-;523:10977:17;;;;4107:55:67;:::i;2454:148:60:-;6163:9;;;;6159:70;;523:10977:17;6159:70:60;6199:19;;;523:10977:17;6199:19:60;523:10977:17;;6199:19:60;1744:119;1805:47;;;523:10977:17;1805:47:60;523:10977:17;;;;1805:47:60;6221:120:47;6292:34;;;523:10977:17;6292:34:47;523:10977:17;;;;6292:34:47;6131:52;;;;523:10977:17;6131:52:47;;523:10977:17;6131:52:47;;;;;;523:10977:17;6131:52:47;;;:::i;:::-;;;523:10977:17;;;;;6131:52:47;;;;;;;-1:-1:-1;6131:52:47;;4650:120;-1:-1:-1;;;;;;;;;;;523:10977:17;-1:-1:-1;;;;;523:10977:17;4728:42:47;;;-1:-1:-1;4650:120:47;;;523:10977:17;;;;;;-1:-1:-1;;523:10977:17;;;;;;:::i;:::-;;;-1:-1:-1;;;;;523:10977:17;;;;;;;;-1:-1:-1;;;;;;;;;;;523:10977:17;;;;;;;4301:16:46;523:10977:17;;;;4724:16:46;;:34;;;;523:10977:17;4803:1:46;4788:16;:50;;;;523:10977:17;4853:13:46;:30;;;;523:10977:17;4849:91:46;;;-1:-1:-1;;523:10977:17;;4803:1:46;523:10977:17;-1:-1:-1;;;;;;;;;;;523:10977:17;;4977:67:46;;523:10977:17;;-1:-1:-1;;;;;;;;;;;523:10977:17;;;;;;;7148:18:46;7144:73;;-1:-1:-1;;;;;523:10977:17;2237:26;;2233:55;;-1:-1:-1;;;;;523:10977:17;;4803:1:46;523:10977:17;;;4803:1:46;523:10977:17;-1:-1:-1;;;;;523:10977:17;;2334:53;523:10977;;;2334:53;523:10977;2403:10;-1:-1:-1;;;;;523:10977:17;;;;;;;;2443:3;2423:23;523:10977;5064:101:46;;523:10977:17;5064:101:46;523:10977:17;;;-1:-1:-1;;;;;;;;;;;523:10977:17;5140:14:46;523:10977:17;;;4803:1:46;523:10977:17;;5140:14:46;523:10977:17;7144:73:46;7189:17;;;523:10977:17;7189:17:46;523:10977:17;;7189:17:46;4977:67;-1:-1:-1;;523:10977:17;;;-1:-1:-1;;;;;;;;;;;523:10977:17;4977:67:46;;;4849:91;4906:23;;;523:10977:17;4906:23:46;523:10977:17;;4906:23:46;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:46;;4724:34;;;-1:-1:-1;4724:34:46;;523:10977:17;;;;;;-1:-1:-1;;523:10977:17;;;;;;;;-1:-1:-1;;;;;523:10977:17;;;;;;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;;1010:5;523:10977;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;;1071:3;523:10977;;;;;;;;;-1:-1:-1;;523:10977:17;;;;;;-1:-1:-1;;;;;523:10977:17;;;;;;;;;;-1:-1:-1;;;;;523:10977:17;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;523:10977:17;;;;;-1:-1:-1;523:10977:17;;;;;;;;;-1:-1:-1;;523:10977:17;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;523:10977:17;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6867:411::-;523:10977;;6867:411;;;-1:-1:-1;;;;;523:10977:17;;;;;6963:21;6959:74;;7071:20;;7229:42;7071:20;;:::i;:::-;7169:9;;;;;:::i;:::-;7229:42;:::i;:::-;6867:411;:::o;6959:74::-;7007:15;;;;:::i;10943:378::-;523:10977;;-1:-1:-1;;;;;523:10977:17;;;;;11026:21;11022:139;;11190:20;;11276:38;11190:20;;:::i;:::-;11249:9;;;;;:::i;:::-;11276:38;:::i;11022:139::-;11135:15;;;:::i;5121:547::-;523:10977;;-1:-1:-1;;;;;523:10977:17;;;;;5210:21;;5206:74;;523:10977;-1:-1:-1;523:10977:17;5317:9;523:10977;;5571:56;;523:10977;-1:-1:-1;523:10977:17;;5461:8;5363:20;;;:::i;:::-;5461:8;;;:::i;:::-;523:10977;-1:-1:-1;523:10977:17;5317:9;523:10977;;;;-1:-1:-1;523:10977:17;;;;5611:15;;;;;5571:56;;523:10977;;;;;;;;;;;;;;;;;;5571:56;;;;5121:547;:::o;523:10977::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;523:10977:17;;;;;;;:::o;10488:377::-;523:10977;;-1:-1:-1;;;;;523:10977:17;;;;;10571:21;10567:139;;10735:20;;10821:37;10735:20;;:::i;:::-;10794:9;;;;;:::i;:::-;10821:37;:::i;523:10977::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7625:426;7881:13;523:10977;;;-1:-1:-1;;;7881:31:17;;523:10977;7881:31;;523:10977;;7881:31;;523:10977;;-1:-1:-1;;;;;523:10977:17;7881:31;;;;;;;-1:-1:-1;7881:31:17;;;7625:426;7935:10;-1:-1:-1;7935:10:17;;;7931:46;;8020:4;523:10977;;;;;;8020:4;523:10977;;;;;;;7625:426;:::o;7931:46::-;7954:23;;;-1:-1:-1;7954:23:17;7881:31;-1:-1:-1;7954:23:17;7881:31;;;;;;;;;;;;;;;;;:::i;:::-;;;523:10977;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;7881:31;;;;;;-1:-1:-1;7881:31:17;;;523:10977;;;-1:-1:-1;523:10977:17;;;;;7356:124;523:10977;;-1:-1:-1;;;7442:31:17;;523:10977;7442:31;;523:10977;;7442:31;;523:10977;;-1:-1:-1;;;;;523:10977:17;7442:31;;;;;;;-1:-1:-1;7442:31:17;;;7435:38;7356:124;:::o;7442:31::-;;;;;;;;;;;;;;;;;:::i;:::-;;;523:10977;;;;;7356:124;:::o;7442:31::-;;;-1:-1:-1;7442:31:17;;523:10977;;;;;;;;;;:::o;9043:539::-;-1:-1:-1;;;;;523:10977:17;-1:-1:-1;523:10977:17;;;9150:9;523:10977;;;;;;;9235:13;;9231:50;;9452:28;1010:5;9358:66;:20;;;;:66;:20;;;9381;;;:::i;:::-;9358:66;;9463:17;523:10977;9452:28;;:::i;:::-;523:10977;-1:-1:-1;9522:53:17;;9043:539::o;9522:53::-;9554:21;;;-1:-1:-1;9554:21:17;;-1:-1:-1;9554:21:17;9358:66;9404:20;;;;:::i;:::-;9358:66;;;9231:50;9264:7;;:::o;8276:683::-;-1:-1:-1;;;;;523:10977:17;;;;;8438:17;523:10977;;;;;;8549:11;;8545:59;;1010:5;523:10977;;;1010:5;523:10977;;;1010:5;8714:44;;;;:::i;:::-;523:10977;8276:683;:::o;8545:59::-;8576:17;;:::o;8276:683::-;-1:-1:-1;;;;;523:10977:17;;;;;8438:17;523:10977;;;;;;8549:11;;8545:59;;1010:5;523:10977;;1010:5;523:10977;;;;1010:5;8875:44;;;;:::i;8276:683::-;-1:-1:-1;;;;;523:10977:17;;;;;8438:17;523:10977;;;;;;8276:683;;8549:11;;8545:59;;8622:331;;;1010:5;523:10977;;;1010:5;523:10977;;;1010:5;8714:44;;;;:::i;8622:331::-;1010:5;523:10977;;1010:5;523:10977;;;;1010:5;8875:44;;;;:::i;8545:59::-;8576:17;;;:::o;4437:582:67:-;;4609:8;;-1:-1:-1;523:10977:17;;5690:21:67;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;523:10977:17;;4857:22:67;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:67;4933:24;;;-1:-1:-1;;;;;523:10977:17;;;;4933:24:67;523:10977:17;;;4933:24:67;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"50940":[{"start":1976,"length":32},{"start":2184,"length":32}]}},"methodIdentifiers":{"BASIS_POINTS_DIVISOR()":"126082cf","MAX_SPREAD_BASIS_POINTS()":"0957aed9","PRICE_PRECISION()":"95082d25","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","forceUpdatePrice(address,uint256)":"5d42fb6b","getMaxPrice(address)":"e124e6d2","getMinPrice(address)":"81a612d6","getPrice(address,bool)":"76d69760","getPriceInfo(address)":"8edbf436","gov()":"12d43a51","initialize(address,address)":"485cc955","isKeeper(address)":"6ba42aaa","lastPrice(address)":"f5a6ba2e","maxPriceChangeBps()":"697cd71a","proxiableUUID()":"52d1902d","setKeeper(address,bool)":"d1b9e853","setMaxPriceChangeBps(uint256)":"83daeb47","setSpreadBasisPoints(address,uint256)":"9b889380","setSpreadBasisPointsForMultiple(address[],uint256[])":"c9e0c106","setUSDCAddress(address)":"aaf5bfc3","setUSDCPriceFeed(address)":"ed0df72b","spreadBasisPoints(address)":"a27ea386","updatePrice(address)":"96e85ced","upgradeToAndCall(address,bytes)":"4f1ef286","usdcAddress()":"02d45457"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Forbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidChainlinkPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxChangeTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PriceChangeTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpreadTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"keeper\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"name\":\"KeeperSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"PriceUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"spreadBps\",\"type\":\"uint256\"}],\"name\":\"SpreadUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASIS_POINTS_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SPREAD_BASIS_POINTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRICE_PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"forceUpdatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getMaxPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getMinPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_maximise\",\"type\":\"bool\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getPriceInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cachedPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"spread\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gov\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_usdcAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_usdcPriceFeed\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isKeeper\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPriceChangeBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_keeper\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"setKeeper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxPriceChangeBps\",\"type\":\"uint256\"}],\"name\":\"setMaxPriceChangeBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_spreadBasisPoints\",\"type\":\"uint256\"}],\"name\":\"setSpreadBasisPoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_spreadBasisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setSpreadBasisPointsForMultiple\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_usdcAddress\",\"type\":\"address\"}],\"name\":\"setUSDCAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_usdcPriceFeed\",\"type\":\"address\"}],\"name\":\"setUSDCPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"spreadBasisPoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"updatePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"usdcAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"UUPS\\u53ef\\u5347\\u7ea7\\u5408\\u7ea6\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"forceUpdatePrice(address,uint256)\":{\"params\":{\"_price\":\"\\u65b0\\u4ef7\\u683c\",\"_token\":\"\\u4ee3\\u5e01\\u5730\\u5740\"}},\"getPrice(address,bool)\":{\"params\":{\"_maximise\":\"true=\\u6700\\u5927\\u4ef7\\u683c\\uff08\\u4e0a\\u6d6e\\u4ef7\\u5dee\\uff0c\\u5bf9\\u534f\\u8bae\\u6709\\u5229\\uff09, false=\\u6700\\u5c0f\\u4ef7\\u683c\\uff08\\u4e0b\\u538b\\u4ef7\\u5dee\\uff0c\\u5bf9\\u534f\\u8bae\\u6709\\u5229\\uff09\",\"_token\":\"\\u4ee3\\u5e01\\u5730\\u5740\"},\"returns\":{\"_0\":\"\\u4ef7\\u683c\\uff0830\\u4f4d\\u7cbe\\u5ea6\\uff09 \\u4f7f\\u7528\\u573a\\u666f\\uff1a - \\u6dfb\\u52a0\\u6d41\\u52a8\\u6027\\u65f6AUM\\u8ba1\\u7b97\\uff1a_maximise=true\\uff08\\u9ad8\\u4f30AUM\\uff0c\\u7528\\u6237\\u83b7\\u5f97\\u8f83\\u5c11LP\\uff09 - \\u79fb\\u9664\\u6d41\\u52a8\\u6027\\u65f6AUM\\u8ba1\\u7b97\\uff1a_maximise=false\\uff08\\u4f4e\\u4f30AUM\\uff0c\\u7528\\u6237\\u83b7\\u5f97\\u8f83\\u5c11\\u4ee3\\u5e01\\uff09 - buyUSDY\\u65f6\\uff08\\u7528\\u6237\\u5356\\u4ee3\\u5e01\\uff09\\uff1a_maximise=false\\uff08\\u4f4e\\u4f30\\u7528\\u6237\\u4ee3\\u5e01\\u4ef7\\u503c\\uff09 - sellUSDY\\u65f6\\uff08\\u7528\\u6237\\u4e70\\u4ee3\\u5e01\\uff09\\uff1a_maximise=true\\uff08\\u9ad8\\u4f30\\u9700\\u652f\\u4ed8\\u7684\\u4ee3\\u5e01\\u4ef7\\u503c\\uff09 - swap\\u65f6tokenIn\\uff1a_maximise=false\\uff08\\u4f4e\\u4f30\\u8f93\\u5165\\uff09 - swap\\u65f6tokenOut\\uff1a_maximise=true\\uff08\\u9ad8\\u4f30\\u8f93\\u51fa\\uff09\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setKeeper(address,bool)\":{\"params\":{\"_isActive\":\"\\u662f\\u5426\\u6fc0\\u6d3b\",\"_keeper\":\"keeper\\u5730\\u5740\"}},\"setMaxPriceChangeBps(uint256)\":{\"params\":{\"_maxPriceChangeBps\":\"\\u6700\\u5927\\u53d8\\u52a8\\uff08\\u57fa\\u70b9\\uff09\"}},\"setSpreadBasisPoints(address,uint256)\":{\"params\":{\"_spreadBasisPoints\":\"\\u4ef7\\u5dee\\uff08\\u57fa\\u70b9\\uff09\\u4f8b\\u5982\\uff1a10 = 0.1%, 100 = 1%\",\"_token\":\"\\u4ee3\\u5e01\\u5730\\u5740\"}},\"setSpreadBasisPointsForMultiple(address[],uint256[])\":{\"params\":{\"_spreadBasisPoints\":\"\\u4ef7\\u5dee\\u6570\\u7ec4\",\"_tokens\":\"\\u4ee3\\u5e01\\u5730\\u5740\\u6570\\u7ec4\"}},\"setUSDCAddress(address)\":{\"params\":{\"_usdcAddress\":\"USDC\\u5730\\u5740\"}},\"setUSDCPriceFeed(address)\":{\"params\":{\"_usdcPriceFeed\":\"USDC\\u4ef7\\u683cFeed\\u5730\\u5740\"}},\"updatePrice(address)\":{\"params\":{\"_token\":\"\\u4ee3\\u5e01\\u5730\\u5740\"},\"returns\":{\"_0\":\"\\u66f4\\u65b0\\u540e\\u7684\\u4ef7\\u683c\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"\\u9884\\u7559\\u5b58\\u50a8\\u7a7a\\u95f4\\uff0c\\u7528\\u4e8e\\u672a\\u6765\\u5347\\u7ea7\\u65f6\\u6dfb\\u52a0\\u65b0\\u7684\\u72b6\\u6001\\u53d8\\u91cf 50\\u4e2aslot = 50 * 32 bytes = 1600 bytes\"}},\"title\":\"YTPriceFeed\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"forceUpdatePrice(address,uint256)\":{\"notice\":\"\\u5f3a\\u5236\\u66f4\\u65b0\\u4ef7\\u683c\\uff08\\u7d27\\u6025\\u60c5\\u51b5\\uff09\"},\"getMaxPrice(address)\":{\"notice\":\"\\u83b7\\u53d6\\u6700\\u5927\\u4ef7\\u683c\\uff08\\u4e0a\\u6d6e\\u4ef7\\u5dee\\uff09\"},\"getMinPrice(address)\":{\"notice\":\"\\u83b7\\u53d6\\u6700\\u5c0f\\u4ef7\\u683c\\uff08\\u4e0b\\u538b\\u4ef7\\u5dee\\uff09\"},\"getPrice(address,bool)\":{\"notice\":\"\\u83b7\\u53d6YT\\u4ee3\\u5e01\\u4ef7\\u683c\\uff08\\u5e26\\u6ce2\\u52a8\\u4fdd\\u62a4\\u548c\\u4ef7\\u5dee\\uff09\"},\"getPriceInfo(address)\":{\"notice\":\"\\u83b7\\u53d6\\u4ef7\\u683c\\u8be6\\u7ec6\\u4fe1\\u606f\"},\"initialize(address,address)\":{\"notice\":\"\\u521d\\u59cb\\u5316\\u5408\\u7ea6\"},\"setKeeper(address,bool)\":{\"notice\":\"\\u8bbe\\u7f6ekeeper\\u6743\\u9650\"},\"setMaxPriceChangeBps(uint256)\":{\"notice\":\"\\u8bbe\\u7f6e\\u6700\\u5927\\u4ef7\\u683c\\u53d8\\u52a8\\u767e\\u5206\\u6bd4\"},\"setSpreadBasisPoints(address,uint256)\":{\"notice\":\"\\u8bbe\\u7f6e\\u4ee3\\u5e01\\u4ef7\\u5dee\"},\"setSpreadBasisPointsForMultiple(address[],uint256[])\":{\"notice\":\"\\u6279\\u91cf\\u8bbe\\u7f6e\\u4ee3\\u5e01\\u4ef7\\u5dee\"},\"setUSDCAddress(address)\":{\"notice\":\"\\u8bbe\\u7f6eUSDC\\u5730\\u5740\"},\"setUSDCPriceFeed(address)\":{\"notice\":\"\\u8bbe\\u7f6eUSDC\\u4ef7\\u683cFeed\"},\"updatePrice(address)\":{\"notice\":\"\\u66f4\\u65b0\\u5e76\\u7f13\\u5b58\\u4ee3\\u5e01\\u4ef7\\u683c\\uff08keeper\\u8c03\\u7528\\uff09\"}},\"notice\":\"\\u4ef7\\u683c\\u8bfb\\u53d6\\u5668\\uff0c\\u76f4\\u63a5\\u4eceYT\\u5408\\u7ea6\\u8bfb\\u53d6\\u4ef7\\u683c\\u53d8\\u91cf\\uff08\\u5e26\\u4fdd\\u62a4\\u673a\\u5236\\u548c\\u4ef7\\u5dee\\uff09\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ytLp/core/YTPriceFeed.sol\":\"YTPriceFeed\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@arbitrum/=node_modules/@arbitrum/\",\":@chainlink/=node_modules/@chainlink/\",\":@ensdomains/=node_modules/@ensdomains/\",\":@eth-optimism/=node_modules/@chainlink/contracts/node_modules/@eth-optimism/\",\":@offchainlabs/=node_modules/@offchainlabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@scroll-tech/=node_modules/@scroll-tech/\",\":@zksync/=node_modules/@zksync/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=node_modules/solady/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IYTAssetVault.sol\":{\"keccak256\":\"0xb0a83f0d960d0739bc31898eb3e04d817984a708c53c8b0eaa38c10cf79ce503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2036d1b7de81fb909e5af2842d97e5a5a55a9b43f1023ec3642c521c592d0f6e\",\"dweb:/ipfs/Qma3adh7SavnDX84zoyizeSQ7bS1NeihWCcnzqEw4rT9nE\"]},\"contracts/ytLp/core/YTPriceFeed.sol\":{\"keccak256\":\"0x6218b1d61b40144a6efa2bb0e5caaabddc225e0f8306e28c9c74615eb440a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eed1df07a6c489f6bb362bc7fa627be066d2eb5f87052c9abb5b90783baa2980\",\"dweb:/ipfs/QmTPe1DHZLmTX6SxvjmGGxRyYGEixFBRh8BuoFAmYYrnBw\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"Forbidden"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidChainlinkPrice"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MaxChangeTooHigh"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"PriceChangeTooLarge"},{"inputs":[],"type":"error","name":"SpreadTooHigh"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"keeper","type":"address","indexed":true},{"internalType":"bool","name":"isActive","type":"bool","indexed":false}],"type":"event","name":"KeeperSet","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"oldPrice","type":"uint256","indexed":false},{"internalType":"uint256","name":"newPrice","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"PriceUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"spreadBps","type":"uint256","indexed":false}],"type":"event","name":"SpreadUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_SPREAD_BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRICE_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_price","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forceUpdatePrice"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"getMaxPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"getMinPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"bool","name":"_maximise","type":"bool"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"getPriceInfo","outputs":[{"internalType":"uint256","name":"currentPrice","type":"uint256"},{"internalType":"uint256","name":"cachedPrice","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"},{"internalType":"uint256","name":"minPrice","type":"uint256"},{"internalType":"uint256","name":"spread","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_usdcAddress","type":"address"},{"internalType":"address","name":"_usdcPriceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isKeeper","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"lastPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxPriceChangeBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_keeper","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setKeeper"},{"inputs":[{"internalType":"uint256","name":"_maxPriceChangeBps","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxPriceChangeBps"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_spreadBasisPoints","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSpreadBasisPoints"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_spreadBasisPoints","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setSpreadBasisPointsForMultiple"},{"inputs":[{"internalType":"address","name":"_usdcAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setUSDCAddress"},{"inputs":[{"internalType":"address","name":"_usdcPriceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setUSDCPriceFeed"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"spreadBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"usdcAddress","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"forceUpdatePrice(address,uint256)":{"params":{"_price":"新价格","_token":"代币地址"}},"getPrice(address,bool)":{"params":{"_maximise":"true=最大价格(上浮价差,对协议有利), false=最小价格(下压价差,对协议有利)","_token":"代币地址"},"returns":{"_0":"价格(30位精度) 使用场景: - 添加流动性时AUM计算:_maximise=true(高估AUM,用户获得较少LP) - 移除流动性时AUM计算:_maximise=false(低估AUM,用户获得较少代币) - buyUSDY时(用户卖代币):_maximise=false(低估用户代币价值) - sellUSDY时(用户买代币):_maximise=true(高估需支付的代币价值) - swap时tokenIn:_maximise=false(低估输入) - swap时tokenOut:_maximise=true(高估输出)"}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setKeeper(address,bool)":{"params":{"_isActive":"是否激活","_keeper":"keeper地址"}},"setMaxPriceChangeBps(uint256)":{"params":{"_maxPriceChangeBps":"最大变动(基点)"}},"setSpreadBasisPoints(address,uint256)":{"params":{"_spreadBasisPoints":"价差(基点)例如:10 = 0.1%, 100 = 1%","_token":"代币地址"}},"setSpreadBasisPointsForMultiple(address[],uint256[])":{"params":{"_spreadBasisPoints":"价差数组","_tokens":"代币地址数组"}},"setUSDCAddress(address)":{"params":{"_usdcAddress":"USDC地址"}},"setUSDCPriceFeed(address)":{"params":{"_usdcPriceFeed":"USDC价格Feed地址"}},"updatePrice(address)":{"params":{"_token":"代币地址"},"returns":{"_0":"更新后的价格"}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"forceUpdatePrice(address,uint256)":{"notice":"强制更新价格(紧急情况)"},"getMaxPrice(address)":{"notice":"获取最大价格(上浮价差)"},"getMinPrice(address)":{"notice":"获取最小价格(下压价差)"},"getPrice(address,bool)":{"notice":"获取YT代币价格(带波动保护和价差)"},"getPriceInfo(address)":{"notice":"获取价格详细信息"},"initialize(address,address)":{"notice":"初始化合约"},"setKeeper(address,bool)":{"notice":"设置keeper权限"},"setMaxPriceChangeBps(uint256)":{"notice":"设置最大价格变动百分比"},"setSpreadBasisPoints(address,uint256)":{"notice":"设置代币价差"},"setSpreadBasisPointsForMultiple(address[],uint256[])":{"notice":"批量设置代币价差"},"setUSDCAddress(address)":{"notice":"设置USDC地址"},"setUSDCPriceFeed(address)":{"notice":"设置USDC价格Feed"},"updatePrice(address)":{"notice":"更新并缓存代币价格(keeper调用)"}},"version":1}},"settings":{"remappings":["@arbitrum/=node_modules/@arbitrum/","@chainlink/=node_modules/@chainlink/","@ensdomains/=node_modules/@ensdomains/","@eth-optimism/=node_modules/@chainlink/contracts/node_modules/@eth-optimism/","@offchainlabs/=node_modules/@offchainlabs/","@openzeppelin/=node_modules/@openzeppelin/","@scroll-tech/=node_modules/@scroll-tech/","@zksync/=node_modules/@zksync/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ytLp/core/YTPriceFeed.sol":"YTPriceFeed"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IYTAssetVault.sol":{"keccak256":"0xb0a83f0d960d0739bc31898eb3e04d817984a708c53c8b0eaa38c10cf79ce503","urls":["bzz-raw://2036d1b7de81fb909e5af2842d97e5a5a55a9b43f1023ec3642c521c592d0f6e","dweb:/ipfs/Qma3adh7SavnDX84zoyizeSQ7bS1NeihWCcnzqEw4rT9nE"],"license":"MIT"},"contracts/ytLp/core/YTPriceFeed.sol":{"keccak256":"0x6218b1d61b40144a6efa2bb0e5caaabddc225e0f8306e28c9c74615eb440a359","urls":["bzz-raw://eed1df07a6c489f6bb362bc7fa627be066d2eb5f87052c9abb5b90783baa2980","dweb:/ipfs/QmTPe1DHZLmTX6SxvjmGGxRyYGEixFBRh8BuoFAmYYrnBw"],"license":"MIT"},"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63","urls":["bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec","dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"id":17}