Skip to content

Instantly share code, notes, and snippets.

@BlockmanCodes
BlockmanCodes / 01_deployContracts.js
Created May 31, 2023 12:24
Uniswap V3: protocol fees
const { ContractFactory, utils } = require("ethers")
const WETH9 = require("../WETH9.json")
const fs = require('fs');
const { promisify } = require('util');
const artifacts = {
UniswapV3Factory: require("@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"),
SwapRouter: require("@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"),
NFTDescriptor: require("@uniswap/v3-periphery/artifacts/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json"),
@BlockmanCodes
BlockmanCodes / listenV3Liquidity.js
Created May 28, 2023 20:40
Uniswap V3: Listen for liquidity events on pools
const ethers = require('ethers')
const v3PoolArtifact = require("@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json")
const poolAddresses = [
'0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640', // USDC/ETH 0.05%
'0xcbcdf9626bc03e24f779434178a73a0b4bad62ed', // WBTC/ETH 0.3%
'0x5777d92f208679db4b9778590fa3cab3ac9e2168', // DAI/USDC 0.01%
'0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8', // USDC/ETH 0.3%
'0x4585fe77225b41b697c938b018e2ac67ac5a20c0', // WBTC/ETH 0.05%
@BlockmanCodes
BlockmanCodes / 01_deployContracts.js
Created May 22, 2023 13:13
Uniswap V3: Deploy contracts locally - updated may 2023
const { ContractFactory, utils } = require("ethers")
const WETH9 = require("../WETH9.json")
const fs = require('fs');
const { promisify } = require('util');
const artifacts = {
UniswapV3Factory: require("@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"),
SwapRouter: require("@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"),
NFTDescriptor: require("@uniswap/v3-periphery/artifacts/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json"),
@BlockmanCodes
BlockmanCodes / listen.js
Created May 14, 2023 12:59
Uniswap V2, V3, Sushiswap: listen for swaps
const ethers = require('ethers')
const v3PoolArtifact = require("@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json")
const v2PairArtifact = require('@uniswap/v2-periphery/build/IUniswapV2Pair.json')
const USDC_ETH_V3 = '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'
const ETH_USDT_V2 = '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852'
const ETH_USDT_SUSHI = '0x06da0fd433c1a5d7a4faa01111c044910a184553'
sqrtToPrice = (sqrt) => {
@BlockmanCodes
BlockmanCodes / 01_v2Swap.js
Created May 8, 2023 11:54
Uniswap v2: fork mainnet and swap
const ethers = require('ethers');
const routerArtifact = require('@uniswap/v2-periphery/build/UniswapV2Router02.json')
const erc20Abi = require("../erc20.json")
const wethArtifact = require("../weth.json")
WETH_ADDRESS= '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
USDT_ADDRESS= '0xdAC17F958D2ee523a2206206994597C13D831ec7'
ROUTER_ADDRESS= '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'
PAIR_ADDRESS= '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852'
@BlockmanCodes
BlockmanCodes / 01_deployContracts.js
Created May 5, 2023 01:17
Uniswap V2 & SushiSwap: Swap Tokens
const {
Contract, ContractFactory, utils, constants,
} = require("ethers")
const WETH9 = require("../WETH9.json")
const factoryArtifact = require('@uniswap/v2-core/build/UniswapV2Factory.json')
const routerArtifact = require('@uniswap/v2-periphery/build/UniswapV2Router02.json')
const pairArtifact = require('@uniswap/v2-periphery/build/IUniswapV2Pair.json')
@BlockmanCodes
BlockmanCodes / findSushiPairs.js
Created April 26, 2023 11:51
SushiSwap: find pair addresses on sushi and uni
const ethers = require('ethers')
const factoryArtifact = require('@uniswap/v2-core/build/UniswapV2Factory.json')
const provider = new ethers.JsonRpcProvider('https://mainnet.infura.io/v3/abc')
const SUSHI_FACTORY = '0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac'
const UNI_FACTORY = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'
const USDC = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
const WETH = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
@BlockmanCodes
BlockmanCodes / 01_deployContracts.js
Created April 21, 2023 11:51
Uniswap V3: listen for new pools locally
/*
npx hardhat run --network localhost scripts/01_deployContracts.js
*/
const { ContractFactory, utils } = require("ethers")
const WETH9 = require("../WETH9.json")
const artifacts = {
UniswapV3Factory: require("@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"),
SwapRouter: require("@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"),
@BlockmanCodes
BlockmanCodes / Imports
Last active November 2, 2024 22:22
20230415 - Deploy Uniswap V2 Pool Locally & Add Liquidity
const { Contract, ContractFactory, utils, BigNumber, constants } = require("ethers")
const WETH9 = require("../WETH9.json")
const factoryArtifact = require('@uniswap/v2-core/build/UniswapV2Factory.json')
const routerArtifact = require('@uniswap/v2-periphery/build/UniswapV2Router02.json')
const pairArtifact = require('@uniswap/v2-periphery/build/IUniswapV2Pair.json')
async function main() { ... code here... }
@BlockmanCodes
BlockmanCodes / Other
Last active January 19, 2023 01:39
Uniswap V3 Price Impact
const { abi: QuoterV2ABI } = require('@uniswap/v3-periphery/artifacts/contracts/lens/QuoterV2.sol/QuoterV2.json')
const { abi: PoolABI } = require('@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json')
const { abi: FactoryABI } = require("@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json")
const QUOTER2_ADDRESS = '0x61fFE014bA17989E743c5F6cB21bF9697530B21e'
const FACTORY_ADDRESS = '0x1F98431c8aD98523631AE4a59f267346ea31F984'
const WETH_ADDRESS = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
const USDC_ADDRESS = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'