Coder Social home page Coder Social logo

dex-arb's Introduction

dex-arb

uniswap v3 function

Contract address:0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45

{
  approveMax: [ 'address' ],
  approveMaxMinusOne: [ 'address' ],
  approveZeroThenMax: [ 'address' ],
  approveZeroThenMaxMinusOne: [ 'address' ],
  callPositionManager: [ 'bytes' ],
  checkOracleSlippage: [ 'bytes', 'uint24', 'uint32' ],
  exactInput: [ 'bytes', 'address', 'uint256', 'uint256' ],
  exactInputSingle: [
    'address', 'address',
    'uint24',  'address',
    'uint256', 'uint256',
    'uint160'
  ],
  exactOutput: [ 'bytes', 'address', 'uint256', 'uint256' ],
  exactOutputSingle: [
    'address', 'address',
    'uint24',  'address',
    'uint256', 'uint256',
    'uint160'
  ],
  getApprovalType: [ 'address', 'uint256' ],
  increaseLiquidity: [ 'address', 'address', 'uint256', 'uint256', 'uint256' ],
  mint: [
    'address', 'address',
    'uint24',  'int24',
    'int24',   'uint256',
    'uint256', 'address'
  ],
  multicall: [ 'bytes[]' ],
  pull: [ 'address', 'uint256' ],
  selfPermit: [ 'address', 'uint256', 'uint256', 'uint8', 'bytes32', 'bytes32' ],
  selfPermitAllowed: [ 'address', 'uint256', 'uint256', 'uint8', 'bytes32', 'bytes32' ],
  selfPermitAllowedIfNecessary: [ 'address', 'uint256', 'uint256', 'uint8', 'bytes32', 'bytes32' ],
  selfPermitIfNecessary: [ 'address', 'uint256', 'uint256', 'uint8', 'bytes32', 'bytes32' ],
  swapExactTokensForTokens: [ 'uint256', 'uint256', 'address[]', 'address' ],
  swapTokensForExactTokens: [ 'uint256', 'uint256', 'address[]', 'address' ],
  sweepToken: [ 'address', 'uint256' ],
  sweepTokenWithFee: [ 'address', 'uint256', 'address', 'uint256', 'address' ],
  uniswapV3SwapCallback: [ 'int256', 'int256', 'bytes' ],
  unwrapWETH9: [ 'uint256' ],
  unwrapWETH9WithFee: [ 'uint256', 'uint256', 'address' ],
  wrapETH: [ 'uint256' ]
}

Function Signature

{
  '0xe8e33700': 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)',
  '0xf305d719': 'addLiquidityETH(address,uint256,uint256,uint256,address,uint256)',
  '0x85f8c259': 'getAmountIn(uint256,uint256,uint256)',
  '0x054d50d4': 'getAmountOut(uint256,uint256,uint256)',
  '0x1f00ca74': 'getAmountsIn(uint256,address[])',
  '0xd06ca61f': 'getAmountsOut(uint256,address[])',
  '0xad615dec': 'quote(uint256,uint256,uint256)',
  '0xbaa2abde': 'removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)',
  '0x02751cec': 'removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)',
  '0xaf2979eb': 'removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)',
  '0xded9382a': 'removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)',
  '0x5b0d5984': 'removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)',
  '0x2195995c': 'removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)',
  '0xfb3bdb41': 'swapETHForExactTokens(uint256,address[],address,uint256)',
  '0x7ff36ab5': 'swapExactETHForTokens(uint256,address[],address,uint256)',
  '0xb6f9de95': 'swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)',
  '0x18cbafe5': 'swapExactTokensForETH(uint256,uint256,address[],address,uint256)',
  '0x791ac947': 'swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)',
  '0x38ed1739': 'swapExactTokensForTokens(uint256,uint256,address[],address,uint256)',
  '0x5c11d795': 'swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)',
  '0x4a25d94a': 'swapTokensForExactETH(uint256,uint256,address[],address,uint256)',
  '0x8803dbee': 'swapTokensForExactTokens(uint256,uint256,address[],address,uint256)'
}

How to decode uniswap v3 calldata

  1. get input data from provider.getTransaction(hash)
  2. use abi-decoder decode the input_data to get name and params
  3. if name === multicall, then decode with web3.eth.abi.decodeParameters

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.