9465 lines
459 KiB
JSON
9465 lines
459 KiB
JSON
{
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"name": "COIN",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "USD",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "fee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint24",
|
|
"name": "",
|
|
"type": "uint24"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "init",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "inverted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "nfpm",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract INonfungiblePositionManager",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "pool",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IUniswapV3Pool",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "price",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceX96",
|
|
"type": "uint160"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "lower",
|
|
"type": "int24"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "upper",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"name": "stake",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "coinAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "usdAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "lower",
|
|
"type": "int24"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "upper",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"name": "stake",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "tokenId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint128",
|
|
"name": "liquidity",
|
|
"type": "uint128"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount0",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount1",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "width",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"name": "stake",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "inToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "outToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceLimitX96",
|
|
"type": "uint160"
|
|
}
|
|
],
|
|
"name": "swap",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "inToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "outToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "swap",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceLimitX96",
|
|
"type": "uint160"
|
|
}
|
|
],
|
|
"name": "swapToPrice",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "swapper",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract ISwapRouter",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "token0",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "token1",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": {
|
|
"object": "0x6080604052600080546001600160a01b031990811673c36442b4a4522e871399cd717abdd847ab11fe88179091556001805490911673e592427a0aece92de3edee1f18e0157c0586156417905534801561005857600080fd5b50613686806100686000396000f3fe60806040523480156200001157600080fd5b5060043610620001325760003560e01c8063a035b1fe11620000c0578063d6f13002116200008b578063df791e50116200006e578063df791e501462000349578063e1c7392a1462000360578063e3baf41a146200036a57600080fd5b8063d6f1300214620002e9578063ddca3f43146200031257600080fd5b8063a035b1fe1462000277578063a54a72b71462000290578063c578d91d14620002b1578063d21220a714620002c857600080fd5b80634a09d3dd11620001015780634a09d3dd14620001e257806353486e2f146200020857806367e368fc14620002215780637303e913146200025657600080fd5b80630dfe1681146200013757806316f0115b14620001705780631bf6c21b14620001a05780632b3297f914620001c1575b600080fd5b600554620001589073ffffffffffffffffffffffffffffffffffffffff1681565b6040516200016791906200184b565b60405180910390f35b600254620001919073ffffffffffffffffffffffffffffffffffffffff1681565b6040516200016791906200189f565b600454620001919073ffffffffffffffffffffffffffffffffffffffff1681565b600154620001919073ffffffffffffffffffffffffffffffffffffffff1681565b620001f9620001f336600462001928565b62000381565b60405162000167919062001994565b6200021f62000219366004620019bd565b6200052a565b005b600654620002479074010000000000000000000000000000000000000000900460ff1681565b60405162000167919062001a17565b600054620001919073ffffffffffffffffffffffffffffffffffffffff1681565b620002816200058a565b60405162000167919062001a44565b600354620001919073ffffffffffffffffffffffffffffffffffffffff1681565b6200021f620002c236600462001a54565b6200062d565b600654620001589073ffffffffffffffffffffffffffffffffffffffff1681565b62000300620002fa36600462001a77565b62000887565b60405162000167949392919062001aea565b6002546200033a9074010000000000000000000000000000000000000000900462ffffff1681565b60405162000167919062001b3c565b620001f96200035a36600462001b4c565b620008ad565b6200021f620009cb565b6200021f6200037b36600462001b94565b62000f7b565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620003de921690879060040162001bd2565b6020604051808303816000875af1158015620003fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000424919062001c08565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620004da90849060040162001cca565b6020604051808303816000875af1158015620004fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000520919062001ce9565b9695505050505050565b600060026200054285670de0b6b3a764000062001d3b565b6200054e919062001d90565b9050600060026200056386620f424062001d3b565b6200056f919062001d90565b90506200057f8282868662000887565b505050505050505050565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620005fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000621919062001dfa565b50949695505050505050565b6200066d6040518060400160405280600b81526020017f73776170546f50726963650000000000000000000000000000000000000000008152506200104f565b6200068e8173ffffffffffffffffffffffffffffffffffffffff16620010e2565b60006200069a6200058a565b9050620006bd8173ffffffffffffffffffffffffffffffffffffffff16620010e2565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620006f5575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16116200074a5760065473ffffffffffffffffffffffffffffffffffffffff1662000764565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620007bb5760065473ffffffffffffffffffffffffffffffffffffffff16620007d5565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f19906200083d903090859060040162001bd2565b600060405180830381600087803b1580156200085857600080fd5b505af11580156200086d573d6000803e3d6000fd5b505050506200087f8383838862000381565b505050505050565b6000806000806200089b8888888862001175565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200091e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000944919062001eb3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146200099e5762000998600173fffd8963efd1fc6a506488495d951d5263988d2662001ed6565b620009b0565b620009b06401000276a3600162001f07565b9050620009c08585858462000381565b9150505b9392505050565b6012604051620009db906200180c565b620009e7919062001fb9565b604051809103906000f08015801562000a04573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d45480000000000000000000000000000000000000000000000000000000000602082015262000a88906200104f565b60035462000aac9073ffffffffffffffffffffffffffffffffffffffff1662001758565b600660405162000abc906200180c565b62000ac8919062002058565b604051809103906000f08015801562000ae5573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f5553584400000000000000000000000000000000000000000000000000000000602082015262000b69906200104f565b60045462000b8d9073ffffffffffffffffffffffffffffffffffffffff1662001758565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff91041662000c625760035473ffffffffffffffffffffffffffffffffffffffff1662000c7c565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff1662000d035760045473ffffffffffffffffffffffffffffffffffffffff1662000d1d565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff1662000d98576910c6f7a0b5ed8d36b4c762000da9565b6e0f42400000000000000000000000005b905062000dcf604051806080016040528060538152602001620035fe605391396200104f565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead5629462000e5694908216939116917401000000000000000000000000000000000000000090910462ffffff169087906004016200207f565b6020604051808303816000875af115801562000e76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e9c919062001eb3565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c00000000000000000000000000000000000000000000000000602082015262000f20906200104f565b60025462000f449073ffffffffffffffffffffffffffffffffffffffff1662001758565b62000f78629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186200021981620020bc565b50565b60008160020b1362000f8c57600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001023919062001dfa565b50505050509150506200104a8383836200103e919062002104565b6200021985856200215b565b505050565b62000f788160405160240162001066919062002228565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052620017e6565b62000f7881604051602401620010f9919062001994565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f100000000000000000000000000000000000000000000000000000000179052620017e6565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620011d89030908c9060040162001bd2565b600060405180830381600087803b158015620011f357600080fd5b505af115801562001208573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b393506200126b92909116908c9060040162001bd2565b6020604051808303816000875af11580156200128b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012b1919062001c08565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f19916200130b9130918c910162001bd2565b600060405180830381600087803b1580156200132657600080fd5b505af11580156200133b573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b394506200139e9391909216918c910162001bd2565b6020604051808303816000875af1158015620013be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013e4919062001c08565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001456573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200147c91906200223d565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da790620014d3908a9085906004016200226b565b602060405180830381865af4158015620014f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200151791906200223d565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da7906200156e90899085906004016200226b565b602060405180830381865af41580156200158c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015b291906200223d565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a50919392169163883164569162001689918591016200236e565b6080604051808303816000875af1158015620016a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016cf9190620023a6565b60408051808201909152600681527f6d696e746564000000000000000000000000000000000000000000000000000060208201529399509197509550935062001718906200104f565b62001735856fffffffffffffffffffffffffffffffff16620010e2565b6200174084620010e2565b6200174b83620010e2565b5050945094509450949050565b62000f78816040516024016200176f91906200184b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000f788180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd806200240183390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b62001845816200181a565b82525050565b602081016200183482846200183a565b600073ffffffffffffffffffffffffffffffffffffffff821662001834565b600062001834826200185b565b600062001834826200187a565b620018458162001887565b6020810162001834828462001894565b600062001834826200181a565b620018c781620018af565b811462000f7857600080fd5b803580620018e181620018bc565b5092915050565b80620018c7565b803580620018e181620018e8565b73ffffffffffffffffffffffffffffffffffffffff8116620018c7565b803580620018e181620018fd565b60008060008060808587031215620019435762001943600080fd5b6200194f8686620018d3565b9350620019608660208701620018d3565b9250620019718660408701620018ef565b91506200198286606087016200191a565b905092959194509250565b8062001845565b602081016200183482846200198d565b620018c78160020b90565b803580620018e181620019a4565b600080600060608486031215620019d757620019d7600080fd5b620019e38585620018ef565b9250620019f48560208601620019af565b915062001a058560408601620019af565b90509250925092565b80151562001845565b6020810162001834828462001a0e565b73ffffffffffffffffffffffffffffffffffffffff811662001845565b6020810162001834828462001a27565b60006020828403121562001a6b5762001a6b600080fd5b620009c483836200191a565b6000806000806080858703121562001a925762001a92600080fd5b62001a9e8686620018ef565b935062001aaf8660208701620018ef565b925062001ac08660408701620019af565b9150620019828660608701620019af565b6fffffffffffffffffffffffffffffffff811662001845565b6080810162001afa82876200198d565b62001b09602083018662001ad1565b62001b1860408301856200198d565b62001b2760608301846200198d565b95945050505050565b62ffffff811662001845565b6020810162001834828462001b30565b60008060006060848603121562001b665762001b66600080fd5b62001b728585620018d3565b925062001b838560208601620018d3565b915062001a058560408601620018ef565b6000806040838503121562001bac5762001bac600080fd5b62001bb88484620018ef565b915062001bc98460208501620019af565b90509250929050565b6040810162001be282856200183a565b620009c460208301846200198d565b801515620018c7565b805180620018e18162001bf1565b60006020828403121562001c1f5762001c1f600080fd5b620009c4838362001bfa565b62001c388282516200183a565b602081015162001c4c60208401826200183a565b50604081015162001c61604084018262001b30565b50606081015162001c7660608401826200183a565b50608081015162001c8b60808401826200198d565b5060a081015162001ca060a08401826200198d565b5060c081015162001cb560c08401826200198d565b5060e08101516200104a60e084018262001a27565b610100810162001834828462001c2b565b805180620018e181620018e8565b60006020828403121562001d005762001d00600080fd5b620009c4838362001cdb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818102818382821583820483141762001d585762001d5862001d0c565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062001da45762001da462001d61565b90049392505050565b805180620018e181620018fd565b805180620018e181620019a4565b61ffff8116620018c7565b805180620018e18162001dc9565b60ff8116620018c7565b805180620018e18162001de2565b600080600080600080600060e0888a03121562001e1a5762001e1a600080fd5b62001e26898962001dad565b965062001e378960208a0162001dbb565b955062001e488960408a0162001dd4565b945062001e598960608a0162001dd4565b935062001e6a8960808a0162001dd4565b925062001e7b8960a08a0162001dec565b915062001e8c8960c08a0162001bfa565b905092959891949750929550565b620018c7816200181a565b805180620018e18162001e9a565b60006020828403121562001eca5762001eca600080fd5b620009c4838362001ea5565b73ffffffffffffffffffffffffffffffffffffffff82811682821603908190811115620018e157620018e162001d0c565b73ffffffffffffffffffffffffffffffffffffffff82811682821601908190811115620018e157620018e162001d0c565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262001f66565b600060ff821662001834565b620018458162001fa2565b60608152600062001fcd6060830162001f38565b828103602084015262001fe08162001f6f565b91505062001834604083018462001fae565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262001f66565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262001f66565b6060815260006200206c6060830162001ff2565b828103602084015262001fe08162002025565b608081016200208f82876200183a565b6200209e60208301866200183a565b620020ad604083018562001b30565b62001b27606083018462001a27565b6000620020c98260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008103620020fb57620020fb62001d0c565b60000392915050565b6000620021118260020b90565b6200211c8460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff82131715620018e157620018e162001d0c565b6000620021688260020b90565b620021738460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000082121715620018e157620018e162001d0c565b60005b83811015620021ce578181015183820152602001620021b4565b50506000910152565b6000620021e2825190565b80845260208401620021f9828260208701620021b1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b602081526000620009c46020830184620021d7565b600060208284031215620022545762002254600080fd5b620009c4838362001dbb565b620018458160020b90565b604081016200227b828562002260565b620009c4602083018462002260565b620022978282516200183a565b6020810151620022ab60208401826200183a565b506040810151620022c0604084018262001b30565b506060810151620022d5606084018262002260565b506080810151620022ea608084018262002260565b5060a0810151620022ff60a08401826200198d565b5060c08101516200231460c08401826200198d565b5060e08101516200232960e08401826200198d565b50610100810151620023406101008401826200198d565b50610120810151620023576101208401826200183a565b506101408101516200104a6101408401826200198d565b61016081016200183482846200228a565b6fffffffffffffffffffffffffffffffff8116620018c7565b805180620018e1816200237f565b60008060008060808587031215620023c157620023c1600080fd5b620023cd868662001cdb565b9350620023de866020870162002398565b9250620023ef866040870162001cdb565b915062001982866060870162001cdb56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e24d516b60430c641c8980ef5657e8505e86a72a54cb97d776669dcdc4b7648564736f6c63430008160033",
|
|
"sourceMap": "588:6124:63:-:0;;;612:87;;;-1:-1:-1;;;;;;612:87:63;;;644:42:50;612:87:63;;;;;705:58;;;;;765:42:50;705:58:63;;;588:6124;;;;;;;;;;;;;;;;",
|
|
"linkReferences": {
|
|
"src/Util.sol": {
|
|
"Util": [
|
|
{
|
|
"start": 5391,
|
|
"length": 20
|
|
},
|
|
{
|
|
"start": 5546,
|
|
"length": 20
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"deployedBytecode": {
|
|
"object": "0x60806040523480156200001157600080fd5b5060043610620001325760003560e01c8063a035b1fe11620000c0578063d6f13002116200008b578063df791e50116200006e578063df791e501462000349578063e1c7392a1462000360578063e3baf41a146200036a57600080fd5b8063d6f1300214620002e9578063ddca3f43146200031257600080fd5b8063a035b1fe1462000277578063a54a72b71462000290578063c578d91d14620002b1578063d21220a714620002c857600080fd5b80634a09d3dd11620001015780634a09d3dd14620001e257806353486e2f146200020857806367e368fc14620002215780637303e913146200025657600080fd5b80630dfe1681146200013757806316f0115b14620001705780631bf6c21b14620001a05780632b3297f914620001c1575b600080fd5b600554620001589073ffffffffffffffffffffffffffffffffffffffff1681565b6040516200016791906200184b565b60405180910390f35b600254620001919073ffffffffffffffffffffffffffffffffffffffff1681565b6040516200016791906200189f565b600454620001919073ffffffffffffffffffffffffffffffffffffffff1681565b600154620001919073ffffffffffffffffffffffffffffffffffffffff1681565b620001f9620001f336600462001928565b62000381565b60405162000167919062001994565b6200021f62000219366004620019bd565b6200052a565b005b600654620002479074010000000000000000000000000000000000000000900460ff1681565b60405162000167919062001a17565b600054620001919073ffffffffffffffffffffffffffffffffffffffff1681565b620002816200058a565b60405162000167919062001a44565b600354620001919073ffffffffffffffffffffffffffffffffffffffff1681565b6200021f620002c236600462001a54565b6200062d565b600654620001589073ffffffffffffffffffffffffffffffffffffffff1681565b62000300620002fa36600462001a77565b62000887565b60405162000167949392919062001aea565b6002546200033a9074010000000000000000000000000000000000000000900462ffffff1681565b60405162000167919062001b3c565b620001f96200035a36600462001b4c565b620008ad565b6200021f620009cb565b6200021f6200037b36600462001b94565b62000f7b565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620003de921690879060040162001bd2565b6020604051808303816000875af1158015620003fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000424919062001c08565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620004da90849060040162001cca565b6020604051808303816000875af1158015620004fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000520919062001ce9565b9695505050505050565b600060026200054285670de0b6b3a764000062001d3b565b6200054e919062001d90565b9050600060026200056386620f424062001d3b565b6200056f919062001d90565b90506200057f8282868662000887565b505050505050505050565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620005fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000621919062001dfa565b50949695505050505050565b6200066d6040518060400160405280600b81526020017f73776170546f50726963650000000000000000000000000000000000000000008152506200104f565b6200068e8173ffffffffffffffffffffffffffffffffffffffff16620010e2565b60006200069a6200058a565b9050620006bd8173ffffffffffffffffffffffffffffffffffffffff16620010e2565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620006f5575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16116200074a5760065473ffffffffffffffffffffffffffffffffffffffff1662000764565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620007bb5760065473ffffffffffffffffffffffffffffffffffffffff16620007d5565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f19906200083d903090859060040162001bd2565b600060405180830381600087803b1580156200085857600080fd5b505af11580156200086d573d6000803e3d6000fd5b505050506200087f8383838862000381565b505050505050565b6000806000806200089b8888888862001175565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200091e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000944919062001eb3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146200099e5762000998600173fffd8963efd1fc6a506488495d951d5263988d2662001ed6565b620009b0565b620009b06401000276a3600162001f07565b9050620009c08585858462000381565b9150505b9392505050565b6012604051620009db906200180c565b620009e7919062001fb9565b604051809103906000f08015801562000a04573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d45480000000000000000000000000000000000000000000000000000000000602082015262000a88906200104f565b60035462000aac9073ffffffffffffffffffffffffffffffffffffffff1662001758565b600660405162000abc906200180c565b62000ac8919062002058565b604051809103906000f08015801562000ae5573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f5553584400000000000000000000000000000000000000000000000000000000602082015262000b69906200104f565b60045462000b8d9073ffffffffffffffffffffffffffffffffffffffff1662001758565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff91041662000c625760035473ffffffffffffffffffffffffffffffffffffffff1662000c7c565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff1662000d035760045473ffffffffffffffffffffffffffffffffffffffff1662000d1d565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff1662000d98576910c6f7a0b5ed8d36b4c762000da9565b6e0f42400000000000000000000000005b905062000dcf604051806080016040528060538152602001620035fe605391396200104f565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead5629462000e5694908216939116917401000000000000000000000000000000000000000090910462ffffff169087906004016200207f565b6020604051808303816000875af115801562000e76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e9c919062001eb3565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c00000000000000000000000000000000000000000000000000602082015262000f20906200104f565b60025462000f449073ffffffffffffffffffffffffffffffffffffffff1662001758565b62000f78629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186200021981620020bc565b50565b60008160020b1362000f8c57600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001023919062001dfa565b50505050509150506200104a8383836200103e919062002104565b6200021985856200215b565b505050565b62000f788160405160240162001066919062002228565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052620017e6565b62000f7881604051602401620010f9919062001994565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f100000000000000000000000000000000000000000000000000000000179052620017e6565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620011d89030908c9060040162001bd2565b600060405180830381600087803b158015620011f357600080fd5b505af115801562001208573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b393506200126b92909116908c9060040162001bd2565b6020604051808303816000875af11580156200128b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012b1919062001c08565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f19916200130b9130918c910162001bd2565b600060405180830381600087803b1580156200132657600080fd5b505af11580156200133b573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b394506200139e9391909216918c910162001bd2565b6020604051808303816000875af1158015620013be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013e4919062001c08565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001456573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200147c91906200223d565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da790620014d3908a9085906004016200226b565b602060405180830381865af4158015620014f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200151791906200223d565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da7906200156e90899085906004016200226b565b602060405180830381865af41580156200158c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015b291906200223d565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a50919392169163883164569162001689918591016200236e565b6080604051808303816000875af1158015620016a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016cf9190620023a6565b60408051808201909152600681527f6d696e746564000000000000000000000000000000000000000000000000000060208201529399509197509550935062001718906200104f565b62001735856fffffffffffffffffffffffffffffffff16620010e2565b6200174084620010e2565b6200174b83620010e2565b5050945094509450949050565b62000f78816040516024016200176f91906200184b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000f788180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd806200240183390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b62001845816200181a565b82525050565b602081016200183482846200183a565b600073ffffffffffffffffffffffffffffffffffffffff821662001834565b600062001834826200185b565b600062001834826200187a565b620018458162001887565b6020810162001834828462001894565b600062001834826200181a565b620018c781620018af565b811462000f7857600080fd5b803580620018e181620018bc565b5092915050565b80620018c7565b803580620018e181620018e8565b73ffffffffffffffffffffffffffffffffffffffff8116620018c7565b803580620018e181620018fd565b60008060008060808587031215620019435762001943600080fd5b6200194f8686620018d3565b9350620019608660208701620018d3565b9250620019718660408701620018ef565b91506200198286606087016200191a565b905092959194509250565b8062001845565b602081016200183482846200198d565b620018c78160020b90565b803580620018e181620019a4565b600080600060608486031215620019d757620019d7600080fd5b620019e38585620018ef565b9250620019f48560208601620019af565b915062001a058560408601620019af565b90509250925092565b80151562001845565b6020810162001834828462001a0e565b73ffffffffffffffffffffffffffffffffffffffff811662001845565b6020810162001834828462001a27565b60006020828403121562001a6b5762001a6b600080fd5b620009c483836200191a565b6000806000806080858703121562001a925762001a92600080fd5b62001a9e8686620018ef565b935062001aaf8660208701620018ef565b925062001ac08660408701620019af565b9150620019828660608701620019af565b6fffffffffffffffffffffffffffffffff811662001845565b6080810162001afa82876200198d565b62001b09602083018662001ad1565b62001b1860408301856200198d565b62001b2760608301846200198d565b95945050505050565b62ffffff811662001845565b6020810162001834828462001b30565b60008060006060848603121562001b665762001b66600080fd5b62001b728585620018d3565b925062001b838560208601620018d3565b915062001a058560408601620018ef565b6000806040838503121562001bac5762001bac600080fd5b62001bb88484620018ef565b915062001bc98460208501620019af565b90509250929050565b6040810162001be282856200183a565b620009c460208301846200198d565b801515620018c7565b805180620018e18162001bf1565b60006020828403121562001c1f5762001c1f600080fd5b620009c4838362001bfa565b62001c388282516200183a565b602081015162001c4c60208401826200183a565b50604081015162001c61604084018262001b30565b50606081015162001c7660608401826200183a565b50608081015162001c8b60808401826200198d565b5060a081015162001ca060a08401826200198d565b5060c081015162001cb560c08401826200198d565b5060e08101516200104a60e084018262001a27565b610100810162001834828462001c2b565b805180620018e181620018e8565b60006020828403121562001d005762001d00600080fd5b620009c4838362001cdb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818102818382821583820483141762001d585762001d5862001d0c565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062001da45762001da462001d61565b90049392505050565b805180620018e181620018fd565b805180620018e181620019a4565b61ffff8116620018c7565b805180620018e18162001dc9565b60ff8116620018c7565b805180620018e18162001de2565b600080600080600080600060e0888a03121562001e1a5762001e1a600080fd5b62001e26898962001dad565b965062001e378960208a0162001dbb565b955062001e488960408a0162001dd4565b945062001e598960608a0162001dd4565b935062001e6a8960808a0162001dd4565b925062001e7b8960a08a0162001dec565b915062001e8c8960c08a0162001bfa565b905092959891949750929550565b620018c7816200181a565b805180620018e18162001e9a565b60006020828403121562001eca5762001eca600080fd5b620009c4838362001ea5565b73ffffffffffffffffffffffffffffffffffffffff82811682821603908190811115620018e157620018e162001d0c565b73ffffffffffffffffffffffffffffffffffffffff82811682821601908190811115620018e157620018e162001d0c565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262001f66565b600060ff821662001834565b620018458162001fa2565b60608152600062001fcd6060830162001f38565b828103602084015262001fe08162001f6f565b91505062001834604083018462001fae565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262001f66565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262001f66565b6060815260006200206c6060830162001ff2565b828103602084015262001fe08162002025565b608081016200208f82876200183a565b6200209e60208301866200183a565b620020ad604083018562001b30565b62001b27606083018462001a27565b6000620020c98260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008103620020fb57620020fb62001d0c565b60000392915050565b6000620021118260020b90565b6200211c8460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff82131715620018e157620018e162001d0c565b6000620021688260020b90565b620021738460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000082121715620018e157620018e162001d0c565b60005b83811015620021ce578181015183820152602001620021b4565b50506000910152565b6000620021e2825190565b80845260208401620021f9828260208701620021b1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b602081526000620009c46020830184620021d7565b600060208284031215620022545762002254600080fd5b620009c4838362001dbb565b620018458160020b90565b604081016200227b828562002260565b620009c4602083018462002260565b620022978282516200183a565b6020810151620022ab60208401826200183a565b506040810151620022c0604084018262001b30565b506060810151620022d5606084018262002260565b506080810151620022ea608084018262002260565b5060a0810151620022ff60a08401826200198d565b5060c08101516200231460c08401826200198d565b5060e08101516200232960e08401826200198d565b50610100810151620023406101008401826200198d565b50610120810151620023576101208401826200183a565b506101408101516200104a6101408401826200198d565b61016081016200183482846200228a565b6fffffffffffffffffffffffffffffffff8116620018c7565b805180620018e1816200237f565b60008060008060808587031215620023c157620023c1600080fd5b620023cd868662001cdb565b9350620023de866020870162002398565b9250620023ef866040870162001cdb565b915062001982866060870162001cdb56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e24d516b60430c641c8980ef5657e8505e86a72a54cb97d776669dcdc4b7648564736f6c63430008160033",
|
|
"sourceMap": "588:6124:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:21;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;769:26;;;;;;;;;;;;;;;;:::i;851:20::-;;;;;;;;;705:58;;;;;;;;;5079:824;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2667:221::-;;;;;;:::i;:::-;;:::i;:::-;;988:20;;;;;;;;;;;;;;;;;;;:::i;612:87::-;;;;;;;;;5909:112;;;:::i;:::-;;;;;;;:::i;824:21::-;;;;;;;;;6027:683;;;;;;:::i;:::-;;:::i;961:21::-;;;;;;;;;2895:279;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;801:17::-;;;;;;;;;;;;;;;;;;;:::i;4784:289::-;;;;;;:::i;:::-;;:::i;1349:1125::-;;;:::i;2481:179::-;;;;;;:::i;:::-;;:::i;5079:824::-;5246:7;;5222:43;;;;;5193:17;;5222:15;;;;;;;:43;;5246:7;;5256:8;;5222:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5688:159:63;;;;;;;;;;;;;;;;;;;;;5773:3;;;;;;;5688:159;;;;5778:10;5688:159;;;;5790:15;5688:159;;;;;;;;;;-1:-1:-1;5688:159:63;;;;;;;;;;;5864:7;;:32;;;;;5688:159;;5864:7;;:24;;:32;;5688:159;;5864:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5857:39;5079:824;-1:-1:-1;;;;;;5079:824:63:o;2667:221::-;2741:18;2780:1;2762:15;:6;2771;2762:15;:::i;:::-;:19;;;;:::i;:::-;2741:40;-1:-1:-1;2791:17:63;2828:1;2811:14;:6;2820:5;2811:14;:::i;:::-;:18;;;;:::i;:::-;2791:38;;2839:42;2845:10;2857:9;2868:5;2875;2839;:42::i;:::-;;;;;2731:157;;2667:221;;;:::o;5909:112::-;6002:4;;:12;;;;;;;;5947:20;;6002:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5979:35:63;;5909:112;-1:-1:-1;;;;;;5909:112:63:o;6027:683::-;6092:27;;;;;;;;;;;;;;;;;;:12;:27::i;:::-;6129:31;6142:17;6129:31;;:12;:31::i;:::-;6170:16;6189:7;:5;:7::i;:::-;6170:26;;6206:22;6219:8;6206:22;;:12;:22::i;:::-;6254:17;6242:29;;:8;:29;;;6238:55;;6286:7;6027:683;:::o;6238:55::-;6302:17;6333;6322:28;;:8;:28;;;:68;;6383:6;;;;6322:68;;;6363:6;;;;6322:68;6302:88;;6400:18;6432:17;6421:28;;:8;:28;;;:68;;6482:6;;;;6421:68;;;6462:6;;;;6421:68;6612:33;;;;;6400:89;;-1:-1:-1;6596:6:63;;6612:12;;;;;;:33;;6633:4;;6596:6;;6612:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:48;6660:7;6669:8;6679:4;6685:17;6655:4;:48::i;:::-;;6082:628;;;;6027:683;:::o;2895:279::-;3004:15;3029:17;3056:15;3081;3124:43;3131:10;3143:9;3154:5;3161;3124:6;:43::i;:::-;3117:50;;;;-1:-1:-1;3117:50:63;-1:-1:-1;3117:50:63;;-1:-1:-1;2895:279:63;-1:-1:-1;;;;;2895:279:63:o;4784:289::-;4871:17;4900:13;4936:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4916:33;;4924:7;4916:33;;;:93;;4982:27;5008:1;997:49:38;4982:27:63;:::i;:::-;4916:93;;;4952:27;817:10:38;4978:1:63;4952:27;:::i;:::-;4900:109;;5026:40;5031:7;5040:8;5050;5060:5;5026:4;:40::i;:::-;5019:47;;;4784:289;;;;;;:::o;1349:1125::-;1436:2;1389:50;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1382:4:63;:57;;;;;;;;;;;;;;;1449:19;;;;;;;;;;;;;;;;;;;:12;:19::i;:::-;1499:4;;1478:27;;1499:4;;1478:12;:27::i;:::-;1563:1;1521:44;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1515:3:63;:50;;;;;;;;;;;;;;;1575:20;;;;;;;;;;;;;;;;;;;:12;:20::i;:::-;1626:3;;1605:26;;1626:3;;1605:12;:26::i;:::-;1641:3;:9;;;;;;;;1695:3;;1679:4;;1660:8;:39;;;;1641:9;1695:3;;;;1679:4;;;;1671:28;;;;1660:39;;;;;;;;;;;1718:8;;;:39;;1752:4;;;;1718:39;;;1737:3;;;;1718:39;1709:6;:48;;;;;;;;;;;;;;;1776:8;;;;;;;:39;;1811:3;;;;1776:39;;;1795:4;;;;1776:39;1767:6;:48;;;;;;;;;;;;;;;;;-1:-1:-1;;1848:8:63;;;;;:90;;1914:23;1848:90;;;1867:35;1848:90;1825:113;;1957:99;;;;;;;;;;;;;;;;;;:12;:99::i;:::-;2188:4;;2228:6;;2236;;2244:3;;2188:74;;;;;:4;;;;;:39;;:74;;2228:6;;;;2236;;;2244:3;;;;;;;2249:12;;2188:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2166:4;:97;;;;;;;;;;;;;;;2273:23;;;;;;;;;;;;;;;;;;;:12;:23::i;:::-;2327:4;;2306:27;;2327:4;;2306:12;:27::i;:::-;2412:55;2418:10;477:7:38;637:9;477:7;637:9;:::i;2412:55:63:-;1372:1102;1349:1125::o;2481:179::-;2556:1;2550:5;:7;;;2542:16;;;;;;2594:4;;:12;;;;;;;;2571:10;;2594:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2568:38;;;;;;;;2616:37;2622:6;2635:5;2630:4;:10;;;;:::i;:::-;2642;2647:5;2642:4;:10;:::i;2616:37::-;2532:128;2481:179;;:::o;6598:121:16:-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;6356:116::-;6405:60;6461:2;6421:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6405:15;:60::i;3180:1597:63:-;3516:4;;:36;;;;;3291:15;;;;;;;;3516:4;;;;;:9;;:36;;3534:4;;3541:10;;3516:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3562:4:63;;;3583;3562:39;;;;;:4;;;;;-1:-1:-1;3562:12:63;;-1:-1:-1;3562:39:63;;3583:4;;;;3590:10;;3562:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3650:3:63;;;:34;;;;;:3;;;;;:8;;:34;;3667:4;;3674:9;;3650:34;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3694:3:63;;;;3714:4;3694:37;;;;;:3;;;;;-1:-1:-1;3694:11:63;;-1:-1:-1;3694:37:63;;3714:4;;;;;3721:9;;3694:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4240:4:63;;:18;;;;;;;;4229:8;;4240:4;;;:16;;:18;;;;;;;;;;;;;;:4;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4276:25;;;;;4229:29;;-1:-1:-1;4276:4:63;;:14;;:25;;4291:5;;4229:29;;4276:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4319;;;;;4268:33;;-1:-1:-1;4319:4:63;;:14;;:25;;4334:5;;4341:2;;4319:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4409:166;;;;;;;;4469:4;;;;;;4409:166;;4484:3;;;;;4409:166;;;;4490:3;;;;;;;;4409:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4409:166:63;;;;;;4469:4;4409:166;;;;;4538:10;4409:166;;;;4550:15;4409:166;;;;4626:4;:17;;;;;4409:166;;-1:-1:-1;4409:166:63;;4626:4;;;:9;;:17;;4409:166;;4626:17;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4653:22;;;;;;;;;;;;;;;;;4585:58;;-1:-1:-1;4585:58:63;;-1:-1:-1;4585:58:63;-1:-1:-1;4585:58:63;-1:-1:-1;4653:22:63;;:12;:22::i;:::-;4685:23;4698:9;4685:23;;:12;:23::i;:::-;4718:21;4731:7;4718:12;:21::i;:::-;4749;4762:7;4749:12;:21::i;:::-;3394:1383;;3180:1597;;;;;;;;;:::o;6841:116:16:-;6890:60;6946:2;6906:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;868:133;939:55;986:7;1105:14;;591:42;1278:2;1265:16;;1081:21;;1105:14;1265:16;591:42;1314:5;1303:68;1294:77;;1231:150;;1007:380;:::o;-1:-1:-1:-;;;;;;;;:::o;147:96:69:-;182:7;93:42;82:54;;215:22;204:33;147:96;-1:-1:-1;;147:96:69:o;248:95::-;314:22;330:5;314:22;:::i;:::-;309:3;302:35;;;248:95::o;348:189::-;482:2;467:18;;494:37;471:9;513:6;494:37;:::i;599:138::-;645:9;93:42;82:54;;682:49;14:128;742:122;788:9;825:33;852:5;825:33;:::i;869:138::-;931:9;968:33;995:5;968:33;:::i;1012:138::-;1094:49;1137:5;1094:49;:::i;1155:229::-;1313:2;1298:18;;1325:53;1302:9;1360:6;1325:53;:::i;2503:107::-;2549:7;2582:22;2598:5;2582:22;:::i;2615:144::-;2701:33;2728:5;2701:33;:::i;:::-;2694:5;2691:44;2681:72;;2749:1;2746;2739:12;2764:194;2854:20;;;2908:44;2854:20;2908:44;:::i;:::-;;2764:194;;;;:::o;3035:122::-;3126:5;3110:22;542:52;3162:172;3241:20;;;3295:33;3241:20;3295:33;:::i;3339:122::-;93:42;82:54;;3414:22;14:128;3466:172;3545:20;;;3599:33;3545:20;3599:33;:::i;3643:600::-;3767:6;3775;3783;3791;3844:3;3832:9;3823:7;3819:23;3815:33;3812:148;;;3871:79;588:6124:63;;;3871:79:69;3979:49;4020:7;4009:9;3979:49;:::i;:::-;3969:59;;4047:58;4097:7;4092:2;4081:9;4077:18;4047:58;:::i;:::-;4037:68;;4124:47;4163:7;4158:2;4147:9;4143:18;4124:47;:::i;:::-;4114:57;;4190:47;4229:7;4224:2;4213:9;4209:18;4190:47;:::i;:::-;4180:57;;3643:600;;;;;;;:::o;4248:106::-;4341:5;4325:22;542:52;4359:200;4493:2;4478:18;;4505:48;4482:9;4535:6;4505:48;:::i;4661:118::-;4734:20;4748:5;4641:1;4630:20;;4564:92;4784:168;4861:20;;;4915:31;4861:20;4915:31;:::i;4957:448::-;5030:6;5038;5046;5099:2;5087:9;5078:7;5074:23;5070:32;5067:147;;;5125:79;588:6124:63;;;5125:79:69;5233:38;5263:7;5252:9;5233:38;:::i;:::-;5223:48;;5290:45;5327:7;5322:2;5311:9;5307:18;5290:45;:::i;:::-;5280:55;;5354:45;5391:7;5386:2;5375:9;5371:18;5354:45;:::i;:::-;5344:55;;4957:448;;;;;:::o;5507:89::-;5482:13;;5475:21;5570:19;5410:92;5601:180;5729:2;5714:18;;5741:34;5718:9;5757:6;5741:34;:::i;6371:106::-;93:42;82:54;;6448:22;14:128;6482:200;6616:2;6601:18;;6628:48;6605:9;6658:6;6628:48;:::i;6687:290::-;6746:6;6799:2;6787:9;6778:7;6774:23;6770:32;6767:147;;;6825:79;588:6124:63;;;6825:79:69;6933:38;6963:7;6952:9;6933:38;:::i;6982:532::-;7064:6;7072;7080;7088;7141:3;7129:9;7120:7;7116:23;7112:33;7109:148;;;7168:79;588:6124:63;;;7168:79:69;7276:38;7306:7;7295:9;7276:38;:::i;:::-;7266:48;;7333:47;7372:7;7367:2;7356:9;7352:18;7333:47;:::i;:::-;7323:57;;7399:45;7436:7;7431:2;7420:9;7416:18;7399:45;:::i;:::-;7389:55;;7463:45;7500:7;7495:2;7484:9;7480:18;7463:45;:::i;7644:95::-;7598:34;7587:46;;7710:22;7519:120;7744:472;7962:3;7947:19;;7975:48;7951:9;8005:6;7975:48;:::i;:::-;8032:46;8074:2;8063:9;8059:18;8051:6;8032:46;:::i;:::-;8087:57;8140:2;8129:9;8125:18;8117:6;8087:57;:::i;:::-;8153;8206:2;8195:9;8191:18;8183:6;8153:57;:::i;:::-;7744:472;;;;;;;:::o;8319:93::-;8299:8;8288:20;;8384:21;8221:93;8417:186;8549:2;8534:18;;8561:36;8538:9;8579:6;8561:36;:::i;8608:516::-;8723:6;8731;8739;8792:2;8780:9;8771:7;8767:23;8763:32;8760:147;;;8818:79;588:6124:63;;;8818:79:69;8926:49;8967:7;8956:9;8926:49;:::i;:::-;8916:59;;8994:58;9044:7;9039:2;9028:9;9024:18;8994:58;:::i;:::-;8984:68;;9071:47;9110:7;9105:2;9094:9;9090:18;9071:47;:::i;9129:369::-;9195:6;9203;9256:2;9244:9;9235:7;9231:23;9227:32;9224:147;;;9282:79;588:6124:63;;;9282:79:69;9390:38;9420:7;9409:9;9390:38;:::i;:::-;9380:48;;9447:45;9484:7;9479:2;9468:9;9464:18;9447:45;:::i;:::-;9437:55;;9129:369;;;;;:::o;9503:283::-;9665:2;9650:18;;9677:37;9654:9;9696:6;9677:37;:::i;:::-;9723:57;9776:2;9765:9;9761:18;9753:6;9723:57;:::i;9791:116::-;5482:13;;5475:21;9863:19;5410:92;9912:170;9999:13;;;10046:30;9999:13;10046:30;:::i;10087:306::-;10154:6;10207:2;10195:9;10186:7;10182:23;10178:32;10175:147;;;10233:79;588:6124:63;;;10233:79:69;10341:46;10379:7;10368:9;10341:46;:::i;10817:948::-;10893:48;10937:3;10929:5;10923:12;10893:48;:::i;:::-;10987:4;10980:5;10976:16;10970:23;11002:59;11055:4;11050:3;11046:14;11032:12;11002:59;:::i;:::-;;11109:4;11102:5;11098:16;11092:23;11124:59;11177:4;11172:3;11168:14;11152;11124:59;:::i;:::-;;11231:4;11224:5;11220:16;11214:23;11246:61;11301:4;11296:3;11292:14;11276;11246:61;:::i;:::-;;11355:4;11348:5;11344:16;11338:23;11370:50;11414:4;11409:3;11405:14;11389;11370:50;:::i;:::-;;11468:4;11461:5;11457:16;11451:23;11483:50;11527:4;11522:3;11518:14;11502;11483:50;:::i;:::-;;11581:4;11574:5;11570:16;11564:23;11596:50;11640:4;11635:3;11631:14;11615;11596:50;:::i;:::-;;11694:4;11687:5;11683:16;11677:23;11709:50;11753:4;11748:3;11744:14;11728;11709:50;:::i;11770:294::-;11986:3;11971:19;;11999:59;11975:9;12040:6;11999:59;:::i;12069:176::-;12159:13;;;12206:33;12159:13;12206:33;:::i;12250:312::-;12320:6;12373:2;12361:9;12352:7;12348:23;12344:32;12341:147;;;12399:79;588:6124:63;;;12399:79:69;12507:49;12548:7;12537:9;12507:49;:::i;12567:184::-;12619:77;12616:1;12609:88;12716:4;12713:1;12706:15;12740:4;12737:1;12730:15;12756:308;12927:13;;;12845:1;12883;12927:13;12992:11;;13013:19;;;13005:28;;12989:45;12979:79;;13038:18;;:::i;:::-;12979:79;;;12756:308;;;;:::o;13069:184::-;13121:77;13118:1;13111:88;13218:4;13215:1;13208:15;13242:4;13239:1;13232:15;13258:202;13298:1;13341;13379;13400:3;13390:37;;13407:18;;:::i;:::-;13441:13;;;13258:202;-1:-1:-1;;;13258:202:69:o;13465:176::-;13555:13;;;13602:33;13555:13;13602:33;:::i;13646:172::-;13734:13;;;13781:31;13734:13;13781:31;:::i;13907:120::-;13893:6;13882:18;;13981:21;13823:79;14032:174;14121:13;;;14168:32;14121:13;14168:32;:::i;14292:118::-;14280:4;14269:16;;14365:20;14211:76;14415:172;14503:13;;;14550:31;14503:13;14550:31;:::i;14592:860::-;14706:6;14714;14722;14730;14738;14746;14754;14807:3;14795:9;14786:7;14782:23;14778:33;14775:148;;;14834:79;588:6124:63;;;14834:79:69;14942:49;14983:7;14972:9;14942:49;:::i;:::-;14932:59;;15010:56;15058:7;15053:2;15042:9;15038:18;15010:56;:::i;:::-;15000:66;;15085:57;15134:7;15129:2;15118:9;15114:18;15085:57;:::i;:::-;15075:67;;15161:57;15210:7;15205:2;15194:9;15190:18;15161:57;:::i;:::-;15151:67;;15237:58;15287:7;15281:3;15270:9;15266:19;15237:58;:::i;:::-;15227:68;;15314:57;15363:7;15357:3;15346:9;15342:19;15314:57;:::i;:::-;15304:67;;15390:56;15438:7;15432:3;15421:9;15417:19;15390:56;:::i;:::-;15380:66;;14592:860;;;;;;;;;;:::o;15457:122::-;15532:22;15548:5;15532:22;:::i;15584:176::-;15674:13;;;15721:33;15674:13;15721:33;:::i;15765:312::-;15835:6;15888:2;15876:9;15867:7;15863:23;15859:32;15856:147;;;15914:79;588:6124:63;;;15914:79:69;16022:49;16063:7;16052:9;16022:49;:::i;16082:257::-;93:42;82:54;;;;;;16193:28;;;;16256:54;;16253:80;;;16313:18;;:::i;16344:252::-;93:42;82:54;;;;;;16453:28;;;;16514:53;;16511:79;;;16570:18;;:::i;16927:262::-;17046:2;16688:19;;16974:3;16740:4;16731:14;;16891:24;16876:40;;17058:95;17180:2;17169:14;;16927:262;-1:-1:-1;;16927:262:69:o;17334:261::-;17453:1;16688:19;;17381:3;16740:4;16731:14;;17321:5;17306:21;;17464:95;17194:135;17676:146;17728:9;14280:4;14269:16;;17765:51;14211:76;17827:125;17906:39;17939:5;17906:39;:::i;17957:600::-;18295:2;18284:9;18277:21;18258:4;18321:49;18366:2;18355:9;18351:18;18321:49;:::i;:::-;18418:9;18410:6;18406:22;18401:2;18390:9;18386:18;18379:50;18446:37;18476:6;18446:37;:::i;:::-;18438:45;;;18492:59;18547:2;18536:9;18532:18;18524:6;18492:59;:::i;18727:262::-;18846:2;16688:19;;18774:3;16740:4;16731:14;;18697:18;18682:34;;18858:95;18562:160;19135:261;19254:1;16688:19;;19182:3;16740:4;16731:14;;19121:6;19106:22;;19265:95;18994:136;19745:590;20082:2;20071:9;20064:21;20045:4;20108:49;20153:2;20142:9;20138:18;20108:49;:::i;:::-;20205:9;20197:6;20193:22;20188:2;20177:9;20173:18;20166:50;20233:37;20263:6;20233:37;:::i;20340:447::-;20556:3;20541:19;;20569:37;20545:9;20588:6;20569:37;:::i;:::-;20615:46;20657:2;20646:9;20642:18;20634:6;20615:46;:::i;:::-;20670:45;20711:2;20700:9;20696:18;20688:6;20670:45;:::i;:::-;20724:57;20777:2;20766:9;20762:18;20754:6;20724:57;:::i;20792:238::-;20826:3;20859:20;20873:5;4641:1;4630:20;;4564:92;20859:20;20903:66;20894:7;20891:79;20888:105;;20973:18;;:::i;:::-;21013:1;21009:15;;20792:238;-1:-1:-1;;20792:238:69:o;21035:303::-;21073:4;21103:16;21117:1;4641;4630:20;;4564:92;21103:16;21151;21165:1;4641;4630:20;;4564:92;21151:16;21142:26;;;-1:-1:-1;21142:26:69;21218:66;21206:79;;21299:8;21287:21;;21203:106;21200:132;;;21312:18;;:::i;21343:297::-;21381:3;21410:16;21424:1;4641;4630:20;;4564:92;21410:16;21457;21471:1;4641;4630:20;;4564:92;21457:16;21448:26;;-1:-1:-1;21448:26:69;21521:8;21510:20;;21543:66;21532:78;;21507:104;21504:130;;;21614:18;;:::i;21726:250::-;21811:1;21821:113;21835:6;21832:1;21829:13;21821:113;;;21911:11;;;21905:18;21892:11;;;21885:39;21857:2;21850:10;21821:113;;;-1:-1:-1;;21968:1:69;21950:16;;21943:27;21726:250::o;22148:306::-;22190:3;22222:26;22242:5;21707:12;;21645:76;22222:26;16688:19;;;16740:4;16731:14;;22327:67;22387:6;22380:5;22373:4;22366:5;22362:16;22327:67;:::i;:::-;22070:66;22065:2;22054:14;;22050:87;22410:38;;22148:306;-1:-1:-1;;;;22148:306:69:o;22459:220::-;22608:2;22597:9;22590:21;22571:4;22628:45;22669:2;22658:9;22654:18;22646:6;22628:45;:::i;22684:308::-;22752:6;22805:2;22793:9;22784:7;22780:23;22776:32;22773:147;;;22831:79;588:6124:63;;;22831:79:69;22939:47;22978:7;22967:9;22939:47;:::i;22997:91::-;23061:20;23075:5;4641:1;4630:20;;4564:92;23093:268;23255:2;23240:18;;23267:35;23244:9;23284:6;23267:35;:::i;:::-;23311:44;23351:2;23340:9;23336:18;23328:6;23311:44;:::i;23471:1301::-;23535:48;23579:3;23571:5;23565:12;23535:48;:::i;:::-;23629:4;23622:5;23618:16;23612:23;23644:59;23697:4;23692:3;23688:14;23674:12;23644:59;:::i;:::-;;23751:4;23744:5;23740:16;23734:23;23766:59;23819:4;23814:3;23810:14;23794;23766:59;:::i;:::-;;23873:4;23866:5;23862:16;23856:23;23888:57;23939:4;23934:3;23930:14;23914;23888:57;:::i;:::-;;23993:4;23986:5;23982:16;23976:23;24008:57;24059:4;24054:3;24050:14;24034;24008:57;:::i;:::-;;24113:4;24106:5;24102:16;24096:23;24128:50;24172:4;24167:3;24163:14;24147;24128:50;:::i;:::-;;24226:4;24219:5;24215:16;24209:23;24241:50;24285:4;24280:3;24276:14;24260;24241:50;:::i;:::-;;24339:4;24332:5;24328:16;24322:23;24354:50;24398:4;24393:3;24389:14;24373;24354:50;:::i;:::-;;24452:6;24445:5;24441:18;24435:25;24469:52;24513:6;24508:3;24504:16;24488:14;24469:52;:::i;:::-;;24569:6;24562:5;24558:18;24552:25;24586:63;24641:6;24636:3;24632:16;24616:14;24586:63;:::i;:::-;;24697:6;24690:5;24686:18;24680:25;24714:52;24758:6;24753:3;24749:16;24733:14;24714:52;:::i;24777:258::-;24969:3;24954:19;;24982:47;24958:9;25011:6;24982:47;:::i;25040:122::-;7598:34;7587:46;;25115:22;7519:120;25167:176;25257:13;;;25304:33;25257:13;25304:33;:::i;25348:595::-;25445:6;25453;25461;25469;25522:3;25510:9;25501:7;25497:23;25493:33;25490:148;;;25549:79;588:6124:63;;;25549:79:69;25657:49;25698:7;25687:9;25657:49;:::i;:::-;25647:59;;25725:58;25775:7;25770:2;25759:9;25755:18;25725:58;:::i;:::-;25715:68;;25802:58;25852:7;25847:2;25836:9;25832:18;25802:58;:::i;:::-;25792:68;;25879:58;25929:7;25924:2;25913:9;25909:18;25879:58;:::i",
|
|
"linkReferences": {
|
|
"src/Util.sol": {
|
|
"Util": [
|
|
{
|
|
"start": 5287,
|
|
"length": 20
|
|
},
|
|
{
|
|
"start": 5442,
|
|
"length": 20
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"methodIdentifiers": {
|
|
"COIN()": "a54a72b7",
|
|
"USD()": "1bf6c21b",
|
|
"fee()": "ddca3f43",
|
|
"init()": "e1c7392a",
|
|
"inverted()": "67e368fc",
|
|
"nfpm()": "7303e913",
|
|
"pool()": "16f0115b",
|
|
"price()": "a035b1fe",
|
|
"stake(uint256,int24)": "e3baf41a",
|
|
"stake(uint256,int24,int24)": "53486e2f",
|
|
"stake(uint256,uint256,int24,int24)": "d6f13002",
|
|
"swap(address,address,uint256)": "df791e50",
|
|
"swap(address,address,uint256,uint160)": "4a09d3dd",
|
|
"swapToPrice(uint160)": "c578d91d",
|
|
"swapper()": "2b3297f9",
|
|
"token0()": "0dfe1681",
|
|
"token1()": "d21220a7"
|
|
},
|
|
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"COIN\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USD\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inverted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"coinAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"width\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapper\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MockEnv.sol\":\"MockEnv\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/Constants.sol\":{\"keccak256\":\"0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418\",\"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds\"]},\"src/MockERC20.sol\":{\"keccak256\":\"0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089\",\"urls\":[\"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4\",\"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK\"]},\"src/Util.sol\":{\"keccak256\":\"0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80\",\"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368\",\"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V\"]}},\"version\":1}",
|
|
"metadata": {
|
|
"compiler": {
|
|
"version": "0.8.22+commit.4fc1097e"
|
|
},
|
|
"language": "Solidity",
|
|
"output": {
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "COIN",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "USD",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "fee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint24",
|
|
"name": "",
|
|
"type": "uint24"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "init"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "inverted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "nfpm",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract INonfungiblePositionManager",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "pool",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IUniswapV3Pool",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "price",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceX96",
|
|
"type": "uint160"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "lower",
|
|
"type": "int24"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "upper",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "stake"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "coinAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "usdAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "lower",
|
|
"type": "int24"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "upper",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "stake",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "tokenId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint128",
|
|
"name": "liquidity",
|
|
"type": "uint128"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount0",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount1",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "int24",
|
|
"name": "width",
|
|
"type": "int24"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "stake"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "inToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "outToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceLimitX96",
|
|
"type": "uint160"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "swap",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "inToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract MockERC20",
|
|
"name": "outToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "swap",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint160",
|
|
"name": "sqrtPriceLimitX96",
|
|
"type": "uint160"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "swapToPrice"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "swapper",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract ISwapRouter",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "token0",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "token1",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
},
|
|
"settings": {
|
|
"remappings": [
|
|
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
|
|
"@uniswap/v3-core/=lib_uniswap/v3-core/",
|
|
"@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
|
|
"ds-test/=lib/forge-std/lib/ds-test/src/",
|
|
"forge-std/=lib/forge-std/src/",
|
|
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
|
|
"v3-core/=lib_uniswap/v3-core/",
|
|
"v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
|
|
],
|
|
"optimizer": {
|
|
"runs": 999999999,
|
|
"details": {
|
|
"peephole": true,
|
|
"inliner": true,
|
|
"jumpdestRemover": true,
|
|
"orderLiterals": true,
|
|
"deduplicate": true,
|
|
"cse": true,
|
|
"constantOptimizer": true,
|
|
"yul": true,
|
|
"yulDetails": {
|
|
"stackAllocation": true,
|
|
"optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"bytecodeHash": "ipfs"
|
|
},
|
|
"compilationTarget": {
|
|
"test/MockEnv.sol": "MockEnv"
|
|
},
|
|
"libraries": {}
|
|
},
|
|
"sources": {
|
|
"lib/forge-std/src/console2.sol": {
|
|
"keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea",
|
|
"urls": [
|
|
"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973",
|
|
"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": {
|
|
"keccak256": "0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d",
|
|
"urls": [
|
|
"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d",
|
|
"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
|
|
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
|
|
"urls": [
|
|
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
|
|
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
|
|
"keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca",
|
|
"urls": [
|
|
"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd",
|
|
"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
|
|
"keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68",
|
|
"urls": [
|
|
"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56",
|
|
"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": {
|
|
"keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf",
|
|
"urls": [
|
|
"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34",
|
|
"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
|
|
"keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
|
|
"urls": [
|
|
"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
|
|
"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/utils/Context.sol": {
|
|
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
|
|
"urls": [
|
|
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
|
|
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
|
|
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
|
|
"urls": [
|
|
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
|
|
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": {
|
|
"keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489",
|
|
"urls": [
|
|
"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2",
|
|
"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol": {
|
|
"keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1",
|
|
"urls": [
|
|
"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5",
|
|
"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": {
|
|
"keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69",
|
|
"urls": [
|
|
"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652",
|
|
"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": {
|
|
"keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634",
|
|
"urls": [
|
|
"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5",
|
|
"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": {
|
|
"keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5",
|
|
"urls": [
|
|
"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7",
|
|
"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": {
|
|
"keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd",
|
|
"urls": [
|
|
"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03",
|
|
"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": {
|
|
"keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7",
|
|
"urls": [
|
|
"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047",
|
|
"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": {
|
|
"keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235",
|
|
"urls": [
|
|
"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735",
|
|
"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": {
|
|
"keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f",
|
|
"urls": [
|
|
"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f",
|
|
"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol": {
|
|
"keccak256": "0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032",
|
|
"urls": [
|
|
"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d",
|
|
"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/FullMath.sol": {
|
|
"keccak256": "0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be",
|
|
"urls": [
|
|
"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d",
|
|
"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/TickMath.sol": {
|
|
"keccak256": "0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d",
|
|
"urls": [
|
|
"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3",
|
|
"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol": {
|
|
"keccak256": "0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4",
|
|
"urls": [
|
|
"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471",
|
|
"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol": {
|
|
"keccak256": "0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984",
|
|
"urls": [
|
|
"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56",
|
|
"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": {
|
|
"keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d",
|
|
"urls": [
|
|
"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f",
|
|
"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
|
|
"keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
|
|
"urls": [
|
|
"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
|
|
"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": {
|
|
"keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862",
|
|
"urls": [
|
|
"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f",
|
|
"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": {
|
|
"keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975",
|
|
"urls": [
|
|
"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53",
|
|
"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol": {
|
|
"keccak256": "0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24",
|
|
"urls": [
|
|
"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844",
|
|
"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol": {
|
|
"keccak256": "0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4",
|
|
"urls": [
|
|
"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48",
|
|
"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"src/Constants.sol": {
|
|
"keccak256": "0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f",
|
|
"urls": [
|
|
"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418",
|
|
"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/MockERC20.sol": {
|
|
"keccak256": "0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089",
|
|
"urls": [
|
|
"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4",
|
|
"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK"
|
|
],
|
|
"license": null
|
|
},
|
|
"src/Util.sol": {
|
|
"keccak256": "0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad",
|
|
"urls": [
|
|
"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80",
|
|
"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"test/MockEnv.sol": {
|
|
"keccak256": "0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b",
|
|
"urls": [
|
|
"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368",
|
|
"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V"
|
|
],
|
|
"license": "UNLICENSED"
|
|
}
|
|
},
|
|
"version": 1
|
|
},
|
|
"ast": {
|
|
"absolutePath": "test/MockEnv.sol",
|
|
"id": 50070,
|
|
"exportedSymbols": {
|
|
"Constants": [
|
|
46264
|
|
],
|
|
"Context": [
|
|
43777
|
|
],
|
|
"ERC20": [
|
|
43478
|
|
],
|
|
"FixedPoint96": [
|
|
44338
|
|
],
|
|
"FullMath": [
|
|
44519
|
|
],
|
|
"IERC165": [
|
|
43789
|
|
],
|
|
"IERC20": [
|
|
43556
|
|
],
|
|
"IERC20Metadata": [
|
|
43581
|
|
],
|
|
"IERC721": [
|
|
43697
|
|
],
|
|
"IERC721Enumerable": [
|
|
43728
|
|
],
|
|
"IERC721Metadata": [
|
|
43755
|
|
],
|
|
"IERC721Permit": [
|
|
45094
|
|
],
|
|
"INonfungiblePositionManager": [
|
|
45293
|
|
],
|
|
"IPeripheryImmutableState": [
|
|
45309
|
|
],
|
|
"IPeripheryPayments": [
|
|
45335
|
|
],
|
|
"IPoolInitializer": [
|
|
45354
|
|
],
|
|
"ISwapRouter": [
|
|
45454
|
|
],
|
|
"IUniswapV3Factory": [
|
|
43872
|
|
],
|
|
"IUniswapV3Pool": [
|
|
43894
|
|
],
|
|
"IUniswapV3PoolActions": [
|
|
44004
|
|
],
|
|
"IUniswapV3PoolDerivedState": [
|
|
44035
|
|
],
|
|
"IUniswapV3PoolEvents": [
|
|
44154
|
|
],
|
|
"IUniswapV3PoolImmutables": [
|
|
44194
|
|
],
|
|
"IUniswapV3PoolOwnerActions": [
|
|
44220
|
|
],
|
|
"IUniswapV3PoolState": [
|
|
44328
|
|
],
|
|
"IUniswapV3SwapCallback": [
|
|
43908
|
|
],
|
|
"LiquidityAmounts": [
|
|
45794
|
|
],
|
|
"MockERC20": [
|
|
46478
|
|
],
|
|
"MockEnv": [
|
|
50069
|
|
],
|
|
"PoolAddress": [
|
|
45892
|
|
],
|
|
"TickMath": [
|
|
45059
|
|
],
|
|
"Util": [
|
|
48904
|
|
],
|
|
"console2": [
|
|
29653
|
|
]
|
|
},
|
|
"nodeType": "SourceUnit",
|
|
"src": "65:6648:63",
|
|
"nodes": [
|
|
{
|
|
"id": 49447,
|
|
"nodeType": "PragmaDirective",
|
|
"src": "65:24:63",
|
|
"nodes": [],
|
|
"literals": [
|
|
"solidity",
|
|
">=",
|
|
"0.8",
|
|
".0"
|
|
]
|
|
},
|
|
{
|
|
"id": 49448,
|
|
"nodeType": "PragmaDirective",
|
|
"src": "90:19:63",
|
|
"nodes": [],
|
|
"literals": [
|
|
"abicoder",
|
|
"v2"
|
|
]
|
|
},
|
|
{
|
|
"id": 49449,
|
|
"nodeType": "ImportDirective",
|
|
"src": "111:32:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib/forge-std/src/console2.sol",
|
|
"file": "forge-std/console2.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 29654,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49450,
|
|
"nodeType": "ImportDirective",
|
|
"src": "144:30:63",
|
|
"nodes": [],
|
|
"absolutePath": "src/MockERC20.sol",
|
|
"file": "../src/MockERC20.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 46479,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49451,
|
|
"nodeType": "ImportDirective",
|
|
"src": "175:25:63",
|
|
"nodes": [],
|
|
"absolutePath": "src/Util.sol",
|
|
"file": "../src/Util.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 48905,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49452,
|
|
"nodeType": "ImportDirective",
|
|
"src": "201:30:63",
|
|
"nodes": [],
|
|
"absolutePath": "src/Constants.sol",
|
|
"file": "../src/Constants.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 46265,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49453,
|
|
"nodeType": "ImportDirective",
|
|
"src": "232:66:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
|
|
"file": "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 43895,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49454,
|
|
"nodeType": "ImportDirective",
|
|
"src": "299:59:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib_uniswap/v3-core/contracts/libraries/TickMath.sol",
|
|
"file": "@uniswap/v3-core/contracts/libraries/TickMath.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 45060,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49455,
|
|
"nodeType": "ImportDirective",
|
|
"src": "359:84:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol",
|
|
"file": "@uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 45294,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49456,
|
|
"nodeType": "ImportDirective",
|
|
"src": "444:68:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol",
|
|
"file": "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 45455,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 49457,
|
|
"nodeType": "ImportDirective",
|
|
"src": "513:72:63",
|
|
"nodes": [],
|
|
"absolutePath": "lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol",
|
|
"file": "@uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 50070,
|
|
"sourceUnit": 45795,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 50069,
|
|
"nodeType": "ContractDefinition",
|
|
"src": "588:6124:63",
|
|
"nodes": [
|
|
{
|
|
"id": 49462,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "612:87:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "7303e913",
|
|
"mutability": "mutable",
|
|
"name": "nfpm",
|
|
"nameLocation": "647:4:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
},
|
|
"typeName": {
|
|
"id": 49459,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49458,
|
|
"name": "INonfungiblePositionManager",
|
|
"nameLocations": [
|
|
"612:27:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 45293,
|
|
"src": "612:27:63"
|
|
},
|
|
"referencedDeclaration": 45293,
|
|
"src": "612:27:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
},
|
|
"value": {
|
|
"expression": {
|
|
"id": 49460,
|
|
"name": "Constants",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46264,
|
|
"src": "654:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Constants_$46264_$",
|
|
"typeString": "type(library Constants)"
|
|
}
|
|
},
|
|
"id": 49461,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "664:35:63",
|
|
"memberName": "uniswapV3NonfungiblePositionManager",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46254,
|
|
"src": "654:45:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49467,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "705:58:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "2b3297f9",
|
|
"mutability": "mutable",
|
|
"name": "swapper",
|
|
"nameLocation": "724:7:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
},
|
|
"typeName": {
|
|
"id": 49464,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49463,
|
|
"name": "ISwapRouter",
|
|
"nameLocations": [
|
|
"705:11:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 45454,
|
|
"src": "705:11:63"
|
|
},
|
|
"referencedDeclaration": 45454,
|
|
"src": "705:11:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
}
|
|
},
|
|
"value": {
|
|
"expression": {
|
|
"id": 49465,
|
|
"name": "Constants",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46264,
|
|
"src": "734:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Constants_$46264_$",
|
|
"typeString": "type(library Constants)"
|
|
}
|
|
},
|
|
"id": 49466,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "744:19:63",
|
|
"memberName": "uniswapV3SwapRouter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46260,
|
|
"src": "734:29:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49470,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "769:26:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "16f0115b",
|
|
"mutability": "mutable",
|
|
"name": "pool",
|
|
"nameLocation": "791:4:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
},
|
|
"typeName": {
|
|
"id": 49469,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49468,
|
|
"name": "IUniswapV3Pool",
|
|
"nameLocations": [
|
|
"769:14:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 43894,
|
|
"src": "769:14:63"
|
|
},
|
|
"referencedDeclaration": 43894,
|
|
"src": "769:14:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49472,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "801:17:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "ddca3f43",
|
|
"mutability": "mutable",
|
|
"name": "fee",
|
|
"nameLocation": "815:3:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
},
|
|
"typeName": {
|
|
"id": 49471,
|
|
"name": "uint24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "801:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49475,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "824:21:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "a54a72b7",
|
|
"mutability": "mutable",
|
|
"name": "COIN",
|
|
"nameLocation": "841:4:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49474,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49473,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"824:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "824:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "824:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49478,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "851:20:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "1bf6c21b",
|
|
"mutability": "mutable",
|
|
"name": "USD",
|
|
"nameLocation": "868:3:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49477,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49476,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"851:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "851:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "851:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49480,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "877:21:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "0dfe1681",
|
|
"mutability": "mutable",
|
|
"name": "token0",
|
|
"nameLocation": "892:6:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 49479,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "877:7:63",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49482,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "961:21:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "d21220a7",
|
|
"mutability": "mutable",
|
|
"name": "token1",
|
|
"nameLocation": "976:6:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 49481,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "961:7:63",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49484,
|
|
"nodeType": "VariableDeclaration",
|
|
"src": "988:20:63",
|
|
"nodes": [],
|
|
"constant": false,
|
|
"functionSelector": "67e368fc",
|
|
"mutability": "mutable",
|
|
"name": "inverted",
|
|
"nameLocation": "1000:8:63",
|
|
"scope": 50069,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 49483,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "988:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49634,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "1349:1125:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49633,
|
|
"nodeType": "Block",
|
|
"src": "1372:1102:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"id": 49495,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49487,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "1382:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "4d6f636b20457468657265756d2048617264666f726b",
|
|
"id": 49491,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1403:24:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_61bca07db2491f9e6530a587e4a3b3d24366afe94d6b7a43f109208d06ad1623",
|
|
"typeString": "literal_string \"Mock Ethereum Hardfork\""
|
|
},
|
|
"value": "Mock Ethereum Hardfork"
|
|
},
|
|
{
|
|
"hexValue": "4d4548",
|
|
"id": 49492,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1429:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f6cdb29c65e7a85181f8b7be06d65a4f4c2350d0c1bddc8cde3fbff5a30301b0",
|
|
"typeString": "literal_string \"MEH\""
|
|
},
|
|
"value": "MEH"
|
|
},
|
|
{
|
|
"hexValue": "3138",
|
|
"id": 49493,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1436:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_18_by_1",
|
|
"typeString": "int_const 18"
|
|
},
|
|
"value": "18"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_61bca07db2491f9e6530a587e4a3b3d24366afe94d6b7a43f109208d06ad1623",
|
|
"typeString": "literal_string \"Mock Ethereum Hardfork\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f6cdb29c65e7a85181f8b7be06d65a4f4c2350d0c1bddc8cde3fbff5a30301b0",
|
|
"typeString": "literal_string \"MEH\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_18_by_1",
|
|
"typeString": "int_const 18"
|
|
}
|
|
],
|
|
"id": 49490,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "1389:13:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "function (string memory,string memory,uint8) returns (contract MockERC20)"
|
|
},
|
|
"typeName": {
|
|
"id": 49489,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49488,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"1393:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "1393:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "1393:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
},
|
|
"id": 49494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1389:50:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"src": "1382:57:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49496,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1382:57:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "4d4548",
|
|
"id": 49500,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1462:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f6cdb29c65e7a85181f8b7be06d65a4f4c2350d0c1bddc8cde3fbff5a30301b0",
|
|
"typeString": "literal_string \"MEH\""
|
|
},
|
|
"value": "MEH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f6cdb29c65e7a85181f8b7be06d65a4f4c2350d0c1bddc8cde3fbff5a30301b0",
|
|
"typeString": "literal_string \"MEH\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49497,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "1449:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "1458:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "1449:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49501,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1449:19:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49502,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1449:19:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49508,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "1499:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49507,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1491:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49506,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1491:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49509,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1491:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49503,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "1478:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49505,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "1487:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "1478:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 49510,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1478:27:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49511,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1478:27:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49512,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "1515:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "4a6f6b652043757272656e6379205844",
|
|
"id": 49516,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1535:18:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_a9de8145b56d0950b3b524db38ddd94ed49e940bef354525a4fce23b44e03c08",
|
|
"typeString": "literal_string \"Joke Currency XD\""
|
|
},
|
|
"value": "Joke Currency XD"
|
|
},
|
|
{
|
|
"hexValue": "55535844",
|
|
"id": 49517,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1555:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_6eb017ee881f4249a2beb44d6865a54ed1b2d9382b523427c1bb679fc16e4336",
|
|
"typeString": "literal_string \"USXD\""
|
|
},
|
|
"value": "USXD"
|
|
},
|
|
{
|
|
"hexValue": "36",
|
|
"id": 49518,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1563:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_6_by_1",
|
|
"typeString": "int_const 6"
|
|
},
|
|
"value": "6"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_a9de8145b56d0950b3b524db38ddd94ed49e940bef354525a4fce23b44e03c08",
|
|
"typeString": "literal_string \"Joke Currency XD\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_6eb017ee881f4249a2beb44d6865a54ed1b2d9382b523427c1bb679fc16e4336",
|
|
"typeString": "literal_string \"USXD\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_6_by_1",
|
|
"typeString": "int_const 6"
|
|
}
|
|
],
|
|
"id": 49515,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "1521:13:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "function (string memory,string memory,uint8) returns (contract MockERC20)"
|
|
},
|
|
"typeName": {
|
|
"id": 49514,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49513,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"1525:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "1525:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "1525:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
},
|
|
"id": 49519,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1521:44:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"src": "1515:50:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49521,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1515:50:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "55535844",
|
|
"id": 49525,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1588:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_6eb017ee881f4249a2beb44d6865a54ed1b2d9382b523427c1bb679fc16e4336",
|
|
"typeString": "literal_string \"USXD\""
|
|
},
|
|
"value": "USXD"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_6eb017ee881f4249a2beb44d6865a54ed1b2d9382b523427c1bb679fc16e4336",
|
|
"typeString": "literal_string \"USXD\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49522,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "1575:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49524,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "1584:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "1575:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1575:20:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49527,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1575:20:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49533,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "1626:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49532,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1618:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49531,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1618:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49534,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1618:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49528,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "1605:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49530,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "1614:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "1605:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 49535,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1605:26:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49536,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1605:26:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49537,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49472,
|
|
"src": "1641:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"hexValue": "353030",
|
|
"id": 49538,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1647:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_500_by_1",
|
|
"typeString": "int_const 500"
|
|
},
|
|
"value": "500"
|
|
},
|
|
"src": "1641:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
"id": 49540,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1641:9:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49551,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49541,
|
|
"name": "inverted",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49484,
|
|
"src": "1660:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 49550,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49544,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "1679:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49543,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1671:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49542,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1671:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49545,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1671:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49548,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "1695:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49547,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1687:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49546,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1687:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49549,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1687:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "1671:28:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1660:39:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 49552,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1660:39:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49564,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49553,
|
|
"name": "token0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49480,
|
|
"src": "1709:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"condition": {
|
|
"id": 49554,
|
|
"name": "inverted",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49484,
|
|
"src": "1718:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49561,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "1752:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49560,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1744:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49559,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1744:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1744:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 49563,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "1718:39:63",
|
|
"trueExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49557,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "1737:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49556,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1729:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49555,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1729:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49558,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1729:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "1709:48:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 49565,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1709:48:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49566,
|
|
"name": "token1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49482,
|
|
"src": "1767:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"condition": {
|
|
"id": 49567,
|
|
"name": "inverted",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49484,
|
|
"src": "1776:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49574,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "1811:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49573,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1803:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49572,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1803:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49575,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1803:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 49576,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "1776:39:63",
|
|
"trueExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49570,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "1795:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49569,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1787:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49568,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1787:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49571,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1787:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "1767:48:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 49578,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1767:48:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
49580
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49580,
|
|
"mutability": "mutable",
|
|
"name": "initialPrice",
|
|
"nameLocation": "1833:12:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49633,
|
|
"src": "1825:20:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 49579,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1825:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49591,
|
|
"initialValue": {
|
|
"condition": {
|
|
"id": 49581,
|
|
"name": "inverted",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49484,
|
|
"src": "1848:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "3739323238313632353134323634333337353933353433",
|
|
"id": 49588,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1914:23:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_79228162514264337593543_by_1",
|
|
"typeString": "int_const 79228162514264337593543"
|
|
},
|
|
"value": "79228162514264337593543"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_79228162514264337593543_by_1",
|
|
"typeString": "int_const 79228162514264337593543"
|
|
}
|
|
],
|
|
"id": 49587,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1906:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint160_$",
|
|
"typeString": "type(uint160)"
|
|
},
|
|
"typeName": {
|
|
"id": 49586,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1906:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49589,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1906:32:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"id": 49590,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "1848:90:63",
|
|
"trueExpression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "3739323238313632353134323634333337353933353433393530333336303030303030",
|
|
"id": 49584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1867:35:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_79228162514264337593543950336000000_by_1",
|
|
"typeString": "int_const 7922...(27 digits omitted)...0000"
|
|
},
|
|
"value": "79228162514264337593543950336000000"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_79228162514264337593543950336000000_by_1",
|
|
"typeString": "int_const 7922...(27 digits omitted)...0000"
|
|
}
|
|
],
|
|
"id": 49583,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1859:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint160_$",
|
|
"typeString": "type(uint160)"
|
|
},
|
|
"typeName": {
|
|
"id": 49582,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1859:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49585,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1859:44:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1825:113:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "6966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726c",
|
|
"id": 49595,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1970:85:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_0cc9589f025949272eee97584d99d697e1f21c72bb04afb39d18d0c40805bc23",
|
|
"typeString": "literal_string \"if this is the last line before a revert then make sure to run forge with --rpc-url\""
|
|
},
|
|
"value": "if this is the last line before a revert then make sure to run forge with --rpc-url"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_0cc9589f025949272eee97584d99d697e1f21c72bb04afb39d18d0c40805bc23",
|
|
"typeString": "literal_string \"if this is the last line before a revert then make sure to run forge with --rpc-url\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49592,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "1957:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49594,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "1966:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "1957:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49596,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1957:99:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49597,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1957:99:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49608,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49598,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "2166:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49602,
|
|
"name": "token0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49480,
|
|
"src": "2228:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49603,
|
|
"name": "token1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49482,
|
|
"src": "2236:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49604,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49472,
|
|
"src": "2244:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49605,
|
|
"name": "initialPrice",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49580,
|
|
"src": "2249:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49600,
|
|
"name": "nfpm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49462,
|
|
"src": "2188:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
},
|
|
"id": 49601,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2193:34:63",
|
|
"memberName": "createAndInitializePoolIfNecessary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 45353,
|
|
"src": "2188:39:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_address_$_t_address_$_t_uint24_$_t_uint160_$returns$_t_address_$",
|
|
"typeString": "function (address,address,uint24,uint160) payable external returns (address)"
|
|
}
|
|
},
|
|
"id": 49606,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2188:74:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 49599,
|
|
"name": "IUniswapV3Pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 43894,
|
|
"src": "2173:14:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IUniswapV3Pool_$43894_$",
|
|
"typeString": "type(contract IUniswapV3Pool)"
|
|
}
|
|
},
|
|
"id": 49607,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2173:90:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"src": "2166:97:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"id": 49609,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2166:97:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "763320706f6f6c",
|
|
"id": 49613,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2286:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_b5f3ea675d56207132fbaf36b6d49a13e93d56308e585769e46d4a5e8b76e036",
|
|
"typeString": "literal_string \"v3 pool\""
|
|
},
|
|
"value": "v3 pool"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_b5f3ea675d56207132fbaf36b6d49a13e93d56308e585769e46d4a5e8b76e036",
|
|
"typeString": "literal_string \"v3 pool\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49610,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "2273:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49612,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2282:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "2273:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49614,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2273:23:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49615,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2273:23:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49621,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "2327:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
],
|
|
"id": 49620,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2319:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49619,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2319:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49622,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2319:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49616,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "2306:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49618,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2315:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "2306:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 49623,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2306:27:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49624,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2306:27:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "31305f3030305f303030",
|
|
"id": 49626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2418:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10000000_by_1",
|
|
"typeString": "int_const 10000000"
|
|
},
|
|
"value": "10_000_000"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49627,
|
|
"name": "TickMath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45059,
|
|
"src": "2430:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_TickMath_$45059_$",
|
|
"typeString": "type(library TickMath)"
|
|
}
|
|
},
|
|
"id": 49628,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2439:8:63",
|
|
"memberName": "MIN_TICK",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44527,
|
|
"src": "2430:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49629,
|
|
"name": "TickMath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45059,
|
|
"src": "2449:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_TickMath_$45059_$",
|
|
"typeString": "type(library TickMath)"
|
|
}
|
|
},
|
|
"id": 49630,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2458:8:63",
|
|
"memberName": "MAX_TICK",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44532,
|
|
"src": "2449:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_10000000_by_1",
|
|
"typeString": "int_const 10000000"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"id": 49625,
|
|
"name": "stake",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
49664,
|
|
49701,
|
|
49728
|
|
],
|
|
"referencedDeclaration": 49701,
|
|
"src": "2412:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_int24_$_t_int24_$returns$__$",
|
|
"typeString": "function (uint256,int24,int24)"
|
|
}
|
|
},
|
|
"id": 49631,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2412:55:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49632,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2412:55:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "e1c7392a",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "init",
|
|
"nameLocation": "1358:4:63",
|
|
"parameters": {
|
|
"id": 49485,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1362:2:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49486,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1372:0:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49664,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "2481:179:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49663,
|
|
"nodeType": "Block",
|
|
"src": "2532:128:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"commonType": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"id": 49644,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 49642,
|
|
"name": "width",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49638,
|
|
"src": "2550:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"hexValue": "30",
|
|
"id": 49643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2556:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2550:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 49641,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "2542:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 49645,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2542:16:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49646,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2542:16:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
null,
|
|
49648,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"declarations": [
|
|
null,
|
|
{
|
|
"constant": false,
|
|
"id": 49648,
|
|
"mutability": "mutable",
|
|
"name": "tick",
|
|
"nameLocation": "2577:4:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49663,
|
|
"src": "2571:10:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49647,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2571:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 49652,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"id": 49649,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "2594:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"id": 49650,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "2599:5:63",
|
|
"memberName": "slot0",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44241,
|
|
"src": "2594:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
|
|
"typeString": "function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"
|
|
}
|
|
},
|
|
"id": 49651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2594:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
|
|
"typeString": "tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2568:38:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49654,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49636,
|
|
"src": "2622:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"commonType": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"id": 49657,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 49655,
|
|
"name": "tick",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49648,
|
|
"src": "2630:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"id": 49656,
|
|
"name": "width",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49638,
|
|
"src": "2635:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"src": "2630:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"commonType": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"id": 49660,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 49658,
|
|
"name": "tick",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49648,
|
|
"src": "2642:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"id": 49659,
|
|
"name": "width",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49638,
|
|
"src": "2647:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"src": "2642:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"id": 49653,
|
|
"name": "stake",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
49664,
|
|
49701,
|
|
49728
|
|
],
|
|
"referencedDeclaration": 49701,
|
|
"src": "2616:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_int24_$_t_int24_$returns$__$",
|
|
"typeString": "function (uint256,int24,int24)"
|
|
}
|
|
},
|
|
"id": 49661,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2616:37:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49662,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2616:37:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "e3baf41a",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "stake",
|
|
"nameLocation": "2490:5:63",
|
|
"parameters": {
|
|
"id": 49639,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49636,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "2504:6:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49664,
|
|
"src": "2496:14:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49635,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2496:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49638,
|
|
"mutability": "mutable",
|
|
"name": "width",
|
|
"nameLocation": "2518:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49664,
|
|
"src": "2512:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49637,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2512:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2495:29:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49640,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "2532:0:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49701,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "2667:221:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49700,
|
|
"nodeType": "Block",
|
|
"src": "2731:157:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
49674
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49674,
|
|
"mutability": "mutable",
|
|
"name": "coinAmount",
|
|
"nameLocation": "2749:10:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49700,
|
|
"src": "2741:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49673,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2741:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49682,
|
|
"initialValue": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 49681,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 49679,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 49675,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49666,
|
|
"src": "2762:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "*",
|
|
"rightExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_rational_1000000000000000000_by_1",
|
|
"typeString": "int_const 1000000000000000000"
|
|
},
|
|
"id": 49678,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"hexValue": "3130",
|
|
"id": 49676,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2771:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10_by_1",
|
|
"typeString": "int_const 10"
|
|
},
|
|
"value": "10"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "**",
|
|
"rightExpression": {
|
|
"hexValue": "3138",
|
|
"id": 49677,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2775:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_18_by_1",
|
|
"typeString": "int_const 18"
|
|
},
|
|
"value": "18"
|
|
},
|
|
"src": "2771:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000000000000000_by_1",
|
|
"typeString": "int_const 1000000000000000000"
|
|
}
|
|
},
|
|
"src": "2762:15:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"hexValue": "32",
|
|
"id": 49680,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2780:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "2762:19:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2741:40:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
49684
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49684,
|
|
"mutability": "mutable",
|
|
"name": "usdAmount",
|
|
"nameLocation": "2799:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49700,
|
|
"src": "2791:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49683,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2791:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49692,
|
|
"initialValue": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 49691,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 49689,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 49685,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49666,
|
|
"src": "2811:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "*",
|
|
"rightExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
},
|
|
"id": 49688,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"hexValue": "3130",
|
|
"id": 49686,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2820:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10_by_1",
|
|
"typeString": "int_const 10"
|
|
},
|
|
"value": "10"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "**",
|
|
"rightExpression": {
|
|
"hexValue": "36",
|
|
"id": 49687,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2824:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_6_by_1",
|
|
"typeString": "int_const 6"
|
|
},
|
|
"value": "6"
|
|
},
|
|
"src": "2820:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
}
|
|
},
|
|
"src": "2811:14:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"hexValue": "32",
|
|
"id": 49690,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2828:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "2811:18:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2791:38:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49694,
|
|
"name": "coinAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49674,
|
|
"src": "2845:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49695,
|
|
"name": "usdAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49684,
|
|
"src": "2857:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49696,
|
|
"name": "lower",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49668,
|
|
"src": "2868:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49697,
|
|
"name": "upper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49670,
|
|
"src": "2875:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"id": 49693,
|
|
"name": "stake",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
49664,
|
|
49701,
|
|
49728
|
|
],
|
|
"referencedDeclaration": 49728,
|
|
"src": "2839:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_int24_$_t_int24_$returns$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,int24,int24) returns (uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 49698,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2839:42:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 49699,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2839:42:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "53486e2f",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "stake",
|
|
"nameLocation": "2676:5:63",
|
|
"parameters": {
|
|
"id": 49671,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49666,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "2690:6:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49701,
|
|
"src": "2682:14:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49665,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2682:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49668,
|
|
"mutability": "mutable",
|
|
"name": "lower",
|
|
"nameLocation": "2704:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49701,
|
|
"src": "2698:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49667,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2698:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49670,
|
|
"mutability": "mutable",
|
|
"name": "upper",
|
|
"nameLocation": "2717:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49701,
|
|
"src": "2711:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49669,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2711:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2681:42:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49672,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "2731:0:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49728,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "2895:279:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49727,
|
|
"nodeType": "Block",
|
|
"src": "3107:67:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49721,
|
|
"name": "coinAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49703,
|
|
"src": "3131:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49722,
|
|
"name": "usdAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49705,
|
|
"src": "3143:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49723,
|
|
"name": "lower",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49707,
|
|
"src": "3154:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49724,
|
|
"name": "upper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49709,
|
|
"src": "3161:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"id": 49720,
|
|
"name": "_stake",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49873,
|
|
"src": "3124:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_int24_$_t_int24_$returns$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,int24,int24) returns (uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 49725,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3124:43:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 49719,
|
|
"id": 49726,
|
|
"nodeType": "Return",
|
|
"src": "3117:50:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "d6f13002",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "stake",
|
|
"nameLocation": "2904:5:63",
|
|
"parameters": {
|
|
"id": 49710,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49703,
|
|
"mutability": "mutable",
|
|
"name": "coinAmount",
|
|
"nameLocation": "2918:10:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "2910:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49702,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2910:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49705,
|
|
"mutability": "mutable",
|
|
"name": "usdAmount",
|
|
"nameLocation": "2938:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "2930:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49704,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2930:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49707,
|
|
"mutability": "mutable",
|
|
"name": "lower",
|
|
"nameLocation": "2955:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "2949:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49706,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2949:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49709,
|
|
"mutability": "mutable",
|
|
"name": "upper",
|
|
"nameLocation": "2968:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "2962:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49708,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2962:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2909:65:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49719,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49712,
|
|
"mutability": "mutable",
|
|
"name": "tokenId",
|
|
"nameLocation": "3012:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "3004:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49711,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3004:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49714,
|
|
"mutability": "mutable",
|
|
"name": "liquidity",
|
|
"nameLocation": "3037:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "3029:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
},
|
|
"typeName": {
|
|
"id": 49713,
|
|
"name": "uint128",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3029:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49716,
|
|
"mutability": "mutable",
|
|
"name": "amount0",
|
|
"nameLocation": "3064:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "3056:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49715,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3056:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49718,
|
|
"mutability": "mutable",
|
|
"name": "amount1",
|
|
"nameLocation": "3089:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49728,
|
|
"src": "3081:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49717,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3081:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2994:108:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49873,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "3180:1597:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49872,
|
|
"nodeType": "Block",
|
|
"src": "3394:1383:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49752,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "3534:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
],
|
|
"id": 49751,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3526:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49750,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3526:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49753,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3526:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49754,
|
|
"name": "coinAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49730,
|
|
"src": "3541:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49747,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "3516:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49749,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "3521:4:63",
|
|
"memberName": "mint",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46477,
|
|
"src": "3516:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256) external"
|
|
}
|
|
},
|
|
"id": 49755,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3516:36:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49756,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3516:36:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49762,
|
|
"name": "nfpm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49462,
|
|
"src": "3583:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
],
|
|
"id": 49761,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3575:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49760,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3575:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49763,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3575:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49764,
|
|
"name": "coinAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49730,
|
|
"src": "3590:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49757,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "3562:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49759,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "3567:7:63",
|
|
"memberName": "approve",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 43058,
|
|
"src": "3562:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 49765,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3562:39:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 49766,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3562:39:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49772,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "3667:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
],
|
|
"id": 49771,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3659:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49770,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3659:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49773,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3659:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49774,
|
|
"name": "usdAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49732,
|
|
"src": "3674:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49767,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "3650:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49769,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "3654:4:63",
|
|
"memberName": "mint",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46477,
|
|
"src": "3650:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256) external"
|
|
}
|
|
},
|
|
"id": 49775,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3650:34:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49776,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3650:34:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49782,
|
|
"name": "nfpm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49462,
|
|
"src": "3714:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
],
|
|
"id": 49781,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3706:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49780,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3706:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49783,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3706:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49784,
|
|
"name": "usdAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49732,
|
|
"src": "3721:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49777,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "3694:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49779,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "3698:7:63",
|
|
"memberName": "approve",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 43058,
|
|
"src": "3694:11:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 49785,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3694:37:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 49786,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3694:37:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
49788
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49788,
|
|
"mutability": "mutable",
|
|
"name": "ts",
|
|
"nameLocation": "4235:2:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49872,
|
|
"src": "4229:8:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49787,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4229:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49792,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"id": 49789,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "4240:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"id": 49790,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4245:11:63",
|
|
"memberName": "tickSpacing",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44187,
|
|
"src": "4240:16:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_int24_$",
|
|
"typeString": "function () view external returns (int24)"
|
|
}
|
|
},
|
|
"id": 49791,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4240:18:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4229:29:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49799,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49793,
|
|
"name": "lower",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49734,
|
|
"src": "4268:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"id": 49796,
|
|
"name": "lower",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49734,
|
|
"src": "4291:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49797,
|
|
"name": "ts",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49788,
|
|
"src": "4298:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49794,
|
|
"name": "Util",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 48904,
|
|
"src": "4276:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Util_$48904_$",
|
|
"typeString": "type(library Util)"
|
|
}
|
|
},
|
|
"id": 49795,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4281:9:63",
|
|
"memberName": "roundTick",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48903,
|
|
"src": "4276:14:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_delegatecall_pure$_t_int24_$_t_int24_$returns$_t_int24_$",
|
|
"typeString": "function (int24,int24) pure returns (int24)"
|
|
}
|
|
},
|
|
"id": 49798,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4276:25:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"src": "4268:33:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"id": 49800,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4268:33:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49807,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 49801,
|
|
"name": "upper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49736,
|
|
"src": "4311:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"id": 49804,
|
|
"name": "upper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49736,
|
|
"src": "4334:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49805,
|
|
"name": "ts",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49788,
|
|
"src": "4341:2:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49802,
|
|
"name": "Util",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 48904,
|
|
"src": "4319:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Util_$48904_$",
|
|
"typeString": "type(library Util)"
|
|
}
|
|
},
|
|
"id": 49803,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4324:9:63",
|
|
"memberName": "roundTick",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48903,
|
|
"src": "4319:14:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_delegatecall_pure$_t_int24_$_t_int24_$returns$_t_int24_$",
|
|
"typeString": "function (int24,int24) pure returns (int24)"
|
|
}
|
|
},
|
|
"id": 49806,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4319:25:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"src": "4311:33:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"id": 49808,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4311:33:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
49813
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49813,
|
|
"mutability": "mutable",
|
|
"name": "params",
|
|
"nameLocation": "4400:6:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49872,
|
|
"src": "4354:52:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_MintParams_$45203_memory_ptr",
|
|
"typeString": "struct INonfungiblePositionManager.MintParams"
|
|
},
|
|
"typeName": {
|
|
"id": 49812,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49811,
|
|
"name": "INonfungiblePositionManager.MintParams",
|
|
"nameLocations": [
|
|
"4354:27:63",
|
|
"4382:10:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 45203,
|
|
"src": "4354:38:63"
|
|
},
|
|
"referencedDeclaration": 45203,
|
|
"src": "4354:38:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_MintParams_$45203_storage_ptr",
|
|
"typeString": "struct INonfungiblePositionManager.MintParams"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49836,
|
|
"initialValue": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49818,
|
|
"name": "COIN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49475,
|
|
"src": "4469:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49817,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4461:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49816,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4461:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49819,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4461:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49822,
|
|
"name": "USD",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49478,
|
|
"src": "4484:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49821,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4476:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49820,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4476:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4476:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49824,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49472,
|
|
"src": "4490:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49825,
|
|
"name": "lower",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49734,
|
|
"src": "4495:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49826,
|
|
"name": "upper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49736,
|
|
"src": "4502:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
{
|
|
"id": 49827,
|
|
"name": "coinAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49730,
|
|
"src": "4509:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49828,
|
|
"name": "usdAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49732,
|
|
"src": "4521:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"hexValue": "30",
|
|
"id": 49829,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4532:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
{
|
|
"hexValue": "30",
|
|
"id": 49830,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4535:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49831,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "4538:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 49832,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4542:6:63",
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"src": "4538:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49833,
|
|
"name": "block",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -4,
|
|
"src": "4550:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_block",
|
|
"typeString": "block"
|
|
}
|
|
},
|
|
"id": 49834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4556:9:63",
|
|
"memberName": "timestamp",
|
|
"nodeType": "MemberAccess",
|
|
"src": "4550:15:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49814,
|
|
"name": "INonfungiblePositionManager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45293,
|
|
"src": "4409:27:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_INonfungiblePositionManager_$45293_$",
|
|
"typeString": "type(contract INonfungiblePositionManager)"
|
|
}
|
|
},
|
|
"id": 49815,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4437:10:63",
|
|
"memberName": "MintParams",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 45203,
|
|
"src": "4409:38:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_struct$_MintParams_$45203_storage_ptr_$",
|
|
"typeString": "type(struct INonfungiblePositionManager.MintParams storage pointer)"
|
|
}
|
|
},
|
|
"id": 49835,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "structConstructorCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4409:166:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_MintParams_$45203_memory_ptr",
|
|
"typeString": "struct INonfungiblePositionManager.MintParams memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4354:221:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49846,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"components": [
|
|
{
|
|
"id": 49837,
|
|
"name": "tokenId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49739,
|
|
"src": "4586:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49838,
|
|
"name": "liquidity",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49741,
|
|
"src": "4595:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
}
|
|
},
|
|
{
|
|
"id": 49839,
|
|
"name": "amount0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49743,
|
|
"src": "4606:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49840,
|
|
"name": "amount1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49745,
|
|
"src": "4615:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 49841,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "4585:38:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"id": 49844,
|
|
"name": "params",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49813,
|
|
"src": "4636:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_MintParams_$45203_memory_ptr",
|
|
"typeString": "struct INonfungiblePositionManager.MintParams memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_struct$_MintParams_$45203_memory_ptr",
|
|
"typeString": "struct INonfungiblePositionManager.MintParams memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49842,
|
|
"name": "nfpm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49462,
|
|
"src": "4626:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_INonfungiblePositionManager_$45293",
|
|
"typeString": "contract INonfungiblePositionManager"
|
|
}
|
|
},
|
|
"id": 49843,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4631:4:63",
|
|
"memberName": "mint",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 45218,
|
|
"src": "4626:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_struct$_MintParams_$45203_memory_ptr_$returns$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (struct INonfungiblePositionManager.MintParams memory) payable external returns (uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 49845,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4626:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint128_$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint128,uint256,uint256)"
|
|
}
|
|
},
|
|
"src": "4585:58:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49847,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4585:58:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "6d696e746564",
|
|
"id": 49851,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4666:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e1d7849c0f6c42b67ef46bfe871686aeac2aa524ff4c77793f2afbd412acbd54",
|
|
"typeString": "literal_string \"minted\""
|
|
},
|
|
"value": "minted"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e1d7849c0f6c42b67ef46bfe871686aeac2aa524ff4c77793f2afbd412acbd54",
|
|
"typeString": "literal_string \"minted\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49848,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "4653:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49850,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4662:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "4653:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49852,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4653:22:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49853,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4653:22:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49857,
|
|
"name": "liquidity",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49741,
|
|
"src": "4698:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49854,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "4685:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49856,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4694:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22139,
|
|
"src": "4685:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) pure"
|
|
}
|
|
},
|
|
"id": 49858,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4685:23:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49859,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4685:23:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49863,
|
|
"name": "amount0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49743,
|
|
"src": "4731:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49860,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "4718:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49862,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4727:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22139,
|
|
"src": "4718:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) pure"
|
|
}
|
|
},
|
|
"id": 49864,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4718:21:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49865,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4718:21:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49869,
|
|
"name": "amount1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49745,
|
|
"src": "4762:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49866,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "4749:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49868,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4758:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22139,
|
|
"src": "4749:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) pure"
|
|
}
|
|
},
|
|
"id": 49870,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4749:21:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49871,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4749:21:63"
|
|
}
|
|
]
|
|
},
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_stake",
|
|
"nameLocation": "3189:6:63",
|
|
"parameters": {
|
|
"id": 49737,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49730,
|
|
"mutability": "mutable",
|
|
"name": "coinAmount",
|
|
"nameLocation": "3204:10:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3196:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49729,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3196:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49732,
|
|
"mutability": "mutable",
|
|
"name": "usdAmount",
|
|
"nameLocation": "3224:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3216:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49731,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3216:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49734,
|
|
"mutability": "mutable",
|
|
"name": "lower",
|
|
"nameLocation": "3241:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3235:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49733,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3235:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49736,
|
|
"mutability": "mutable",
|
|
"name": "upper",
|
|
"nameLocation": "3254:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3248:11:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
},
|
|
"typeName": {
|
|
"id": 49735,
|
|
"name": "int24",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3248:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int24",
|
|
"typeString": "int24"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3195:65:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49746,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49739,
|
|
"mutability": "mutable",
|
|
"name": "tokenId",
|
|
"nameLocation": "3299:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3291:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49738,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3291:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49741,
|
|
"mutability": "mutable",
|
|
"name": "liquidity",
|
|
"nameLocation": "3324:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3316:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
},
|
|
"typeName": {
|
|
"id": 49740,
|
|
"name": "uint128",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3316:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint128",
|
|
"typeString": "uint128"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49743,
|
|
"mutability": "mutable",
|
|
"name": "amount0",
|
|
"nameLocation": "3351:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3343:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49742,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3343:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49745,
|
|
"mutability": "mutable",
|
|
"name": "amount1",
|
|
"nameLocation": "3376:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49873,
|
|
"src": "3368:15:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49744,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3368:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3281:108:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"id": 49914,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "4784:289:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49913,
|
|
"nodeType": "Block",
|
|
"src": "4890:183:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
49887
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49887,
|
|
"mutability": "mutable",
|
|
"name": "limit",
|
|
"nameLocation": "4908:5:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49913,
|
|
"src": "4900:13:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 49886,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4900:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49905,
|
|
"initialValue": {
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 49895,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49890,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49876,
|
|
"src": "4924:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49889,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4916:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49888,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4916:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49891,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4916:16:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"id": 49892,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "4936:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"id": 49893,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4941:6:63",
|
|
"memberName": "token0",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44169,
|
|
"src": "4936:11:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 49894,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4936:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "4916:33:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"id": 49903,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"expression": {
|
|
"id": 49900,
|
|
"name": "TickMath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45059,
|
|
"src": "4982:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_TickMath_$45059_$",
|
|
"typeString": "type(library TickMath)"
|
|
}
|
|
},
|
|
"id": 49901,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4991:14:63",
|
|
"memberName": "MAX_SQRT_RATIO",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44540,
|
|
"src": "4982:23:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"hexValue": "31",
|
|
"id": 49902,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5008:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "4982:27:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"id": 49904,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "4916:93:63",
|
|
"trueExpression": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"id": 49899,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"expression": {
|
|
"id": 49896,
|
|
"name": "TickMath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45059,
|
|
"src": "4952:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_TickMath_$45059_$",
|
|
"typeString": "type(library TickMath)"
|
|
}
|
|
},
|
|
"id": 49897,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "4961:14:63",
|
|
"memberName": "MIN_SQRT_RATIO",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44536,
|
|
"src": "4952:23:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"hexValue": "31",
|
|
"id": 49898,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4978:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "4952:27:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4900:109:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49907,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49876,
|
|
"src": "5031:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
{
|
|
"id": 49908,
|
|
"name": "outToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49879,
|
|
"src": "5040:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
{
|
|
"id": 49909,
|
|
"name": "amountIn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49881,
|
|
"src": "5050:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49910,
|
|
"name": "limit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49887,
|
|
"src": "5060:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"id": 49906,
|
|
"name": "swap",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
49914,
|
|
49970
|
|
],
|
|
"referencedDeclaration": 49970,
|
|
"src": "5026:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_MockERC20_$46478_$_t_contract$_MockERC20_$46478_$_t_uint256_$_t_uint160_$returns$_t_uint256_$",
|
|
"typeString": "function (contract MockERC20,contract MockERC20,uint256,uint160) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 49911,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5026:40:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 49885,
|
|
"id": 49912,
|
|
"nodeType": "Return",
|
|
"src": "5019:47:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "df791e50",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "swap",
|
|
"nameLocation": "4793:4:63",
|
|
"parameters": {
|
|
"id": 49882,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49876,
|
|
"mutability": "mutable",
|
|
"name": "inToken",
|
|
"nameLocation": "4808:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49914,
|
|
"src": "4798:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49875,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49874,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"4798:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "4798:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "4798:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49879,
|
|
"mutability": "mutable",
|
|
"name": "outToken",
|
|
"nameLocation": "4827:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49914,
|
|
"src": "4817:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49878,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49877,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"4817:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "4817:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "4817:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49881,
|
|
"mutability": "mutable",
|
|
"name": "amountIn",
|
|
"nameLocation": "4845:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49914,
|
|
"src": "4837:16:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49880,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4837:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4797:57:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49885,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49884,
|
|
"mutability": "mutable",
|
|
"name": "amountOut",
|
|
"nameLocation": "4879:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49914,
|
|
"src": "4871:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49883,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4871:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4870:19:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49970,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "5079:824:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49969,
|
|
"nodeType": "Block",
|
|
"src": "5212:691:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49934,
|
|
"name": "swapper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49467,
|
|
"src": "5246:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
}
|
|
],
|
|
"id": 49933,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "5238:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49932,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5238:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49935,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5238:16:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49936,
|
|
"name": "amountIn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49922,
|
|
"src": "5256:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49929,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49917,
|
|
"src": "5222:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 49931,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "5230:7:63",
|
|
"memberName": "approve",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 43058,
|
|
"src": "5222:15:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 49937,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5222:43:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 49938,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5222:43:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
49943
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 49943,
|
|
"mutability": "mutable",
|
|
"name": "params",
|
|
"nameLocation": "5679:6:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49969,
|
|
"src": "5637:48:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_memory_ptr",
|
|
"typeString": "struct ISwapRouter.ExactInputSingleParams"
|
|
},
|
|
"typeName": {
|
|
"id": 49942,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49941,
|
|
"name": "ISwapRouter.ExactInputSingleParams",
|
|
"nameLocations": [
|
|
"5637:11:63",
|
|
"5649:22:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 45378,
|
|
"src": "5637:34:63"
|
|
},
|
|
"referencedDeclaration": 45378,
|
|
"src": "5637:34:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_storage_ptr",
|
|
"typeString": "struct ISwapRouter.ExactInputSingleParams"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 49963,
|
|
"initialValue": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49948,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49917,
|
|
"src": "5744:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49947,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "5736:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49946,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5736:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49949,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5736:16:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 49952,
|
|
"name": "outToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49920,
|
|
"src": "5762:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
],
|
|
"id": 49951,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "5754:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 49950,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5754:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 49953,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5754:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 49954,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49472,
|
|
"src": "5773:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49955,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "5778:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 49956,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "5782:6:63",
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"src": "5778:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"id": 49957,
|
|
"name": "block",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -4,
|
|
"src": "5790:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_block",
|
|
"typeString": "block"
|
|
}
|
|
},
|
|
"id": 49958,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "5796:9:63",
|
|
"memberName": "timestamp",
|
|
"nodeType": "MemberAccess",
|
|
"src": "5790:15:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 49959,
|
|
"name": "amountIn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49922,
|
|
"src": "5807:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"hexValue": "30",
|
|
"id": 49960,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5817:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
{
|
|
"id": 49961,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49924,
|
|
"src": "5820:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint24",
|
|
"typeString": "uint24"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49944,
|
|
"name": "ISwapRouter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 45454,
|
|
"src": "5688:11:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISwapRouter_$45454_$",
|
|
"typeString": "type(contract ISwapRouter)"
|
|
}
|
|
},
|
|
"id": 49945,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "5700:22:63",
|
|
"memberName": "ExactInputSingleParams",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 45378,
|
|
"src": "5688:34:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_struct$_ExactInputSingleParams_$45378_storage_ptr_$",
|
|
"typeString": "type(struct ISwapRouter.ExactInputSingleParams storage pointer)"
|
|
}
|
|
},
|
|
"id": 49962,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "structConstructorCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5688:159:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_memory_ptr",
|
|
"typeString": "struct ISwapRouter.ExactInputSingleParams memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5637:210:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49966,
|
|
"name": "params",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49943,
|
|
"src": "5889:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_memory_ptr",
|
|
"typeString": "struct ISwapRouter.ExactInputSingleParams memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_memory_ptr",
|
|
"typeString": "struct ISwapRouter.ExactInputSingleParams memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49964,
|
|
"name": "swapper",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49467,
|
|
"src": "5864:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISwapRouter_$45454",
|
|
"typeString": "contract ISwapRouter"
|
|
}
|
|
},
|
|
"id": 49965,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "5872:16:63",
|
|
"memberName": "exactInputSingle",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 45387,
|
|
"src": "5864:24:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_struct$_ExactInputSingleParams_$45378_memory_ptr_$returns$_t_uint256_$",
|
|
"typeString": "function (struct ISwapRouter.ExactInputSingleParams memory) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 49967,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5864:32:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 49928,
|
|
"id": 49968,
|
|
"nodeType": "Return",
|
|
"src": "5857:39:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "4a09d3dd",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "swap",
|
|
"nameLocation": "5088:4:63",
|
|
"parameters": {
|
|
"id": 49925,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49917,
|
|
"mutability": "mutable",
|
|
"name": "inToken",
|
|
"nameLocation": "5103:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49970,
|
|
"src": "5093:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49916,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49915,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"5093:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "5093:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "5093:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49920,
|
|
"mutability": "mutable",
|
|
"name": "outToken",
|
|
"nameLocation": "5122:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49970,
|
|
"src": "5112:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 49919,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 49918,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"5112:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "5112:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "5112:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49922,
|
|
"mutability": "mutable",
|
|
"name": "amountIn",
|
|
"nameLocation": "5140:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49970,
|
|
"src": "5132:16:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49921,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5132:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 49924,
|
|
"mutability": "mutable",
|
|
"name": "sqrtPriceLimitX96",
|
|
"nameLocation": "5158:17:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49970,
|
|
"src": "5150:25:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 49923,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5150:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5092:84:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49928,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49927,
|
|
"mutability": "mutable",
|
|
"name": "amountOut",
|
|
"nameLocation": "5201:9:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49970,
|
|
"src": "5193:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 49926,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5193:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5192:19:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 49983,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "5909:112:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 49982,
|
|
"nodeType": "Block",
|
|
"src": "5969:52:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"id": 49980,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"components": [
|
|
{
|
|
"id": 49975,
|
|
"name": "sqrtPriceX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49973,
|
|
"src": "5980:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 49976,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "5979:20:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint160_$__$__$__$__$__$__$",
|
|
"typeString": "tuple(uint160,,,,,,)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"id": 49977,
|
|
"name": "pool",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49470,
|
|
"src": "6002:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IUniswapV3Pool_$43894",
|
|
"typeString": "contract IUniswapV3Pool"
|
|
}
|
|
},
|
|
"id": 49978,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "6007:5:63",
|
|
"memberName": "slot0",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 44241,
|
|
"src": "6002:10:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
|
|
"typeString": "function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"
|
|
}
|
|
},
|
|
"id": 49979,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6002:12:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
|
|
"typeString": "tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)"
|
|
}
|
|
},
|
|
"src": "5979:35:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49981,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5979:35:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "a035b1fe",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "price",
|
|
"nameLocation": "5918:5:63",
|
|
"parameters": {
|
|
"id": 49971,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "5923:2:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49974,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49973,
|
|
"mutability": "mutable",
|
|
"name": "sqrtPriceX96",
|
|
"nameLocation": "5955:12:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 49983,
|
|
"src": "5947:20:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 49972,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5947:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5946:22:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"id": 50068,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "6027:683:63",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 50067,
|
|
"nodeType": "Block",
|
|
"src": "6082:628:63",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "73776170546f5072696365",
|
|
"id": 49991,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6105:13:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_adbad3dc16aedbb9cff2c880c2038e8ed862949065440cbb51dbb708f2ddce21",
|
|
"typeString": "literal_string \"swapToPrice\""
|
|
},
|
|
"value": "swapToPrice"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_adbad3dc16aedbb9cff2c880c2038e8ed862949065440cbb51dbb708f2ddce21",
|
|
"typeString": "literal_string \"swapToPrice\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49988,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "6092:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49990,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "6101:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "6092:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 49992,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6092:27:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49993,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6092:27:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 49997,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49985,
|
|
"src": "6142:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 49994,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "6129:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 49996,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "6138:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22139,
|
|
"src": "6129:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) pure"
|
|
}
|
|
},
|
|
"id": 49998,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6129:31:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 49999,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6129:31:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
50001
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 50001,
|
|
"mutability": "mutable",
|
|
"name": "curPrice",
|
|
"nameLocation": "6178:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 50067,
|
|
"src": "6170:16:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 50000,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6170:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 50004,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 50002,
|
|
"name": "price",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49983,
|
|
"src": "6189:5:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint160_$",
|
|
"typeString": "function () view returns (uint160)"
|
|
}
|
|
},
|
|
"id": 50003,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6189:7:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6170:26:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50008,
|
|
"name": "curPrice",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50001,
|
|
"src": "6219:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 50005,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "6206:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 50007,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "6215:3:63",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22139,
|
|
"src": "6206:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) pure"
|
|
}
|
|
},
|
|
"id": 50009,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6206:22:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 50010,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6206:22:63"
|
|
},
|
|
{
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"id": 50013,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 50011,
|
|
"name": "curPrice",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50001,
|
|
"src": "6242:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"id": 50012,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49985,
|
|
"src": "6254:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"src": "6242:29:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 50015,
|
|
"nodeType": "IfStatement",
|
|
"src": "6238:55:63",
|
|
"trueBody": {
|
|
"functionReturnParameters": 49987,
|
|
"id": 50014,
|
|
"nodeType": "Return",
|
|
"src": "6286:7:63"
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
50018
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 50018,
|
|
"mutability": "mutable",
|
|
"name": "inToken",
|
|
"nameLocation": "6312:7:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 50067,
|
|
"src": "6302:17:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 50017,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 50016,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"6302:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "6302:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "6302:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 50029,
|
|
"initialValue": {
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"id": 50021,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 50019,
|
|
"name": "curPrice",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50001,
|
|
"src": "6322:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"id": 50020,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49985,
|
|
"src": "6333:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"src": "6322:28:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50026,
|
|
"name": "token1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49482,
|
|
"src": "6383:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 50025,
|
|
"name": "MockERC20",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46478,
|
|
"src": "6373:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "type(contract MockERC20)"
|
|
}
|
|
},
|
|
"id": 50027,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6373:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 50028,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "6322:68:63",
|
|
"trueExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50023,
|
|
"name": "token0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49480,
|
|
"src": "6363:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 50022,
|
|
"name": "MockERC20",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46478,
|
|
"src": "6353:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "type(contract MockERC20)"
|
|
}
|
|
},
|
|
"id": 50024,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6353:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6302:88:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
50032
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 50032,
|
|
"mutability": "mutable",
|
|
"name": "outToken",
|
|
"nameLocation": "6410:8:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 50067,
|
|
"src": "6400:18:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
"typeName": {
|
|
"id": 50031,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 50030,
|
|
"name": "MockERC20",
|
|
"nameLocations": [
|
|
"6400:9:63"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46478,
|
|
"src": "6400:9:63"
|
|
},
|
|
"referencedDeclaration": 46478,
|
|
"src": "6400:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 50043,
|
|
"initialValue": {
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"id": 50035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 50033,
|
|
"name": "curPrice",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50001,
|
|
"src": "6421:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"id": 50034,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49985,
|
|
"src": "6432:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"src": "6421:28:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50040,
|
|
"name": "token1",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49482,
|
|
"src": "6482:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 50039,
|
|
"name": "MockERC20",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46478,
|
|
"src": "6472:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "type(contract MockERC20)"
|
|
}
|
|
},
|
|
"id": 50041,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6472:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 50042,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "Conditional",
|
|
"src": "6421:68:63",
|
|
"trueExpression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50037,
|
|
"name": "token0",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49480,
|
|
"src": "6462:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 50036,
|
|
"name": "MockERC20",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46478,
|
|
"src": "6452:9:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_MockERC20_$46478_$",
|
|
"typeString": "type(contract MockERC20)"
|
|
}
|
|
},
|
|
"id": 50038,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6452:17:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6400:89:63"
|
|
},
|
|
{
|
|
"assignments": [
|
|
50045
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 50045,
|
|
"mutability": "mutable",
|
|
"name": "aLot",
|
|
"nameLocation": "6589:4:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 50067,
|
|
"src": "6581:12:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 50044,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6581:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 50049,
|
|
"initialValue": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_rational_1267650600228229401496703205376_by_1",
|
|
"typeString": "int_const 1267650600228229401496703205376"
|
|
},
|
|
"id": 50048,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"hexValue": "32",
|
|
"id": 50046,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6596:1:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "**",
|
|
"rightExpression": {
|
|
"hexValue": "313030",
|
|
"id": 50047,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6599:3:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_100_by_1",
|
|
"typeString": "int_const 100"
|
|
},
|
|
"value": "100"
|
|
},
|
|
"src": "6596:6:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1267650600228229401496703205376_by_1",
|
|
"typeString": "int_const 1267650600228229401496703205376"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6581:21:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 50055,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "6633:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockEnv_$50069",
|
|
"typeString": "contract MockEnv"
|
|
}
|
|
],
|
|
"id": 50054,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6625:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 50053,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6625:7:63",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 50056,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6625:13:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 50057,
|
|
"name": "aLot",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50045,
|
|
"src": "6640:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 50050,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50018,
|
|
"src": "6612:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
"id": 50052,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "6620:4:63",
|
|
"memberName": "mint",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46477,
|
|
"src": "6612:12:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256) external"
|
|
}
|
|
},
|
|
"id": 50058,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6612:33:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 50059,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6612:33:63"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 50061,
|
|
"name": "inToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50018,
|
|
"src": "6660:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
{
|
|
"id": 50062,
|
|
"name": "outToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50032,
|
|
"src": "6669:8:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
}
|
|
},
|
|
{
|
|
"id": 50063,
|
|
"name": "aLot",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 50045,
|
|
"src": "6679:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 50064,
|
|
"name": "sqrtPriceLimitX96",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 49985,
|
|
"src": "6685:17:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_MockERC20_$46478",
|
|
"typeString": "contract MockERC20"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
],
|
|
"id": 50060,
|
|
"name": "swap",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
49914,
|
|
49970
|
|
],
|
|
"referencedDeclaration": 49970,
|
|
"src": "6655:4:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_MockERC20_$46478_$_t_contract$_MockERC20_$46478_$_t_uint256_$_t_uint160_$returns$_t_uint256_$",
|
|
"typeString": "function (contract MockERC20,contract MockERC20,uint256,uint160) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 50065,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6655:48:63",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 50066,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6655:48:63"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "c578d91d",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "swapToPrice",
|
|
"nameLocation": "6036:11:63",
|
|
"parameters": {
|
|
"id": 49986,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 49985,
|
|
"mutability": "mutable",
|
|
"name": "sqrtPriceLimitX96",
|
|
"nameLocation": "6056:17:63",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 50068,
|
|
"src": "6048:25:63",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
},
|
|
"typeName": {
|
|
"id": 49984,
|
|
"name": "uint160",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6048:7:63",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint160",
|
|
"typeString": "uint160"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6047:27:63"
|
|
},
|
|
"returnParameters": {
|
|
"id": 49987,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6082:0:63"
|
|
},
|
|
"scope": 50069,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"abstract": false,
|
|
"baseContracts": [],
|
|
"canonicalName": "MockEnv",
|
|
"contractDependencies": [
|
|
46478
|
|
],
|
|
"contractKind": "contract",
|
|
"fullyImplemented": true,
|
|
"internalFunctionIDs": {
|
|
"21582": 1
|
|
},
|
|
"linearizedBaseContracts": [
|
|
50069
|
|
],
|
|
"name": "MockEnv",
|
|
"nameLocation": "597:7:63",
|
|
"scope": 50070,
|
|
"usedErrors": [],
|
|
"usedEvents": []
|
|
}
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"id": 63
|
|
} |