@justin-gee/uniswap-tokamak-hardhat-v3-deploy
Version:
Hardhat plugin for Uniswap V3 solc ver 0.8 deployment
203 lines (202 loc) • 24.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "Quoter",
"sourceName": "contracts/lens/Quoter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_factory",
"type": "address"
},
{
"internalType": "address",
"name": "_WETH9",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "WETH9",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "path",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"name": "quoteExactInput",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactInputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "path",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"name": "quoteExactOutput",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactOutputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",
"name": "amount0Delta",
"type": "int256"
},
{
"internalType": "int256",
"name": "amount1Delta",
"type": "int256"
},
{
"internalType": "bytes",
"name": "path",
"type": "bytes"
}
],
"name": "uniswapV3SwapCallback",
"outputs": [],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c060405234801561001057600080fd5b506040516113fe3803806113fe83398101604081905261002f91610062565b6001600160a01b039182166080521660a052610095565b80516001600160a01b038116811461005d57600080fd5b919050565b6000806040838503121561007557600080fd5b61007e83610046565b915061008c60208401610046565b90509250929050565b60805160a0516113376100c7600039600060c001526000818161010c0152818161064a01526107dd01526113376000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a015514610107578063cdca17531461012e578063f7729d4314610141578063fa461e331461015457600080fd5b80632f80bb1d1461008257806330d07f21146100a85780634aa4a4fc146100bb575b600080fd5b610095610090366004610f6c565b610169565b6040519081526020015b60405180910390f35b6100956100b6366004610fd6565b6101ce565b6100e27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009f565b6100e27f000000000000000000000000000000000000000000000000000000000000000081565b61009561013c366004610f6c565b6103f5565b61009561014f366004610fd6565b610443565b610167610162366004611046565b610619565b005b60005b60006101778461072f565b9050600080600061018787610769565b92509250925061019b8284838960006101ce565b955083156101b3576101ac876107a5565b96506101bf565b859450505050506101c8565b5050505061016c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8086168782161090831682036101fb5760008490555b6102068787876107d6565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361022c88610814565b610235906110c5565b73ffffffffffffffffffffffffffffffffffffffff8816156102575787610290565b856102805761027b600173fffd8963efd1fc6a506488495d951d5263988d266110fd565b610290565b6102906401000276a36001611132565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b821660208401527fffffff000000000000000000000000000000000000000000000000000000000060e88f901b1660348401528f901b166037820152604b016040516020818303038152906040526040518663ffffffff1660e01b81526004016103279594939291906111e4565b60408051808303816000875af192505050801561037f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261037c91810190611236565b60015b6103e8573d8080156103ad576040519150601f19603f3d011682016040523d82523d6000602084013e6103b2565b606091505b508373ffffffffffffffffffffffffffffffffffffffff166000036103d657600080555b6103df81610846565b925050506103ec565b5050505b95945050505050565b60005b60006104038461072f565b9050600080600061041387610769565b925092509250610427838383896000610443565b955083156101b357610438876107a5565b9650505050506103f8565b600073ffffffffffffffffffffffffffffffffffffffff8086169087161061046c8787876107d6565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361049288610814565b73ffffffffffffffffffffffffffffffffffffffff8816156104b457876104ed565b856104dd576104d8600173fffd8963efd1fc6a506488495d951d5263988d266110fd565b6104ed565b6104ed6401000276a36001611132565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608f811b821660208401527fffffff000000000000000000000000000000000000000000000000000000000060e88f901b1660348401528e901b166037820152604b016040516020818303038152906040526040518663ffffffff1660e01b81526004016105849594939291906111e4565b60408051808303816000875af19250505080156105dc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105d991810190611236565b60015b6103e8573d80801561060a576040519150601f19603f3d011682016040523d82523d6000602084013e61060f565b606091505b506103df81610846565b60008313806106285750600082135b61063157600080fd5b600080600061063f84610769565b9250925092506106717f0000000000000000000000000000000000000000000000000000000000000000848484610923565b5060008060008089136106bd578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a6106b8906110c5565b6106f7565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896106f7906110c5565b925092509250821561070e57604051818152602081fd5b6000541561072457600054811461072457600080fd5b604051828152602081fd5b600061073d6003601461125a565b601461074a60038261125a565b610754919061125a565b61075e919061125a565b825110159050919050565b600080806107778482610939565b92506107848460146109c9565b905061079c6107956003601461125a565b8590610939565b91509193909250565b60606101c86107b66003601461125a565b6107c26003601461125a565b84516107ce9190611272565b849190610abd565b600061080c7f0000000000000000000000000000000000000000000000000000000000000000610807868686610c37565b610cc9565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061084257600080fd5b5090565b6000815160201461090f576044825110156108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f556e6578706563746564206572726f720000000000000000000000000000000060448201526064015b60405180910390fd5b600482019150818060200190518101906108dc9190611289565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b991906112f7565b818060200190518101906101c89190611311565b60006103ec85610934868686610c37565b610e22565b600061094682601461125a565b835110156109b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e6473000000000000000000000060448201526064016108b9565b5001602001516c01000000000000000000000000900490565b6000816109d781600361125a565b1015610a3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f7700000000000000000000000000000060448201526064016108b9565b610a4a82600361125a565b83511015610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e647300000000000000000000000060448201526064016108b9565b50016003015190565b606081610acb81601f61125a565b1015610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108b9565b610b3d828461125a565b84511015610ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108b9565b606082158015610bc65760405191506000825260208201604052610c2e565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610bff578051835260209283019201610be7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60408051606081018252600080825260208201819052918101919091528273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610c8c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610d0b57600080fd5b8151602080840151604080860151815173ffffffffffffffffffffffffffffffffffffffff95861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201207fff0000000000000000000000000000000000000000000000000000000000000060a08401529085901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201527fa598dd2fba360510c5a8f02f44423a4468e902df5857dbce3ca162a43a3a31ff60d582015260f501604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b6000610e2e8383610cc9565b90503373ffffffffffffffffffffffffffffffffffffffff8216146101c857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ec857610ec8610e52565b604052919050565b600067ffffffffffffffff821115610eea57610eea610e52565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610f2757600080fd5b8135610f3a610f3582610ed0565b610e81565b818152846020838601011115610f4f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f7f57600080fd5b823567ffffffffffffffff811115610f9657600080fd5b610fa285828601610f16565b95602094909401359450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610fd357600080fd5b50565b600080600080600060a08688031215610fee57600080fd5b8535610ff981610fb1565b9450602086013561100981610fb1565b9350604086013562ffffff8116811461102157600080fd5b925060608601359150608086013561103881610fb1565b809150509295509295909350565b60008060006060848603121561105b57600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561108057600080fd5b61108c86828701610f16565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036110f6576110f6611096565b5060000390565b600073ffffffffffffffffffffffffffffffffffffffff8381169083168181101561112a5761112a611096565b039392505050565b600073ffffffffffffffffffffffffffffffffffffffff80831681851680830382111561116157611161611096565b01949350505050565b60005b8381101561118557818101518382015260200161116d565b83811115611194576000848401525b50505050565b600081518084526111b281602086016020860161116a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261122b60a083018461119a565b979650505050505050565b6000806040838503121561124957600080fd5b505080516020909101519092909150565b6000821982111561126d5761126d611096565b500190565b60008282101561128457611284611096565b500390565b60006020828403121561129b57600080fd5b815167ffffffffffffffff8111156112b257600080fd5b8201601f810184136112c357600080fd5b80516112d1610f3582610ed0565b8181528560208385010111156112e657600080fd5b6103ec82602083016020860161116a565b60208152600061130a602083018461119a565b9392505050565b60006020828403121561132357600080fd5b505191905056fea164736f6c634300080f000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a015514610107578063cdca17531461012e578063f7729d4314610141578063fa461e331461015457600080fd5b80632f80bb1d1461008257806330d07f21146100a85780634aa4a4fc146100bb575b600080fd5b610095610090366004610f6c565b610169565b6040519081526020015b60405180910390f35b6100956100b6366004610fd6565b6101ce565b6100e27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009f565b6100e27f000000000000000000000000000000000000000000000000000000000000000081565b61009561013c366004610f6c565b6103f5565b61009561014f366004610fd6565b610443565b610167610162366004611046565b610619565b005b60005b60006101778461072f565b9050600080600061018787610769565b92509250925061019b8284838960006101ce565b955083156101b3576101ac876107a5565b96506101bf565b859450505050506101c8565b5050505061016c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8086168782161090831682036101fb5760008490555b6102068787876107d6565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361022c88610814565b610235906110c5565b73ffffffffffffffffffffffffffffffffffffffff8816156102575787610290565b856102805761027b600173fffd8963efd1fc6a506488495d951d5263988d266110fd565b610290565b6102906401000276a36001611132565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b821660208401527fffffff000000000000000000000000000000000000000000000000000000000060e88f901b1660348401528f901b166037820152604b016040516020818303038152906040526040518663ffffffff1660e01b81526004016103279594939291906111e4565b60408051808303816000875af192505050801561037f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261037c91810190611236565b60015b6103e8573d8080156103ad576040519150601f19603f3d011682016040523d82523d6000602084013e6103b2565b606091505b508373ffffffffffffffffffffffffffffffffffffffff166000036103d657600080555b6103df81610846565b925050506103ec565b5050505b95945050505050565b60005b60006104038461072f565b9050600080600061041387610769565b925092509250610427838383896000610443565b955083156101b357610438876107a5565b9650505050506103f8565b600073ffffffffffffffffffffffffffffffffffffffff8086169087161061046c8787876107d6565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361049288610814565b73ffffffffffffffffffffffffffffffffffffffff8816156104b457876104ed565b856104dd576104d8600173fffd8963efd1fc6a506488495d951d5263988d266110fd565b6104ed565b6104ed6401000276a36001611132565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608f811b821660208401527fffffff000000000000000000000000000000000000000000000000000000000060e88f901b1660348401528e901b166037820152604b016040516020818303038152906040526040518663ffffffff1660e01b81526004016105849594939291906111e4565b60408051808303816000875af19250505080156105dc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105d991810190611236565b60015b6103e8573d80801561060a576040519150601f19603f3d011682016040523d82523d6000602084013e61060f565b606091505b506103df81610846565b60008313806106285750600082135b61063157600080fd5b600080600061063f84610769565b9250925092506106717f0000000000000000000000000000000000000000000000000000000000000000848484610923565b5060008060008089136106bd578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a6106b8906110c5565b6106f7565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896106f7906110c5565b925092509250821561070e57604051818152602081fd5b6000541561072457600054811461072457600080fd5b604051828152602081fd5b600061073d6003601461125a565b601461074a60038261125a565b610754919061125a565b61075e919061125a565b825110159050919050565b600080806107778482610939565b92506107848460146109c9565b905061079c6107956003601461125a565b8590610939565b91509193909250565b60606101c86107b66003601461125a565b6107c26003601461125a565b84516107ce9190611272565b849190610abd565b600061080c7f0000000000000000000000000000000000000000000000000000000000000000610807868686610c37565b610cc9565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061084257600080fd5b5090565b6000815160201461090f576044825110156108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f556e6578706563746564206572726f720000000000000000000000000000000060448201526064015b60405180910390fd5b600482019150818060200190518101906108dc9190611289565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b991906112f7565b818060200190518101906101c89190611311565b60006103ec85610934868686610c37565b610e22565b600061094682601461125a565b835110156109b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e6473000000000000000000000060448201526064016108b9565b5001602001516c01000000000000000000000000900490565b6000816109d781600361125a565b1015610a3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f7700000000000000000000000000000060448201526064016108b9565b610a4a82600361125a565b83511015610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e647300000000000000000000000060448201526064016108b9565b50016003015190565b606081610acb81601f61125a565b1015610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108b9565b610b3d828461125a565b84511015610ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108b9565b606082158015610bc65760405191506000825260208201604052610c2e565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610bff578051835260209283019201610be7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60408051606081018252600080825260208201819052918101919091528273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610c8c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610d0b57600080fd5b8151602080840151604080860151815173ffffffffffffffffffffffffffffffffffffffff95861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201207fff0000000000000000000000000000000000000000000000000000000000000060a08401529085901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201527fa598dd2fba360510c5a8f02f44423a4468e902df5857dbce3ca162a43a3a31ff60d582015260f501604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b6000610e2e8383610cc9565b90503373ffffffffffffffffffffffffffffffffffffffff8216146101c857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ec857610ec8610e52565b604052919050565b600067ffffffffffffffff821115610eea57610eea610e52565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610f2757600080fd5b8135610f3a610f3582610ed0565b610e81565b818152846020838601011115610f4f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f7f57600080fd5b823567ffffffffffffffff811115610f9657600080fd5b610fa285828601610f16565b95602094909401359450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610fd357600080fd5b50565b600080600080600060a08688031215610fee57600080fd5b8535610ff981610fb1565b9450602086013561100981610fb1565b9350604086013562ffffff8116811461102157600080fd5b925060608601359150608086013561103881610fb1565b809150509295509295909350565b60008060006060848603121561105b57600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561108057600080fd5b61108c86828701610f16565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036110f6576110f6611096565b5060000390565b600073ffffffffffffffffffffffffffffffffffffffff8381169083168181101561112a5761112a611096565b039392505050565b600073ffffffffffffffffffffffffffffffffffffffff80831681851680830382111561116157611161611096565b01949350505050565b60005b8381101561118557818101518382015260200161116d565b83811115611194576000848401525b50505050565b600081518084526111b281602086016020860161116a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261122b60a083018461119a565b979650505050505050565b6000806040838503121561124957600080fd5b505080516020909101519092909150565b6000821982111561126d5761126d611096565b500190565b60008282101561128457611284611096565b500390565b60006020828403121561129b57600080fd5b815167ffffffffffffffff8111156112b257600080fd5b8201601f810184136112c357600080fd5b80516112d1610f3582610ed0565b8181528560208385010111156112e657600080fd5b6103ec82602083016020860161116a565b60208152600061130a602083018461119a565b9392505050565b60006020828403121561132357600080fd5b505191905056fea164736f6c634300080f000a",
"linkReferences": {},
"deployedLinkReferences": {}
}