1 line
66 KiB
JSON
1 line
66 KiB
JSON
{"abi":[{"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":"_wusdAddress","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":"setWusdPriceSource","inputs":[{"name":"_wusdPriceSource","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":"wusdAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wusdPriceSource","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":"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":"0x60a080604052346029573060805261117d908161002e82396080518181816108d801526109a80152f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081630957aed914610c1f57508063126082cf14610c0357806312d43a5114610bdc578063229f7df714610b905780634d34349614610b685780634f1ef2861461092c57806352d1902d146108c65780635d42fb6b1461083d578063697cd71a146108205780636ba42aaa146107e357806376d69760146107ca57806381a612d6146107a757806383daeb47146107645780638edbf436146106c657806395082d251461069f57806396e85ced1461064c5780639b889380146105d2578063a27ea3861461059a578063ad3cb1cc1461053c578063c4d66de814610399578063c62db20614610371578063c9e0c10614610219578063d1b9e85314610196578063e124e6d21461016b5763f5a6ba2e1461012f575f80fd5b34610167576020366003190112610167576001600160a01b03610150610c38565b165f526005602052602060405f2054604051908152f35b5f80fd5b3461016757602036600319011261016757602061018e610189610c38565b610e43565b604051908152f35b34610167576101a436610ca0565b5f549091906001600160a01b0316330361020a5760207f8dd62d4e1f60b96148552898e743aa2b571686baa26f4f1b647565dc3996c1a79160018060a01b031692835f526006825260405f209015159060ff1981541660ff8316179055604051908152a2005b631dd2188d60e31b5f5260045ffd5b346101675760403660031901126101675760043567ffffffffffffffff81116101675761024a903690600401610ccf565b60243567ffffffffffffffff81116101675761026a903690600401610ccf565b5f549092906001600160a01b0316330361020a5782810361033a575f5b81811061029057005b60c861029d828686610e0b565b351161032b57806102b16001928686610e0b565b35828060a01b036102cb6102c684878b610e0b565b610e2f565b165f52600460205260405f20556102e66102c6828589610e0b565b7fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11796020610314848989610e0b565b3592604051938452858060a01b031692a201610287565b639821c0c960e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b34610167575f366003190112610167576001546040516001600160a01b039091168152602090f35b34610167576020366003190112610167576103b2610c38565b5f5160206111285f395f51905f525460ff8160401c16159067ffffffffffffffff811680159081610534575b600114908161052a575b159081610521575b506105125767ffffffffffffffff1981166001175f5160206111285f395f51905f5255816104e6575b505f5160206111285f395f51905f52549160ff8360401c16156104d7576001600160a01b031680156104c8576bffffffffffffffffffffffff60a01b6001541617600155336bffffffffffffffffffffffff60a01b5f5416175f556101f460035561048057005b68ff000000000000000019165f5160206111285f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63e6c4247b60e01b5f5260045ffd5b631afcd79f60e31b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111285f395f51905f525582610419565b63f92ee8a960e01b5f5260045ffd5b905015846103f0565b303b1591506103e8565b8391506103de565b34610167575f36600319011261016757604080519061055b8183610c4e565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610167576020366003190112610167576001600160a01b036105bb610c38565b165f526004602052602060405f2054604051908152f35b34610167576040366003190112610167576105eb610c38565b5f5460243591906001600160a01b0316330361020a5760c8821161032b5760207fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11799160018060a01b031692835f52600482528060405f2055604051908152a2005b3461016757602036600319011261016757610665610c38565b335f52600660205260ff60405f205416158061068b575b61020a5761018e602091610d7d565b505f546001600160a01b031633141561067c565b34610167575f3660031901126101675760206040516c0c9f2c9cd04674edea400000008152f35b34610167576020366003190112610167576106df610c38565b6001546001600160a01b038281169116810361072257505060a0610701610e75565b5f8180805b6040519485526020850152604084015260608301526080820152f35b8161072e60a093610efc565b91805f52600560205260405f2054905f52600460205260405f20549161075e846107588184610fd2565b92611012565b91610706565b34610167576020366003190112610167575f54600435906001600160a01b0316330361020a576107d0811161079857600355005b63165376f560e21b5f5260045ffd5b3461016757602036600319011261016757602061018e6107c5610c38565b610d42565b3461016757602061018e6107dd36610ca0565b90610d00565b34610167576020366003190112610167576001600160a01b03610804610c38565b165f526006602052602060ff60405f2054166040519015158152f35b34610167575f366003190112610167576020600354604051908152f35b3461016757604036600319011261016757610856610c38565b5f5460243591906001600160a01b0316330361020a576001600160a01b03165f818152600560209081526040918290208054908590558251908152908101939093524290830152907f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e011690606090a2005b34610167575f366003190112610167577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361091d5760206040515f5160206111085f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261016757610940610c38565b6024359067ffffffffffffffff821161016757366023830112156101675781600401359061096d82610c84565b9161097b6040519384610c4e565b8083526020830193366024838301011161016757815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610b46575b5061091d575f546001600160a01b0316330361020a576040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610b12575b50610a2b5784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111085f395f51905f52869203610b005750823b15610aee575f5160206111085f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ad5575f8091610acb945190845af43d15610acd573d91610aaf83610c84565b92610abd6040519485610c4e565b83523d5f602085013e6110a9565b005b6060916110a9565b50505034610adf57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610b3e575b81610b2e60209383610c4e565b8101031261016757519086610a13565b3d9150610b21565b5f5160206111085f395f51905f52546001600160a01b031614159050846109d3565b34610167575f366003190112610167576002546040516001600160a01b039091168152602090f35b3461016757602036600319011261016757610ba9610c38565b5f546001600160a01b0316330361020a57600280546001600160a01b0319166001600160a01b0392909216919091179055005b34610167575f366003190112610167575f546040516001600160a01b039091168152602090f35b34610167575f3660031901126101675760206040516127108152f35b34610167575f366003190112610167578060c860209252f35b600435906001600160a01b038216820361016757565b90601f8019910116810190811067ffffffffffffffff821117610c7057604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111610c7057601f01601f191660200190565b6040906003190112610167576004356001600160a01b0381168103610167579060243580151581036101675790565b9181601f840112156101675782359167ffffffffffffffff8311610167576020808501948460051b01011161016757565b6001549091906001600160a01b03808416911614610d385781610d25610d3593610efc565b90610d308282610f64565b61104a565b90565b5050610d35610e75565b6001546001600160a01b03828116911614610d745780610d64610d3592610efc565b90610d6f8282610f64565b611012565b50610d35610e75565b6001546001600160a01b0382811691168114610d3857805f5260056020527f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e0116610e0560405f2054610dd7610dd086610efc565b8096610f64565b835f5260056020528460405f2055604051918291864291846040919493926060820195825260208201520152565b0390a290565b9190811015610e1b5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101675790565b6001546001600160a01b03828116911614610d745780610e65610d3592610efc565b90610e708282610f64565b610fd2565b6002546001600160a01b03168015610eea576020600491604051928380926330da7def60e11b82525afa908115610edf575f91610eb0575090565b90506020813d602011610ed7575b81610ecb60209383610c4e565b81010312610167575190565b3d9150610ebe565b6040513d5f823e3d90fd5b506c0c9f2c9cd04674edea4000000090565b60405163adcc40cb60e01b815290602090829060049082906001600160a01b03165afa908115610edf575f91610eb0575090565b91908203918211610f3d57565b634e487b7160e01b5f52601160045260245ffd5b81810292918115918404141715610f3d57565b6001600160a01b03165f90815260056020526040902054908115610fce57610fa761271091838082115f14610fbe57610f9c91610f30565b925b60035490610f51565b0410610faf57565b63a8eb64ed60e01b5f5260045ffd5b90610fc891610f30565b92610f9e565b5050565b6001600160a01b03165f90815260046020526040902054801561100e5761271001908161271011610f3d576127109161100a91610f51565b0490565b5090565b6001600160a01b03165f90815260046020526040902054801561100e5761271003906127108211610f3d576127109161100a91610f51565b6001600160a01b03165f90815260046020526040902054909181156110a457156110895761271001908161271011610f3d576127109161100a91610f51565b61271003906127108211610f3d576127109161100a91610f51565b505090565b906110cd57508051156110be57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806110fe575b6110de575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110d656fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b2368ccf8306a43956b202d3a91c108f313ad4686c92150fc148a9a7d2cba01964736f6c634300081e0033","sourceMap":"405:10263:9:-:0;;;;;;;1171:4:36;1163:13;;405:10263:9;;;;;;1163:13:36;405:10263:9;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081630957aed914610c1f57508063126082cf14610c0357806312d43a5114610bdc578063229f7df714610b905780634d34349614610b685780634f1ef2861461092c57806352d1902d146108c65780635d42fb6b1461083d578063697cd71a146108205780636ba42aaa146107e357806376d69760146107ca57806381a612d6146107a757806383daeb47146107645780638edbf436146106c657806395082d251461069f57806396e85ced1461064c5780639b889380146105d2578063a27ea3861461059a578063ad3cb1cc1461053c578063c4d66de814610399578063c62db20614610371578063c9e0c10614610219578063d1b9e85314610196578063e124e6d21461016b5763f5a6ba2e1461012f575f80fd5b34610167576020366003190112610167576001600160a01b03610150610c38565b165f526005602052602060405f2054604051908152f35b5f80fd5b3461016757602036600319011261016757602061018e610189610c38565b610e43565b604051908152f35b34610167576101a436610ca0565b5f549091906001600160a01b0316330361020a5760207f8dd62d4e1f60b96148552898e743aa2b571686baa26f4f1b647565dc3996c1a79160018060a01b031692835f526006825260405f209015159060ff1981541660ff8316179055604051908152a2005b631dd2188d60e31b5f5260045ffd5b346101675760403660031901126101675760043567ffffffffffffffff81116101675761024a903690600401610ccf565b60243567ffffffffffffffff81116101675761026a903690600401610ccf565b5f549092906001600160a01b0316330361020a5782810361033a575f5b81811061029057005b60c861029d828686610e0b565b351161032b57806102b16001928686610e0b565b35828060a01b036102cb6102c684878b610e0b565b610e2f565b165f52600460205260405f20556102e66102c6828589610e0b565b7fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11796020610314848989610e0b565b3592604051938452858060a01b031692a201610287565b639821c0c960e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b34610167575f366003190112610167576001546040516001600160a01b039091168152602090f35b34610167576020366003190112610167576103b2610c38565b5f5160206111285f395f51905f525460ff8160401c16159067ffffffffffffffff811680159081610534575b600114908161052a575b159081610521575b506105125767ffffffffffffffff1981166001175f5160206111285f395f51905f5255816104e6575b505f5160206111285f395f51905f52549160ff8360401c16156104d7576001600160a01b031680156104c8576bffffffffffffffffffffffff60a01b6001541617600155336bffffffffffffffffffffffff60a01b5f5416175f556101f460035561048057005b68ff000000000000000019165f5160206111285f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63e6c4247b60e01b5f5260045ffd5b631afcd79f60e31b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111285f395f51905f525582610419565b63f92ee8a960e01b5f5260045ffd5b905015846103f0565b303b1591506103e8565b8391506103de565b34610167575f36600319011261016757604080519061055b8183610c4e565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610167576020366003190112610167576001600160a01b036105bb610c38565b165f526004602052602060405f2054604051908152f35b34610167576040366003190112610167576105eb610c38565b5f5460243591906001600160a01b0316330361020a5760c8821161032b5760207fdc57d8716d6b33bf807c6d4f1dd2addbf67960c73ada97819316dc745dfa11799160018060a01b031692835f52600482528060405f2055604051908152a2005b3461016757602036600319011261016757610665610c38565b335f52600660205260ff60405f205416158061068b575b61020a5761018e602091610d7d565b505f546001600160a01b031633141561067c565b34610167575f3660031901126101675760206040516c0c9f2c9cd04674edea400000008152f35b34610167576020366003190112610167576106df610c38565b6001546001600160a01b038281169116810361072257505060a0610701610e75565b5f8180805b6040519485526020850152604084015260608301526080820152f35b8161072e60a093610efc565b91805f52600560205260405f2054905f52600460205260405f20549161075e846107588184610fd2565b92611012565b91610706565b34610167576020366003190112610167575f54600435906001600160a01b0316330361020a576107d0811161079857600355005b63165376f560e21b5f5260045ffd5b3461016757602036600319011261016757602061018e6107c5610c38565b610d42565b3461016757602061018e6107dd36610ca0565b90610d00565b34610167576020366003190112610167576001600160a01b03610804610c38565b165f526006602052602060ff60405f2054166040519015158152f35b34610167575f366003190112610167576020600354604051908152f35b3461016757604036600319011261016757610856610c38565b5f5460243591906001600160a01b0316330361020a576001600160a01b03165f818152600560209081526040918290208054908590558251908152908101939093524290830152907f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e011690606090a2005b34610167575f366003190112610167577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361091d5760206040515f5160206111085f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261016757610940610c38565b6024359067ffffffffffffffff821161016757366023830112156101675781600401359061096d82610c84565b9161097b6040519384610c4e565b8083526020830193366024838301011161016757815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610b46575b5061091d575f546001600160a01b0316330361020a576040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610b12575b50610a2b5784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111085f395f51905f52869203610b005750823b15610aee575f5160206111085f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ad5575f8091610acb945190845af43d15610acd573d91610aaf83610c84565b92610abd6040519485610c4e565b83523d5f602085013e6110a9565b005b6060916110a9565b50505034610adf57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610b3e575b81610b2e60209383610c4e565b8101031261016757519086610a13565b3d9150610b21565b5f5160206111085f395f51905f52546001600160a01b031614159050846109d3565b34610167575f366003190112610167576002546040516001600160a01b039091168152602090f35b3461016757602036600319011261016757610ba9610c38565b5f546001600160a01b0316330361020a57600280546001600160a01b0319166001600160a01b0392909216919091179055005b34610167575f366003190112610167575f546040516001600160a01b039091168152602090f35b34610167575f3660031901126101675760206040516127108152f35b34610167575f366003190112610167578060c860209252f35b600435906001600160a01b038216820361016757565b90601f8019910116810190811067ffffffffffffffff821117610c7057604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111610c7057601f01601f191660200190565b6040906003190112610167576004356001600160a01b0381168103610167579060243580151581036101675790565b9181601f840112156101675782359167ffffffffffffffff8311610167576020808501948460051b01011161016757565b6001549091906001600160a01b03808416911614610d385781610d25610d3593610efc565b90610d308282610f64565b61104a565b90565b5050610d35610e75565b6001546001600160a01b03828116911614610d745780610d64610d3592610efc565b90610d6f8282610f64565b611012565b50610d35610e75565b6001546001600160a01b0382811691168114610d3857805f5260056020527f8647dab5101cbe18afb171756e9753802f9d66725bf2346b079b8b1a275e0116610e0560405f2054610dd7610dd086610efc565b8096610f64565b835f5260056020528460405f2055604051918291864291846040919493926060820195825260208201520152565b0390a290565b9190811015610e1b5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101675790565b6001546001600160a01b03828116911614610d745780610e65610d3592610efc565b90610e708282610f64565b610fd2565b6002546001600160a01b03168015610eea576020600491604051928380926330da7def60e11b82525afa908115610edf575f91610eb0575090565b90506020813d602011610ed7575b81610ecb60209383610c4e565b81010312610167575190565b3d9150610ebe565b6040513d5f823e3d90fd5b506c0c9f2c9cd04674edea4000000090565b60405163adcc40cb60e01b815290602090829060049082906001600160a01b03165afa908115610edf575f91610eb0575090565b91908203918211610f3d57565b634e487b7160e01b5f52601160045260245ffd5b81810292918115918404141715610f3d57565b6001600160a01b03165f90815260056020526040902054908115610fce57610fa761271091838082115f14610fbe57610f9c91610f30565b925b60035490610f51565b0410610faf57565b63a8eb64ed60e01b5f5260045ffd5b90610fc891610f30565b92610f9e565b5050565b6001600160a01b03165f90815260046020526040902054801561100e5761271001908161271011610f3d576127109161100a91610f51565b0490565b5090565b6001600160a01b03165f90815260046020526040902054801561100e5761271003906127108211610f3d576127109161100a91610f51565b6001600160a01b03165f90815260046020526040902054909181156110a457156110895761271001908161271011610f3d576127109161100a91610f51565b61271003906127108211610f3d576127109161100a91610f51565b505090565b906110cd57508051156110be57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806110fe575b6110de575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110d656fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b2368ccf8306a43956b202d3a91c108f313ad4686c92150fc148a9a7d2cba01964736f6c634300081e0033","sourceMap":"405:10263:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;-1:-1:-1;;;;;405:10263:9;;:::i;:::-;;;;1209:44;405:10263;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;405:10263;2865:29;405:10263;;;;;;;;;;;2821:8;405:10263;;;;;;;;;;;;;;;;;;;;;;;;;2865:29;405:10263;1602:41;1632:11;;;405:10263;1632:11;405:10263;;1632:11;405:10263;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;4026:43;;;405:10263;;;4119:18;;;;;;405:10263;4139:3;806;4162:21;;;;;:::i;:::-;405:10263;4162:47;4158:75;;4279:21;;405:10263;4279:21;;;;:::i;:::-;405:10263;;;;;;4265:10;;;;;;:::i;:::-;;:::i;:::-;405:10263;;;;;;;;;;4332:10;;;;;;:::i;:::-;4319:47;405:10263;4344:21;;;;;:::i;:::-;405:10263;;;;;;;;;;;;;4319:47;;405:10263;4104:13;;4158:75;3575:15;;;405:10263;4218:15;405:10263;;4218:15;405:10263;;;-1:-1:-1;;;405:10263:9;;;;;;;;;;;;-1:-1:-1;;;405:10263:9;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;-1:-1:-1;;;;;405:10263:9;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;405:10263:9;;;;;;4301:16:35;405:10263:9;;;;4724:16:35;;:34;;;;405:10263:9;4803:1:35;4788:16;:50;;;;405:10263:9;4853:13:35;:30;;;;405:10263:9;4849:91:35;;;-1:-1:-1;;405:10263:9;;4803:1:35;405:10263:9;-1:-1:-1;;;;;;;;;;;405:10263:9;;4977:67:35;;405:10263:9;;-1:-1:-1;;;;;;;;;;;405:10263:9;;;;;;;7148:18:35;7144:73;;-1:-1:-1;;;;;405:10263:9;1955:26;;1951:55;;405:10263;;;4803:1:35;405:10263:9;;;4803:1:35;405:10263:9;2058:10;405:10263;;;;;;;;;2098:3;2078:23;405:10263;5064:101:35;;405:10263:9;5064:101:35;405:10263:9;;;-1:-1:-1;;;;;;;;;;;405:10263:9;5140:14:35;405:10263:9;;;4803:1:35;405:10263:9;;5140:14:35;405:10263:9;1951:55;1990:16;;;405:10263;1990:16;405:10263;;1990:16;7144:73:35;7189:17;;;405:10263:9;7189:17:35;405:10263:9;;7189:17:35;4977:67;-1:-1:-1;;405:10263:9;;;-1:-1:-1;;;;;;;;;;;405:10263:9;4977:67:35;;;4849:91;4906:23;;;405:10263:9;4906:23:35;405:10263:9;;4906:23:35;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:35;;4724:34;;;-1:-1:-1;4724:34:35;;405:10263:9;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;405:10263:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;-1:-1:-1;;;;;405:10263:9;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;806:3;3522:44;;3518:72;;405:10263;3661:40;405:10263;;;;;;;;;;;;;;;;;;;;;;;;3661:40;405:10263;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;1717:10;405:10263;;1708:8;405:10263;;;;;;;;1707:21;:42;;;405:10263;1703:66;;6136:517;405:10263;6136:517;;:::i;1707:42::-;-1:-1:-1;405:10263:9;;-1:-1:-1;;;;;405:10263:9;1717:10;1732:17;;1707:42;;405:10263;;;;;;-1:-1:-1;;405:10263:9;;;;;;;684:8;405:10263;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;;;-1:-1:-1;;;;;405:10263:9;;;;;9032:21;;;;9089:15;;405:10263;9089:15;;:::i;:::-;405:10263;9156:23;;;9028:544;405:10263;;;;;;;;;;;;;;;;;;;;;;9028:544;9317:20;;405:10263;9317:20;;:::i;:::-;405:10263;;;;9365:9;405:10263;;;;;;;;;;;;;;;;9455:40;9520:41;9455:40;;;;;:::i;:::-;9520:41;;:::i;:::-;9028:544;;;405:10263;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;3144:4;3123:25;;3119:56;;3198:38;405:10263;;3119:56;3157:18;;;405:10263;3157:18;405:10263;;3157:18;405:10263;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;405:10263:9;;;;-1:-1:-1;;;;;405:10263:9;;:::i;:::-;;;;1290:40;405:10263;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;990:32;405:10263;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;-1:-1:-1;;;;;405:10263:9;;;;;4630:9;405:10263;;;;;;;;;;;;;;;;;;;;;;;;;;;4736:15;405:10263;;;;;4698:54;;405:10263;;4698:54;405:10263;;;;;;;-1:-1:-1;;405:10263:9;;;;5090:6:36;-1:-1:-1;;;;;405:10263:9;5081:4:36;5073:23;5069:145;;405:10263:9;;;-1:-1:-1;;;;;;;;;;;405:10263:9;;;5069:145:36;4844:29;;;405:10263:9;5174:29:36;405:10263:9;;5174:29:36;405:10263:9;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4667:6:36;405:10263:9;4658:4:36;4650:23;;;:120;;;;405:10263:9;4633:251:36;;;405:10263:9;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;405:10263;;-1:-1:-1;;;6131:52:36;;-1:-1:-1;;;;;405:10263:9;;;;;;;;;6131:52:36;;405:10263:9;;6131:52:36;;;405:10263:9;-1:-1:-1;6127:437:36;;1805:47:47;;;;405:10263:9;6493:60:36;405:10263:9;;;;6493:60:36;6127:437;6225:40;-1:-1:-1;;;;;;;;;;;6225:40:36;;;6221:120;;1748:29:47;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;405:10263:9;;-1:-1:-1;;;;;;405:10263:9;;;;;2407:36:47;-1:-1:-1;;2407:36:47;405:10263:9;;2458:15:47;:11;;405:10263:9;4065:25:53;;4107:55;4065:25;;;;;;405:10263:9;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:53;:::i;:::-;405:10263:9;;;;4107:55:53;:::i;2454:148:47:-;6163:9;;;;6159:70;;405:10263:9;6159:70:47;6199:19;;;405:10263:9;6199:19:47;405:10263:9;;6199:19:47;1744:119;1805:47;;;405:10263:9;1805:47:47;405:10263:9;;;;1805:47:47;6221:120:36;6292:34;;;405:10263:9;6292:34:36;405:10263:9;;;;6292:34:36;6131:52;;;;405:10263:9;6131:52:36;;405:10263:9;6131:52:36;;;;;;405:10263:9;6131:52:36;;;:::i;:::-;;;405:10263:9;;;;;6131:52:36;;;;;;;-1:-1:-1;6131:52:36;;4650:120;-1:-1:-1;;;;;;;;;;;405:10263:9;-1:-1:-1;;;;;405:10263:9;4728:42:36;;;-1:-1:-1;4650:120:36;;;405:10263:9;;;;;;-1:-1:-1;;405:10263:9;;;;923:30;405:10263;;;-1:-1:-1;;;;;405:10263:9;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;:::i;:::-;;;-1:-1:-1;;;;;405:10263:9;1606:10;:17;1602:41;;2569:34;405:10263;;-1:-1:-1;;;;;;405:10263:9;-1:-1:-1;;;;;405:10263:9;;;;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;;;-1:-1:-1;;;;;405:10263:9;;;;;;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;;;745:5;405:10263;;;;;;;;;-1:-1:-1;;405:10263:9;;;;;806:3;405:10263;;;;;;;;-1:-1:-1;;;;;405:10263:9;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;405:10263:9;;;;;-1:-1:-1;405:10263:9;;;;;;;;;-1:-1:-1;;405:10263:9;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;405:10263:9;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5582:411::-;405:10263;;5582:411;;;-1:-1:-1;;;;;405:10263:9;;;;;5678:21;5674:74;;5786:20;;5944:42;5786:20;;:::i;:::-;5884:9;;;;;:::i;:::-;5944:42;:::i;:::-;5582:411;:::o;5674:74::-;5722:15;;;;:::i;10111:378::-;405:10263;;-1:-1:-1;;;;;405:10263:9;;;;;10194:21;10190:139;;10358:20;;10444:38;10358:20;;:::i;:::-;10417:9;;;;;:::i;:::-;10444:38;:::i;10190:139::-;10303:15;;;:::i;6136:517::-;405:10263;;-1:-1:-1;;;;;405:10263:9;;;;;6225:21;;6221:74;;405:10263;-1:-1:-1;405:10263:9;6332:9;405:10263;;6556:56;;405:10263;-1:-1:-1;405:10263:9;;6476:8;6378:20;;;:::i;:::-;6476:8;;;:::i;:::-;405:10263;-1:-1:-1;405:10263:9;6332:9;405:10263;;;;-1:-1:-1;405:10263:9;;;;6596:15;;;;;6556:56;;405:10263;;;;;;;;;;;;;;;;;;6556:56;;;;6136:517;:::o;405:10263::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;405:10263:9;;;;;;;:::o;9656:377::-;405:10263;;-1:-1:-1;;;;;405:10263:9;;;;;9739:21;9735:139;;9903:20;;9989:37;9903:20;;:::i;:::-;9962:9;;;;;:::i;:::-;9989:37;:::i;6994:221::-;7064:15;405:10263;-1:-1:-1;;;;;405:10263:9;7064:29;;7060:95;;7171:37;;405:10263;;;;;;;;;;7171:37;;;;;;;;;405:10263;7171:37;;;7164:44;6994:221;:::o;7171:37::-;;;;;;;;;;;;;405:10263;7171:37;;;:::i;:::-;;;405:10263;;;;;6994:221;:::o;7171:37::-;;;-1:-1:-1;7171:37:9;;;405:10263;;;;;;;;;7060:95;7109:22;684:8;7109:22;:::o;6731:119::-;405:10263;;-1:-1:-1;;;6817:26:9;;405:10263;6817:26;;405:10263;;6817:26;;405:10263;;-1:-1:-1;;;;;405:10263:9;6817:26;;;;;;;-1:-1:-1;6817:26:9;;;6810:33;6731:119;:::o;405:10263::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8211:539::-;-1:-1:-1;;;;;405:10263:9;-1:-1:-1;405:10263:9;;;8318:9;405:10263;;;;;;;8403:13;;8399:50;;8620:28;745:5;8526:66;:20;;;;:66;:20;;;8549;;;:::i;:::-;8526:66;;8631:17;405:10263;8620:28;;:::i;:::-;405:10263;-1:-1:-1;8690:53:9;;8211:539::o;8690:53::-;8722:21;;;-1:-1:-1;8722:21:9;;-1:-1:-1;8722:21:9;8526:66;8572:20;;;;:::i;:::-;8526:66;;;8399:50;8432:7;;:::o;7444:683::-;-1:-1:-1;;;;;405:10263:9;;;;;7606:17;405:10263;;;;;;7717:11;;7713:59;;745:5;405:10263;;;745:5;405:10263;;;745:5;7882:44;;;;:::i;:::-;405:10263;7444:683;:::o;7713:59::-;7744:17;;:::o;7444:683::-;-1:-1:-1;;;;;405:10263:9;;;;;7606:17;405:10263;;;;;;7717:11;;7713:59;;745:5;405:10263;;745:5;405:10263;;;;745:5;8043:44;;;;:::i;7444:683::-;-1:-1:-1;;;;;405:10263:9;;;;;7606:17;405:10263;;;;;;7444:683;;7717:11;;7713:59;;7790:331;;;745:5;405:10263;;;745:5;405:10263;;;745:5;7882:44;;;;:::i;7790:331::-;745:5;405:10263;;745:5;405:10263;;;;745:5;8043:44;;;;:::i;7713:59::-;7744:17;;;:::o;4437:582:53:-;;4609:8;;-1:-1:-1;405:10263:9;;5690:21:53;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;405:10263:9;;4857:22:53;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:53;4933:24;;;-1:-1:-1;;;;;405:10263:9;;;;4933:24:53;405:10263:9;;;4933:24:53;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46279":[{"start":2264,"length":32},{"start":2472,"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)":"c4d66de8","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","setWusdPriceSource(address)":"229f7df7","spreadBasisPoints(address)":"a27ea386","updatePrice(address)":"96e85ced","upgradeToAndCall(address,bytes)":"4f1ef286","wusdAddress()":"c62db206","wusdPriceSource()":"4d343496"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"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\":\"_wusdAddress\",\"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\":\"_wusdPriceSource\",\"type\":\"address\"}],\"name\":\"setWusdPriceSource\",\"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\":\"wusdAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wusdPriceSource\",\"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\":{\"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\"}},\"setWusdPriceSource(address)\":{\"params\":{\"_wusdPriceSource\":\"YTAssetVault\\u5408\\u7ea6\\u5730\\u5740\"}},\"updatePrice(address)\":{\"params\":{\"_token\":\"\\u4ee3\\u5e01\\u5730\\u5740\"},\"returns\":{\"_0\":\"\\u65b0\\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)\":{\"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\"},\"setWusdPriceSource(address)\":{\"notice\":\"\\u8bbe\\u7f6eWUSD\\u4ef7\\u683c\\u6765\\u6e90\\uff08YTAssetVault\\u5730\\u5740\\uff09\"},\"updatePrice(address)\":{\"notice\":\"\\u66f4\\u65b0\\u4ef7\\u683c\\u5e76\\u8fd4\\u56de\\uff08\\u7531keeper\\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\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IYTToken.sol\":{\"keccak256\":\"0x878548d078048386430ce746d410f532280526f0c7a91c4d027c98ec4a9970be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://253337575d8d268cd5ff5a10a5b794b901a697a2984fa9dc2c590513b4a402f6\",\"dweb:/ipfs/QmeBtCbpJeJx2VkCnSH8yq84EvPbSf6sUbHWzRLvMXjU8e\"]},\"contracts/ytLp/core/YTPriceFeed.sol\":{\"keccak256\":\"0xcbf5afda08b4d426b607b9996238f5cef655b6309c2757929cb3acbc967b080a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2e1c8cc47630bd4e6f11e0ed2c52f93e7c39d63e671c3e740c55406500c3643\",\"dweb:/ipfs/QmYkDwvDFn3KUbk9ehdTUuGvvPVbuXX7yuB8kTUvEfZ3pr\"]},\"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":[{"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":"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":"_wusdAddress","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":"_wusdPriceSource","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWusdPriceSource"},{"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":"wusdAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wusdPriceSource","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"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":"代币地址数组"}},"setWusdPriceSource(address)":{"params":{"_wusdPriceSource":"YTAssetVault合约地址"}},"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)":{"notice":"初始化合约"},"setKeeper(address,bool)":{"notice":"设置keeper权限"},"setMaxPriceChangeBps(uint256)":{"notice":"设置最大价格变动百分比"},"setSpreadBasisPoints(address,uint256)":{"notice":"设置代币价差"},"setSpreadBasisPointsForMultiple(address[],uint256[])":{"notice":"批量设置代币价差"},"setWusdPriceSource(address)":{"notice":"设置WUSD价格来源(YTAssetVault地址)"},"updatePrice(address)":{"notice":"更新价格并返回(由keeper调用)"}},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ytLp/core/YTPriceFeed.sol":"YTPriceFeed"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IYTToken.sol":{"keccak256":"0x878548d078048386430ce746d410f532280526f0c7a91c4d027c98ec4a9970be","urls":["bzz-raw://253337575d8d268cd5ff5a10a5b794b901a697a2984fa9dc2c590513b4a402f6","dweb:/ipfs/QmeBtCbpJeJx2VkCnSH8yq84EvPbSf6sUbHWzRLvMXjU8e"],"license":"MIT"},"contracts/ytLp/core/YTPriceFeed.sol":{"keccak256":"0xcbf5afda08b4d426b607b9996238f5cef655b6309c2757929cb3acbc967b080a","urls":["bzz-raw://b2e1c8cc47630bd4e6f11e0ed2c52f93e7c39d63e671c3e740c55406500c3643","dweb:/ipfs/QmYkDwvDFn3KUbk9ehdTUuGvvPVbuXX7yuB8kTUvEfZ3pr"],"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":9} |