github.com/cwntr/go-defi@v0.0.0-20210629134751-07f9ec2f7e66/abi/uniswap/IUniswapV2Router02.json (about)

     1  [
     2    {
     3      "inputs": [],
     4      "name": "WETH",
     5      "outputs": [
     6        {
     7          "internalType": "address",
     8          "name": "",
     9          "type": "address"
    10        }
    11      ],
    12      "stateMutability": "pure",
    13      "type": "function"
    14    },
    15    {
    16      "inputs": [
    17        {
    18          "internalType": "address",
    19          "name": "tokenA",
    20          "type": "address"
    21        },
    22        {
    23          "internalType": "address",
    24          "name": "tokenB",
    25          "type": "address"
    26        },
    27        {
    28          "internalType": "uint256",
    29          "name": "amountADesired",
    30          "type": "uint256"
    31        },
    32        {
    33          "internalType": "uint256",
    34          "name": "amountBDesired",
    35          "type": "uint256"
    36        },
    37        {
    38          "internalType": "uint256",
    39          "name": "amountAMin",
    40          "type": "uint256"
    41        },
    42        {
    43          "internalType": "uint256",
    44          "name": "amountBMin",
    45          "type": "uint256"
    46        },
    47        {
    48          "internalType": "address",
    49          "name": "to",
    50          "type": "address"
    51        },
    52        {
    53          "internalType": "uint256",
    54          "name": "deadline",
    55          "type": "uint256"
    56        }
    57      ],
    58      "name": "addLiquidity",
    59      "outputs": [
    60        {
    61          "internalType": "uint256",
    62          "name": "amountA",
    63          "type": "uint256"
    64        },
    65        {
    66          "internalType": "uint256",
    67          "name": "amountB",
    68          "type": "uint256"
    69        },
    70        {
    71          "internalType": "uint256",
    72          "name": "liquidity",
    73          "type": "uint256"
    74        }
    75      ],
    76      "stateMutability": "nonpayable",
    77      "type": "function"
    78    },
    79    {
    80      "inputs": [
    81        {
    82          "internalType": "address",
    83          "name": "token",
    84          "type": "address"
    85        },
    86        {
    87          "internalType": "uint256",
    88          "name": "amountTokenDesired",
    89          "type": "uint256"
    90        },
    91        {
    92          "internalType": "uint256",
    93          "name": "amountTokenMin",
    94          "type": "uint256"
    95        },
    96        {
    97          "internalType": "uint256",
    98          "name": "amountETHMin",
    99          "type": "uint256"
   100        },
   101        {
   102          "internalType": "address",
   103          "name": "to",
   104          "type": "address"
   105        },
   106        {
   107          "internalType": "uint256",
   108          "name": "deadline",
   109          "type": "uint256"
   110        }
   111      ],
   112      "name": "addLiquidityETH",
   113      "outputs": [
   114        {
   115          "internalType": "uint256",
   116          "name": "amountToken",
   117          "type": "uint256"
   118        },
   119        {
   120          "internalType": "uint256",
   121          "name": "amountETH",
   122          "type": "uint256"
   123        },
   124        {
   125          "internalType": "uint256",
   126          "name": "liquidity",
   127          "type": "uint256"
   128        }
   129      ],
   130      "stateMutability": "payable",
   131      "type": "function"
   132    },
   133    {
   134      "inputs": [],
   135      "name": "factory",
   136      "outputs": [
   137        {
   138          "internalType": "address",
   139          "name": "",
   140          "type": "address"
   141        }
   142      ],
   143      "stateMutability": "pure",
   144      "type": "function"
   145    },
   146    {
   147      "inputs": [
   148        {
   149          "internalType": "uint256",
   150          "name": "amountOut",
   151          "type": "uint256"
   152        },
   153        {
   154          "internalType": "uint256",
   155          "name": "reserveIn",
   156          "type": "uint256"
   157        },
   158        {
   159          "internalType": "uint256",
   160          "name": "reserveOut",
   161          "type": "uint256"
   162        }
   163      ],
   164      "name": "getAmountIn",
   165      "outputs": [
   166        {
   167          "internalType": "uint256",
   168          "name": "amountIn",
   169          "type": "uint256"
   170        }
   171      ],
   172      "stateMutability": "pure",
   173      "type": "function"
   174    },
   175    {
   176      "inputs": [
   177        {
   178          "internalType": "uint256",
   179          "name": "amountIn",
   180          "type": "uint256"
   181        },
   182        {
   183          "internalType": "uint256",
   184          "name": "reserveIn",
   185          "type": "uint256"
   186        },
   187        {
   188          "internalType": "uint256",
   189          "name": "reserveOut",
   190          "type": "uint256"
   191        }
   192      ],
   193      "name": "getAmountOut",
   194      "outputs": [
   195        {
   196          "internalType": "uint256",
   197          "name": "amountOut",
   198          "type": "uint256"
   199        }
   200      ],
   201      "stateMutability": "pure",
   202      "type": "function"
   203    },
   204    {
   205      "inputs": [
   206        {
   207          "internalType": "uint256",
   208          "name": "amountOut",
   209          "type": "uint256"
   210        },
   211        {
   212          "internalType": "address[]",
   213          "name": "path",
   214          "type": "address[]"
   215        }
   216      ],
   217      "name": "getAmountsIn",
   218      "outputs": [
   219        {
   220          "internalType": "uint256[]",
   221          "name": "amounts",
   222          "type": "uint256[]"
   223        }
   224      ],
   225      "stateMutability": "view",
   226      "type": "function"
   227    },
   228    {
   229      "inputs": [
   230        {
   231          "internalType": "uint256",
   232          "name": "amountIn",
   233          "type": "uint256"
   234        },
   235        {
   236          "internalType": "address[]",
   237          "name": "path",
   238          "type": "address[]"
   239        }
   240      ],
   241      "name": "getAmountsOut",
   242      "outputs": [
   243        {
   244          "internalType": "uint256[]",
   245          "name": "amounts",
   246          "type": "uint256[]"
   247        }
   248      ],
   249      "stateMutability": "view",
   250      "type": "function"
   251    },
   252    {
   253      "inputs": [
   254        {
   255          "internalType": "uint256",
   256          "name": "amountA",
   257          "type": "uint256"
   258        },
   259        {
   260          "internalType": "uint256",
   261          "name": "reserveA",
   262          "type": "uint256"
   263        },
   264        {
   265          "internalType": "uint256",
   266          "name": "reserveB",
   267          "type": "uint256"
   268        }
   269      ],
   270      "name": "quote",
   271      "outputs": [
   272        {
   273          "internalType": "uint256",
   274          "name": "amountB",
   275          "type": "uint256"
   276        }
   277      ],
   278      "stateMutability": "pure",
   279      "type": "function"
   280    },
   281    {
   282      "inputs": [
   283        {
   284          "internalType": "address",
   285          "name": "tokenA",
   286          "type": "address"
   287        },
   288        {
   289          "internalType": "address",
   290          "name": "tokenB",
   291          "type": "address"
   292        },
   293        {
   294          "internalType": "uint256",
   295          "name": "liquidity",
   296          "type": "uint256"
   297        },
   298        {
   299          "internalType": "uint256",
   300          "name": "amountAMin",
   301          "type": "uint256"
   302        },
   303        {
   304          "internalType": "uint256",
   305          "name": "amountBMin",
   306          "type": "uint256"
   307        },
   308        {
   309          "internalType": "address",
   310          "name": "to",
   311          "type": "address"
   312        },
   313        {
   314          "internalType": "uint256",
   315          "name": "deadline",
   316          "type": "uint256"
   317        }
   318      ],
   319      "name": "removeLiquidity",
   320      "outputs": [
   321        {
   322          "internalType": "uint256",
   323          "name": "amountA",
   324          "type": "uint256"
   325        },
   326        {
   327          "internalType": "uint256",
   328          "name": "amountB",
   329          "type": "uint256"
   330        }
   331      ],
   332      "stateMutability": "nonpayable",
   333      "type": "function"
   334    },
   335    {
   336      "inputs": [
   337        {
   338          "internalType": "address",
   339          "name": "token",
   340          "type": "address"
   341        },
   342        {
   343          "internalType": "uint256",
   344          "name": "liquidity",
   345          "type": "uint256"
   346        },
   347        {
   348          "internalType": "uint256",
   349          "name": "amountTokenMin",
   350          "type": "uint256"
   351        },
   352        {
   353          "internalType": "uint256",
   354          "name": "amountETHMin",
   355          "type": "uint256"
   356        },
   357        {
   358          "internalType": "address",
   359          "name": "to",
   360          "type": "address"
   361        },
   362        {
   363          "internalType": "uint256",
   364          "name": "deadline",
   365          "type": "uint256"
   366        }
   367      ],
   368      "name": "removeLiquidityETH",
   369      "outputs": [
   370        {
   371          "internalType": "uint256",
   372          "name": "amountToken",
   373          "type": "uint256"
   374        },
   375        {
   376          "internalType": "uint256",
   377          "name": "amountETH",
   378          "type": "uint256"
   379        }
   380      ],
   381      "stateMutability": "nonpayable",
   382      "type": "function"
   383    },
   384    {
   385      "inputs": [
   386        {
   387          "internalType": "address",
   388          "name": "token",
   389          "type": "address"
   390        },
   391        {
   392          "internalType": "uint256",
   393          "name": "liquidity",
   394          "type": "uint256"
   395        },
   396        {
   397          "internalType": "uint256",
   398          "name": "amountTokenMin",
   399          "type": "uint256"
   400        },
   401        {
   402          "internalType": "uint256",
   403          "name": "amountETHMin",
   404          "type": "uint256"
   405        },
   406        {
   407          "internalType": "address",
   408          "name": "to",
   409          "type": "address"
   410        },
   411        {
   412          "internalType": "uint256",
   413          "name": "deadline",
   414          "type": "uint256"
   415        }
   416      ],
   417      "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
   418      "outputs": [
   419        {
   420          "internalType": "uint256",
   421          "name": "amountETH",
   422          "type": "uint256"
   423        }
   424      ],
   425      "stateMutability": "nonpayable",
   426      "type": "function"
   427    },
   428    {
   429      "inputs": [
   430        {
   431          "internalType": "address",
   432          "name": "token",
   433          "type": "address"
   434        },
   435        {
   436          "internalType": "uint256",
   437          "name": "liquidity",
   438          "type": "uint256"
   439        },
   440        {
   441          "internalType": "uint256",
   442          "name": "amountTokenMin",
   443          "type": "uint256"
   444        },
   445        {
   446          "internalType": "uint256",
   447          "name": "amountETHMin",
   448          "type": "uint256"
   449        },
   450        {
   451          "internalType": "address",
   452          "name": "to",
   453          "type": "address"
   454        },
   455        {
   456          "internalType": "uint256",
   457          "name": "deadline",
   458          "type": "uint256"
   459        },
   460        {
   461          "internalType": "bool",
   462          "name": "approveMax",
   463          "type": "bool"
   464        },
   465        {
   466          "internalType": "uint8",
   467          "name": "v",
   468          "type": "uint8"
   469        },
   470        {
   471          "internalType": "bytes32",
   472          "name": "r",
   473          "type": "bytes32"
   474        },
   475        {
   476          "internalType": "bytes32",
   477          "name": "s",
   478          "type": "bytes32"
   479        }
   480      ],
   481      "name": "removeLiquidityETHWithPermit",
   482      "outputs": [
   483        {
   484          "internalType": "uint256",
   485          "name": "amountToken",
   486          "type": "uint256"
   487        },
   488        {
   489          "internalType": "uint256",
   490          "name": "amountETH",
   491          "type": "uint256"
   492        }
   493      ],
   494      "stateMutability": "nonpayable",
   495      "type": "function"
   496    },
   497    {
   498      "inputs": [
   499        {
   500          "internalType": "address",
   501          "name": "token",
   502          "type": "address"
   503        },
   504        {
   505          "internalType": "uint256",
   506          "name": "liquidity",
   507          "type": "uint256"
   508        },
   509        {
   510          "internalType": "uint256",
   511          "name": "amountTokenMin",
   512          "type": "uint256"
   513        },
   514        {
   515          "internalType": "uint256",
   516          "name": "amountETHMin",
   517          "type": "uint256"
   518        },
   519        {
   520          "internalType": "address",
   521          "name": "to",
   522          "type": "address"
   523        },
   524        {
   525          "internalType": "uint256",
   526          "name": "deadline",
   527          "type": "uint256"
   528        },
   529        {
   530          "internalType": "bool",
   531          "name": "approveMax",
   532          "type": "bool"
   533        },
   534        {
   535          "internalType": "uint8",
   536          "name": "v",
   537          "type": "uint8"
   538        },
   539        {
   540          "internalType": "bytes32",
   541          "name": "r",
   542          "type": "bytes32"
   543        },
   544        {
   545          "internalType": "bytes32",
   546          "name": "s",
   547          "type": "bytes32"
   548        }
   549      ],
   550      "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
   551      "outputs": [
   552        {
   553          "internalType": "uint256",
   554          "name": "amountETH",
   555          "type": "uint256"
   556        }
   557      ],
   558      "stateMutability": "nonpayable",
   559      "type": "function"
   560    },
   561    {
   562      "inputs": [
   563        {
   564          "internalType": "address",
   565          "name": "tokenA",
   566          "type": "address"
   567        },
   568        {
   569          "internalType": "address",
   570          "name": "tokenB",
   571          "type": "address"
   572        },
   573        {
   574          "internalType": "uint256",
   575          "name": "liquidity",
   576          "type": "uint256"
   577        },
   578        {
   579          "internalType": "uint256",
   580          "name": "amountAMin",
   581          "type": "uint256"
   582        },
   583        {
   584          "internalType": "uint256",
   585          "name": "amountBMin",
   586          "type": "uint256"
   587        },
   588        {
   589          "internalType": "address",
   590          "name": "to",
   591          "type": "address"
   592        },
   593        {
   594          "internalType": "uint256",
   595          "name": "deadline",
   596          "type": "uint256"
   597        },
   598        {
   599          "internalType": "bool",
   600          "name": "approveMax",
   601          "type": "bool"
   602        },
   603        {
   604          "internalType": "uint8",
   605          "name": "v",
   606          "type": "uint8"
   607        },
   608        {
   609          "internalType": "bytes32",
   610          "name": "r",
   611          "type": "bytes32"
   612        },
   613        {
   614          "internalType": "bytes32",
   615          "name": "s",
   616          "type": "bytes32"
   617        }
   618      ],
   619      "name": "removeLiquidityWithPermit",
   620      "outputs": [
   621        {
   622          "internalType": "uint256",
   623          "name": "amountA",
   624          "type": "uint256"
   625        },
   626        {
   627          "internalType": "uint256",
   628          "name": "amountB",
   629          "type": "uint256"
   630        }
   631      ],
   632      "stateMutability": "nonpayable",
   633      "type": "function"
   634    },
   635    {
   636      "inputs": [
   637        {
   638          "internalType": "uint256",
   639          "name": "amountOut",
   640          "type": "uint256"
   641        },
   642        {
   643          "internalType": "address[]",
   644          "name": "path",
   645          "type": "address[]"
   646        },
   647        {
   648          "internalType": "address",
   649          "name": "to",
   650          "type": "address"
   651        },
   652        {
   653          "internalType": "uint256",
   654          "name": "deadline",
   655          "type": "uint256"
   656        }
   657      ],
   658      "name": "swapETHForExactTokens",
   659      "outputs": [
   660        {
   661          "internalType": "uint256[]",
   662          "name": "amounts",
   663          "type": "uint256[]"
   664        }
   665      ],
   666      "stateMutability": "payable",
   667      "type": "function"
   668    },
   669    {
   670      "inputs": [
   671        {
   672          "internalType": "uint256",
   673          "name": "amountOutMin",
   674          "type": "uint256"
   675        },
   676        {
   677          "internalType": "address[]",
   678          "name": "path",
   679          "type": "address[]"
   680        },
   681        {
   682          "internalType": "address",
   683          "name": "to",
   684          "type": "address"
   685        },
   686        {
   687          "internalType": "uint256",
   688          "name": "deadline",
   689          "type": "uint256"
   690        }
   691      ],
   692      "name": "swapExactETHForTokens",
   693      "outputs": [
   694        {
   695          "internalType": "uint256[]",
   696          "name": "amounts",
   697          "type": "uint256[]"
   698        }
   699      ],
   700      "stateMutability": "payable",
   701      "type": "function"
   702    },
   703    {
   704      "inputs": [
   705        {
   706          "internalType": "uint256",
   707          "name": "amountOutMin",
   708          "type": "uint256"
   709        },
   710        {
   711          "internalType": "address[]",
   712          "name": "path",
   713          "type": "address[]"
   714        },
   715        {
   716          "internalType": "address",
   717          "name": "to",
   718          "type": "address"
   719        },
   720        {
   721          "internalType": "uint256",
   722          "name": "deadline",
   723          "type": "uint256"
   724        }
   725      ],
   726      "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
   727      "outputs": [],
   728      "stateMutability": "payable",
   729      "type": "function"
   730    },
   731    {
   732      "inputs": [
   733        {
   734          "internalType": "uint256",
   735          "name": "amountIn",
   736          "type": "uint256"
   737        },
   738        {
   739          "internalType": "uint256",
   740          "name": "amountOutMin",
   741          "type": "uint256"
   742        },
   743        {
   744          "internalType": "address[]",
   745          "name": "path",
   746          "type": "address[]"
   747        },
   748        {
   749          "internalType": "address",
   750          "name": "to",
   751          "type": "address"
   752        },
   753        {
   754          "internalType": "uint256",
   755          "name": "deadline",
   756          "type": "uint256"
   757        }
   758      ],
   759      "name": "swapExactTokensForETH",
   760      "outputs": [
   761        {
   762          "internalType": "uint256[]",
   763          "name": "amounts",
   764          "type": "uint256[]"
   765        }
   766      ],
   767      "stateMutability": "nonpayable",
   768      "type": "function"
   769    },
   770    {
   771      "inputs": [
   772        {
   773          "internalType": "uint256",
   774          "name": "amountIn",
   775          "type": "uint256"
   776        },
   777        {
   778          "internalType": "uint256",
   779          "name": "amountOutMin",
   780          "type": "uint256"
   781        },
   782        {
   783          "internalType": "address[]",
   784          "name": "path",
   785          "type": "address[]"
   786        },
   787        {
   788          "internalType": "address",
   789          "name": "to",
   790          "type": "address"
   791        },
   792        {
   793          "internalType": "uint256",
   794          "name": "deadline",
   795          "type": "uint256"
   796        }
   797      ],
   798      "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
   799      "outputs": [],
   800      "stateMutability": "nonpayable",
   801      "type": "function"
   802    },
   803    {
   804      "inputs": [
   805        {
   806          "internalType": "uint256",
   807          "name": "amountIn",
   808          "type": "uint256"
   809        },
   810        {
   811          "internalType": "uint256",
   812          "name": "amountOutMin",
   813          "type": "uint256"
   814        },
   815        {
   816          "internalType": "address[]",
   817          "name": "path",
   818          "type": "address[]"
   819        },
   820        {
   821          "internalType": "address",
   822          "name": "to",
   823          "type": "address"
   824        },
   825        {
   826          "internalType": "uint256",
   827          "name": "deadline",
   828          "type": "uint256"
   829        }
   830      ],
   831      "name": "swapExactTokensForTokens",
   832      "outputs": [
   833        {
   834          "internalType": "uint256[]",
   835          "name": "amounts",
   836          "type": "uint256[]"
   837        }
   838      ],
   839      "stateMutability": "nonpayable",
   840      "type": "function"
   841    },
   842    {
   843      "inputs": [
   844        {
   845          "internalType": "uint256",
   846          "name": "amountIn",
   847          "type": "uint256"
   848        },
   849        {
   850          "internalType": "uint256",
   851          "name": "amountOutMin",
   852          "type": "uint256"
   853        },
   854        {
   855          "internalType": "address[]",
   856          "name": "path",
   857          "type": "address[]"
   858        },
   859        {
   860          "internalType": "address",
   861          "name": "to",
   862          "type": "address"
   863        },
   864        {
   865          "internalType": "uint256",
   866          "name": "deadline",
   867          "type": "uint256"
   868        }
   869      ],
   870      "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
   871      "outputs": [],
   872      "stateMutability": "nonpayable",
   873      "type": "function"
   874    },
   875    {
   876      "inputs": [
   877        {
   878          "internalType": "uint256",
   879          "name": "amountOut",
   880          "type": "uint256"
   881        },
   882        {
   883          "internalType": "uint256",
   884          "name": "amountInMax",
   885          "type": "uint256"
   886        },
   887        {
   888          "internalType": "address[]",
   889          "name": "path",
   890          "type": "address[]"
   891        },
   892        {
   893          "internalType": "address",
   894          "name": "to",
   895          "type": "address"
   896        },
   897        {
   898          "internalType": "uint256",
   899          "name": "deadline",
   900          "type": "uint256"
   901        }
   902      ],
   903      "name": "swapTokensForExactETH",
   904      "outputs": [
   905        {
   906          "internalType": "uint256[]",
   907          "name": "amounts",
   908          "type": "uint256[]"
   909        }
   910      ],
   911      "stateMutability": "nonpayable",
   912      "type": "function"
   913    },
   914    {
   915      "inputs": [
   916        {
   917          "internalType": "uint256",
   918          "name": "amountOut",
   919          "type": "uint256"
   920        },
   921        {
   922          "internalType": "uint256",
   923          "name": "amountInMax",
   924          "type": "uint256"
   925        },
   926        {
   927          "internalType": "address[]",
   928          "name": "path",
   929          "type": "address[]"
   930        },
   931        {
   932          "internalType": "address",
   933          "name": "to",
   934          "type": "address"
   935        },
   936        {
   937          "internalType": "uint256",
   938          "name": "deadline",
   939          "type": "uint256"
   940        }
   941      ],
   942      "name": "swapTokensForExactTokens",
   943      "outputs": [
   944        {
   945          "internalType": "uint256[]",
   946          "name": "amounts",
   947          "type": "uint256[]"
   948        }
   949      ],
   950      "stateMutability": "nonpayable",
   951      "type": "function"
   952    }
   953  ],
   954  "evm": {
   955    "bytecode": {
   956      "linkReferences": {},
   957      "object": "",
   958      "opcodes": "",
   959      "sourceMap": ""
   960    },
   961    "deployedBytecode": {
   962      "immutableReferences": {},
   963      "linkReferences": {},
   964      "object": "",
   965      "opcodes": "",
   966      "sourceMap": ""
   967    }
   968  },
   969  "interface": [
   970    {
   971      "inputs": [],
   972      "name": "WETH",
   973      "outputs": [
   974        {
   975          "internalType": "address",
   976          "name": "",
   977          "type": "address"
   978        }
   979      ],
   980      "stateMutability": "pure",
   981      "type": "function"
   982    },
   983    {
   984      "inputs": [
   985        {
   986          "internalType": "address",
   987          "name": "tokenA",
   988          "type": "address"
   989        },
   990        {
   991          "internalType": "address",
   992          "name": "tokenB",
   993          "type": "address"
   994        },
   995        {
   996          "internalType": "uint256",
   997          "name": "amountADesired",
   998          "type": "uint256"
   999        },
  1000        {
  1001          "internalType": "uint256",
  1002          "name": "amountBDesired",
  1003          "type": "uint256"
  1004        },
  1005        {
  1006          "internalType": "uint256",
  1007          "name": "amountAMin",
  1008          "type": "uint256"
  1009        },
  1010        {
  1011          "internalType": "uint256",
  1012          "name": "amountBMin",
  1013          "type": "uint256"
  1014        },
  1015        {
  1016          "internalType": "address",
  1017          "name": "to",
  1018          "type": "address"
  1019        },
  1020        {
  1021          "internalType": "uint256",
  1022          "name": "deadline",
  1023          "type": "uint256"
  1024        }
  1025      ],
  1026      "name": "addLiquidity",
  1027      "outputs": [
  1028        {
  1029          "internalType": "uint256",
  1030          "name": "amountA",
  1031          "type": "uint256"
  1032        },
  1033        {
  1034          "internalType": "uint256",
  1035          "name": "amountB",
  1036          "type": "uint256"
  1037        },
  1038        {
  1039          "internalType": "uint256",
  1040          "name": "liquidity",
  1041          "type": "uint256"
  1042        }
  1043      ],
  1044      "stateMutability": "nonpayable",
  1045      "type": "function"
  1046    },
  1047    {
  1048      "inputs": [
  1049        {
  1050          "internalType": "address",
  1051          "name": "token",
  1052          "type": "address"
  1053        },
  1054        {
  1055          "internalType": "uint256",
  1056          "name": "amountTokenDesired",
  1057          "type": "uint256"
  1058        },
  1059        {
  1060          "internalType": "uint256",
  1061          "name": "amountTokenMin",
  1062          "type": "uint256"
  1063        },
  1064        {
  1065          "internalType": "uint256",
  1066          "name": "amountETHMin",
  1067          "type": "uint256"
  1068        },
  1069        {
  1070          "internalType": "address",
  1071          "name": "to",
  1072          "type": "address"
  1073        },
  1074        {
  1075          "internalType": "uint256",
  1076          "name": "deadline",
  1077          "type": "uint256"
  1078        }
  1079      ],
  1080      "name": "addLiquidityETH",
  1081      "outputs": [
  1082        {
  1083          "internalType": "uint256",
  1084          "name": "amountToken",
  1085          "type": "uint256"
  1086        },
  1087        {
  1088          "internalType": "uint256",
  1089          "name": "amountETH",
  1090          "type": "uint256"
  1091        },
  1092        {
  1093          "internalType": "uint256",
  1094          "name": "liquidity",
  1095          "type": "uint256"
  1096        }
  1097      ],
  1098      "stateMutability": "payable",
  1099      "type": "function"
  1100    },
  1101    {
  1102      "inputs": [],
  1103      "name": "factory",
  1104      "outputs": [
  1105        {
  1106          "internalType": "address",
  1107          "name": "",
  1108          "type": "address"
  1109        }
  1110      ],
  1111      "stateMutability": "pure",
  1112      "type": "function"
  1113    },
  1114    {
  1115      "inputs": [
  1116        {
  1117          "internalType": "uint256",
  1118          "name": "amountOut",
  1119          "type": "uint256"
  1120        },
  1121        {
  1122          "internalType": "uint256",
  1123          "name": "reserveIn",
  1124          "type": "uint256"
  1125        },
  1126        {
  1127          "internalType": "uint256",
  1128          "name": "reserveOut",
  1129          "type": "uint256"
  1130        }
  1131      ],
  1132      "name": "getAmountIn",
  1133      "outputs": [
  1134        {
  1135          "internalType": "uint256",
  1136          "name": "amountIn",
  1137          "type": "uint256"
  1138        }
  1139      ],
  1140      "stateMutability": "pure",
  1141      "type": "function"
  1142    },
  1143    {
  1144      "inputs": [
  1145        {
  1146          "internalType": "uint256",
  1147          "name": "amountIn",
  1148          "type": "uint256"
  1149        },
  1150        {
  1151          "internalType": "uint256",
  1152          "name": "reserveIn",
  1153          "type": "uint256"
  1154        },
  1155        {
  1156          "internalType": "uint256",
  1157          "name": "reserveOut",
  1158          "type": "uint256"
  1159        }
  1160      ],
  1161      "name": "getAmountOut",
  1162      "outputs": [
  1163        {
  1164          "internalType": "uint256",
  1165          "name": "amountOut",
  1166          "type": "uint256"
  1167        }
  1168      ],
  1169      "stateMutability": "pure",
  1170      "type": "function"
  1171    },
  1172    {
  1173      "inputs": [
  1174        {
  1175          "internalType": "uint256",
  1176          "name": "amountOut",
  1177          "type": "uint256"
  1178        },
  1179        {
  1180          "internalType": "address[]",
  1181          "name": "path",
  1182          "type": "address[]"
  1183        }
  1184      ],
  1185      "name": "getAmountsIn",
  1186      "outputs": [
  1187        {
  1188          "internalType": "uint256[]",
  1189          "name": "amounts",
  1190          "type": "uint256[]"
  1191        }
  1192      ],
  1193      "stateMutability": "view",
  1194      "type": "function"
  1195    },
  1196    {
  1197      "inputs": [
  1198        {
  1199          "internalType": "uint256",
  1200          "name": "amountIn",
  1201          "type": "uint256"
  1202        },
  1203        {
  1204          "internalType": "address[]",
  1205          "name": "path",
  1206          "type": "address[]"
  1207        }
  1208      ],
  1209      "name": "getAmountsOut",
  1210      "outputs": [
  1211        {
  1212          "internalType": "uint256[]",
  1213          "name": "amounts",
  1214          "type": "uint256[]"
  1215        }
  1216      ],
  1217      "stateMutability": "view",
  1218      "type": "function"
  1219    },
  1220    {
  1221      "inputs": [
  1222        {
  1223          "internalType": "uint256",
  1224          "name": "amountA",
  1225          "type": "uint256"
  1226        },
  1227        {
  1228          "internalType": "uint256",
  1229          "name": "reserveA",
  1230          "type": "uint256"
  1231        },
  1232        {
  1233          "internalType": "uint256",
  1234          "name": "reserveB",
  1235          "type": "uint256"
  1236        }
  1237      ],
  1238      "name": "quote",
  1239      "outputs": [
  1240        {
  1241          "internalType": "uint256",
  1242          "name": "amountB",
  1243          "type": "uint256"
  1244        }
  1245      ],
  1246      "stateMutability": "pure",
  1247      "type": "function"
  1248    },
  1249    {
  1250      "inputs": [
  1251        {
  1252          "internalType": "address",
  1253          "name": "tokenA",
  1254          "type": "address"
  1255        },
  1256        {
  1257          "internalType": "address",
  1258          "name": "tokenB",
  1259          "type": "address"
  1260        },
  1261        {
  1262          "internalType": "uint256",
  1263          "name": "liquidity",
  1264          "type": "uint256"
  1265        },
  1266        {
  1267          "internalType": "uint256",
  1268          "name": "amountAMin",
  1269          "type": "uint256"
  1270        },
  1271        {
  1272          "internalType": "uint256",
  1273          "name": "amountBMin",
  1274          "type": "uint256"
  1275        },
  1276        {
  1277          "internalType": "address",
  1278          "name": "to",
  1279          "type": "address"
  1280        },
  1281        {
  1282          "internalType": "uint256",
  1283          "name": "deadline",
  1284          "type": "uint256"
  1285        }
  1286      ],
  1287      "name": "removeLiquidity",
  1288      "outputs": [
  1289        {
  1290          "internalType": "uint256",
  1291          "name": "amountA",
  1292          "type": "uint256"
  1293        },
  1294        {
  1295          "internalType": "uint256",
  1296          "name": "amountB",
  1297          "type": "uint256"
  1298        }
  1299      ],
  1300      "stateMutability": "nonpayable",
  1301      "type": "function"
  1302    },
  1303    {
  1304      "inputs": [
  1305        {
  1306          "internalType": "address",
  1307          "name": "token",
  1308          "type": "address"
  1309        },
  1310        {
  1311          "internalType": "uint256",
  1312          "name": "liquidity",
  1313          "type": "uint256"
  1314        },
  1315        {
  1316          "internalType": "uint256",
  1317          "name": "amountTokenMin",
  1318          "type": "uint256"
  1319        },
  1320        {
  1321          "internalType": "uint256",
  1322          "name": "amountETHMin",
  1323          "type": "uint256"
  1324        },
  1325        {
  1326          "internalType": "address",
  1327          "name": "to",
  1328          "type": "address"
  1329        },
  1330        {
  1331          "internalType": "uint256",
  1332          "name": "deadline",
  1333          "type": "uint256"
  1334        }
  1335      ],
  1336      "name": "removeLiquidityETH",
  1337      "outputs": [
  1338        {
  1339          "internalType": "uint256",
  1340          "name": "amountToken",
  1341          "type": "uint256"
  1342        },
  1343        {
  1344          "internalType": "uint256",
  1345          "name": "amountETH",
  1346          "type": "uint256"
  1347        }
  1348      ],
  1349      "stateMutability": "nonpayable",
  1350      "type": "function"
  1351    },
  1352    {
  1353      "inputs": [
  1354        {
  1355          "internalType": "address",
  1356          "name": "token",
  1357          "type": "address"
  1358        },
  1359        {
  1360          "internalType": "uint256",
  1361          "name": "liquidity",
  1362          "type": "uint256"
  1363        },
  1364        {
  1365          "internalType": "uint256",
  1366          "name": "amountTokenMin",
  1367          "type": "uint256"
  1368        },
  1369        {
  1370          "internalType": "uint256",
  1371          "name": "amountETHMin",
  1372          "type": "uint256"
  1373        },
  1374        {
  1375          "internalType": "address",
  1376          "name": "to",
  1377          "type": "address"
  1378        },
  1379        {
  1380          "internalType": "uint256",
  1381          "name": "deadline",
  1382          "type": "uint256"
  1383        }
  1384      ],
  1385      "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
  1386      "outputs": [
  1387        {
  1388          "internalType": "uint256",
  1389          "name": "amountETH",
  1390          "type": "uint256"
  1391        }
  1392      ],
  1393      "stateMutability": "nonpayable",
  1394      "type": "function"
  1395    },
  1396    {
  1397      "inputs": [
  1398        {
  1399          "internalType": "address",
  1400          "name": "token",
  1401          "type": "address"
  1402        },
  1403        {
  1404          "internalType": "uint256",
  1405          "name": "liquidity",
  1406          "type": "uint256"
  1407        },
  1408        {
  1409          "internalType": "uint256",
  1410          "name": "amountTokenMin",
  1411          "type": "uint256"
  1412        },
  1413        {
  1414          "internalType": "uint256",
  1415          "name": "amountETHMin",
  1416          "type": "uint256"
  1417        },
  1418        {
  1419          "internalType": "address",
  1420          "name": "to",
  1421          "type": "address"
  1422        },
  1423        {
  1424          "internalType": "uint256",
  1425          "name": "deadline",
  1426          "type": "uint256"
  1427        },
  1428        {
  1429          "internalType": "bool",
  1430          "name": "approveMax",
  1431          "type": "bool"
  1432        },
  1433        {
  1434          "internalType": "uint8",
  1435          "name": "v",
  1436          "type": "uint8"
  1437        },
  1438        {
  1439          "internalType": "bytes32",
  1440          "name": "r",
  1441          "type": "bytes32"
  1442        },
  1443        {
  1444          "internalType": "bytes32",
  1445          "name": "s",
  1446          "type": "bytes32"
  1447        }
  1448      ],
  1449      "name": "removeLiquidityETHWithPermit",
  1450      "outputs": [
  1451        {
  1452          "internalType": "uint256",
  1453          "name": "amountToken",
  1454          "type": "uint256"
  1455        },
  1456        {
  1457          "internalType": "uint256",
  1458          "name": "amountETH",
  1459          "type": "uint256"
  1460        }
  1461      ],
  1462      "stateMutability": "nonpayable",
  1463      "type": "function"
  1464    },
  1465    {
  1466      "inputs": [
  1467        {
  1468          "internalType": "address",
  1469          "name": "token",
  1470          "type": "address"
  1471        },
  1472        {
  1473          "internalType": "uint256",
  1474          "name": "liquidity",
  1475          "type": "uint256"
  1476        },
  1477        {
  1478          "internalType": "uint256",
  1479          "name": "amountTokenMin",
  1480          "type": "uint256"
  1481        },
  1482        {
  1483          "internalType": "uint256",
  1484          "name": "amountETHMin",
  1485          "type": "uint256"
  1486        },
  1487        {
  1488          "internalType": "address",
  1489          "name": "to",
  1490          "type": "address"
  1491        },
  1492        {
  1493          "internalType": "uint256",
  1494          "name": "deadline",
  1495          "type": "uint256"
  1496        },
  1497        {
  1498          "internalType": "bool",
  1499          "name": "approveMax",
  1500          "type": "bool"
  1501        },
  1502        {
  1503          "internalType": "uint8",
  1504          "name": "v",
  1505          "type": "uint8"
  1506        },
  1507        {
  1508          "internalType": "bytes32",
  1509          "name": "r",
  1510          "type": "bytes32"
  1511        },
  1512        {
  1513          "internalType": "bytes32",
  1514          "name": "s",
  1515          "type": "bytes32"
  1516        }
  1517      ],
  1518      "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
  1519      "outputs": [
  1520        {
  1521          "internalType": "uint256",
  1522          "name": "amountETH",
  1523          "type": "uint256"
  1524        }
  1525      ],
  1526      "stateMutability": "nonpayable",
  1527      "type": "function"
  1528    },
  1529    {
  1530      "inputs": [
  1531        {
  1532          "internalType": "address",
  1533          "name": "tokenA",
  1534          "type": "address"
  1535        },
  1536        {
  1537          "internalType": "address",
  1538          "name": "tokenB",
  1539          "type": "address"
  1540        },
  1541        {
  1542          "internalType": "uint256",
  1543          "name": "liquidity",
  1544          "type": "uint256"
  1545        },
  1546        {
  1547          "internalType": "uint256",
  1548          "name": "amountAMin",
  1549          "type": "uint256"
  1550        },
  1551        {
  1552          "internalType": "uint256",
  1553          "name": "amountBMin",
  1554          "type": "uint256"
  1555        },
  1556        {
  1557          "internalType": "address",
  1558          "name": "to",
  1559          "type": "address"
  1560        },
  1561        {
  1562          "internalType": "uint256",
  1563          "name": "deadline",
  1564          "type": "uint256"
  1565        },
  1566        {
  1567          "internalType": "bool",
  1568          "name": "approveMax",
  1569          "type": "bool"
  1570        },
  1571        {
  1572          "internalType": "uint8",
  1573          "name": "v",
  1574          "type": "uint8"
  1575        },
  1576        {
  1577          "internalType": "bytes32",
  1578          "name": "r",
  1579          "type": "bytes32"
  1580        },
  1581        {
  1582          "internalType": "bytes32",
  1583          "name": "s",
  1584          "type": "bytes32"
  1585        }
  1586      ],
  1587      "name": "removeLiquidityWithPermit",
  1588      "outputs": [
  1589        {
  1590          "internalType": "uint256",
  1591          "name": "amountA",
  1592          "type": "uint256"
  1593        },
  1594        {
  1595          "internalType": "uint256",
  1596          "name": "amountB",
  1597          "type": "uint256"
  1598        }
  1599      ],
  1600      "stateMutability": "nonpayable",
  1601      "type": "function"
  1602    },
  1603    {
  1604      "inputs": [
  1605        {
  1606          "internalType": "uint256",
  1607          "name": "amountOut",
  1608          "type": "uint256"
  1609        },
  1610        {
  1611          "internalType": "address[]",
  1612          "name": "path",
  1613          "type": "address[]"
  1614        },
  1615        {
  1616          "internalType": "address",
  1617          "name": "to",
  1618          "type": "address"
  1619        },
  1620        {
  1621          "internalType": "uint256",
  1622          "name": "deadline",
  1623          "type": "uint256"
  1624        }
  1625      ],
  1626      "name": "swapETHForExactTokens",
  1627      "outputs": [
  1628        {
  1629          "internalType": "uint256[]",
  1630          "name": "amounts",
  1631          "type": "uint256[]"
  1632        }
  1633      ],
  1634      "stateMutability": "payable",
  1635      "type": "function"
  1636    },
  1637    {
  1638      "inputs": [
  1639        {
  1640          "internalType": "uint256",
  1641          "name": "amountOutMin",
  1642          "type": "uint256"
  1643        },
  1644        {
  1645          "internalType": "address[]",
  1646          "name": "path",
  1647          "type": "address[]"
  1648        },
  1649        {
  1650          "internalType": "address",
  1651          "name": "to",
  1652          "type": "address"
  1653        },
  1654        {
  1655          "internalType": "uint256",
  1656          "name": "deadline",
  1657          "type": "uint256"
  1658        }
  1659      ],
  1660      "name": "swapExactETHForTokens",
  1661      "outputs": [
  1662        {
  1663          "internalType": "uint256[]",
  1664          "name": "amounts",
  1665          "type": "uint256[]"
  1666        }
  1667      ],
  1668      "stateMutability": "payable",
  1669      "type": "function"
  1670    },
  1671    {
  1672      "inputs": [
  1673        {
  1674          "internalType": "uint256",
  1675          "name": "amountOutMin",
  1676          "type": "uint256"
  1677        },
  1678        {
  1679          "internalType": "address[]",
  1680          "name": "path",
  1681          "type": "address[]"
  1682        },
  1683        {
  1684          "internalType": "address",
  1685          "name": "to",
  1686          "type": "address"
  1687        },
  1688        {
  1689          "internalType": "uint256",
  1690          "name": "deadline",
  1691          "type": "uint256"
  1692        }
  1693      ],
  1694      "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
  1695      "outputs": [],
  1696      "stateMutability": "payable",
  1697      "type": "function"
  1698    },
  1699    {
  1700      "inputs": [
  1701        {
  1702          "internalType": "uint256",
  1703          "name": "amountIn",
  1704          "type": "uint256"
  1705        },
  1706        {
  1707          "internalType": "uint256",
  1708          "name": "amountOutMin",
  1709          "type": "uint256"
  1710        },
  1711        {
  1712          "internalType": "address[]",
  1713          "name": "path",
  1714          "type": "address[]"
  1715        },
  1716        {
  1717          "internalType": "address",
  1718          "name": "to",
  1719          "type": "address"
  1720        },
  1721        {
  1722          "internalType": "uint256",
  1723          "name": "deadline",
  1724          "type": "uint256"
  1725        }
  1726      ],
  1727      "name": "swapExactTokensForETH",
  1728      "outputs": [
  1729        {
  1730          "internalType": "uint256[]",
  1731          "name": "amounts",
  1732          "type": "uint256[]"
  1733        }
  1734      ],
  1735      "stateMutability": "nonpayable",
  1736      "type": "function"
  1737    },
  1738    {
  1739      "inputs": [
  1740        {
  1741          "internalType": "uint256",
  1742          "name": "amountIn",
  1743          "type": "uint256"
  1744        },
  1745        {
  1746          "internalType": "uint256",
  1747          "name": "amountOutMin",
  1748          "type": "uint256"
  1749        },
  1750        {
  1751          "internalType": "address[]",
  1752          "name": "path",
  1753          "type": "address[]"
  1754        },
  1755        {
  1756          "internalType": "address",
  1757          "name": "to",
  1758          "type": "address"
  1759        },
  1760        {
  1761          "internalType": "uint256",
  1762          "name": "deadline",
  1763          "type": "uint256"
  1764        }
  1765      ],
  1766      "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
  1767      "outputs": [],
  1768      "stateMutability": "nonpayable",
  1769      "type": "function"
  1770    },
  1771    {
  1772      "inputs": [
  1773        {
  1774          "internalType": "uint256",
  1775          "name": "amountIn",
  1776          "type": "uint256"
  1777        },
  1778        {
  1779          "internalType": "uint256",
  1780          "name": "amountOutMin",
  1781          "type": "uint256"
  1782        },
  1783        {
  1784          "internalType": "address[]",
  1785          "name": "path",
  1786          "type": "address[]"
  1787        },
  1788        {
  1789          "internalType": "address",
  1790          "name": "to",
  1791          "type": "address"
  1792        },
  1793        {
  1794          "internalType": "uint256",
  1795          "name": "deadline",
  1796          "type": "uint256"
  1797        }
  1798      ],
  1799      "name": "swapExactTokensForTokens",
  1800      "outputs": [
  1801        {
  1802          "internalType": "uint256[]",
  1803          "name": "amounts",
  1804          "type": "uint256[]"
  1805        }
  1806      ],
  1807      "stateMutability": "nonpayable",
  1808      "type": "function"
  1809    },
  1810    {
  1811      "inputs": [
  1812        {
  1813          "internalType": "uint256",
  1814          "name": "amountIn",
  1815          "type": "uint256"
  1816        },
  1817        {
  1818          "internalType": "uint256",
  1819          "name": "amountOutMin",
  1820          "type": "uint256"
  1821        },
  1822        {
  1823          "internalType": "address[]",
  1824          "name": "path",
  1825          "type": "address[]"
  1826        },
  1827        {
  1828          "internalType": "address",
  1829          "name": "to",
  1830          "type": "address"
  1831        },
  1832        {
  1833          "internalType": "uint256",
  1834          "name": "deadline",
  1835          "type": "uint256"
  1836        }
  1837      ],
  1838      "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
  1839      "outputs": [],
  1840      "stateMutability": "nonpayable",
  1841      "type": "function"
  1842    },
  1843    {
  1844      "inputs": [
  1845        {
  1846          "internalType": "uint256",
  1847          "name": "amountOut",
  1848          "type": "uint256"
  1849        },
  1850        {
  1851          "internalType": "uint256",
  1852          "name": "amountInMax",
  1853          "type": "uint256"
  1854        },
  1855        {
  1856          "internalType": "address[]",
  1857          "name": "path",
  1858          "type": "address[]"
  1859        },
  1860        {
  1861          "internalType": "address",
  1862          "name": "to",
  1863          "type": "address"
  1864        },
  1865        {
  1866          "internalType": "uint256",
  1867          "name": "deadline",
  1868          "type": "uint256"
  1869        }
  1870      ],
  1871      "name": "swapTokensForExactETH",
  1872      "outputs": [
  1873        {
  1874          "internalType": "uint256[]",
  1875          "name": "amounts",
  1876          "type": "uint256[]"
  1877        }
  1878      ],
  1879      "stateMutability": "nonpayable",
  1880      "type": "function"
  1881    },
  1882    {
  1883      "inputs": [
  1884        {
  1885          "internalType": "uint256",
  1886          "name": "amountOut",
  1887          "type": "uint256"
  1888        },
  1889        {
  1890          "internalType": "uint256",
  1891          "name": "amountInMax",
  1892          "type": "uint256"
  1893        },
  1894        {
  1895          "internalType": "address[]",
  1896          "name": "path",
  1897          "type": "address[]"
  1898        },
  1899        {
  1900          "internalType": "address",
  1901          "name": "to",
  1902          "type": "address"
  1903        },
  1904        {
  1905          "internalType": "uint256",
  1906          "name": "deadline",
  1907          "type": "uint256"
  1908        }
  1909      ],
  1910      "name": "swapTokensForExactTokens",
  1911      "outputs": [
  1912        {
  1913          "internalType": "uint256[]",
  1914          "name": "amounts",
  1915          "type": "uint256[]"
  1916        }
  1917      ],
  1918      "stateMutability": "nonpayable",
  1919      "type": "function"
  1920    }
  1921  ]