Skip to content

Instantly share code, notes, and snippets.

@yuyasugano
yuyasugano / hex-to-weth.json
Created November 7, 2022 11:04
pending-sumulation example
{
"status": "pending-simulation",
"monitorId": "Geth_1_F_PROD",
"monitorVersion": "0.117.1",
"pendingTimeStamp": "2022-11-07T10:47:51.244Z",
"pendingBlockNumber": 15917644,
"hash": "0x4d3ba81f78b1da44994b7d0a36a2b074cb502b01bc3890a34285131abbde17d2",
"from": "0x4065149108A615930114Bb511818fc0909AA9269",
"to": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
"value": "0",
@yuyasugano
yuyasugano / hardhat.config.ts
Created October 30, 2022 02:15
amm-arbitrageur hardhat.config.ts
import { task, HardhatUserConfig } from 'hardhat/config';
import '@typechain/hardhat';
import '@nomiclabs/hardhat-waffle';
import deployer from './.secret';
require("dotenv").config();
const BSC_ENDPOINT = process.env.BSC_ENDPOINT;
const config: HardhatUserConfig = {
@yuyasugano
yuyasugano / ohlcv.py
Created September 14, 2020 12:25
Obtain ohlcv data with ccxt library in Python
#!/usr/bin/python
import ccxt
import calendar
from datetime import datetime, date, timedelta
binance = ccxt.binance()
def min_ohlcv(dt, pair, limit):
# UTC native object
since = calendar.timegm(dt.utctimetuple())*1000
@yuyasugano
yuyasugano / hardhat.config.js
Created August 6, 2022 12:58
bsc-arbitrageur
/**
* @type import('hardhat/config').HardhatUserConfig
*/
require("@nomiclabs/hardhat-ethers");
require("@nomiclabs/hardhat-waffle");
require("@nomiclabs/hardhat-etherscan");
require("dotenv").config();
const mainnetEndpoint = process.env.MAINNET_ENDPOINT;
@yuyasugano
yuyasugano / Flashswap.sol
Created April 3, 2022 07:49
New Flashswap code for BSC
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.6.6 <0.8.0;
import './UniswapV2Library.sol';
import './interfaces/IERC20.sol';
import './interfaces/IUniswapV2Pair.sol';
import './interfaces/IUniswapV2Factory.sol';
import './interfaces/IUniswapV2Router02.sol';
@yuyasugano
yuyasugano / profit.js
Last active February 19, 2022 15:26
arbitrage flashloan profit
...
const oneSplitRates = {
buy: new BigNumber(oneSplitResult1.returnAmount * unitRate).shiftedBy(-toTokenDecimals[j]).toString(),
sell: new BigNumber(oneSplitResult2.returnAmount).shiftedBy(-fromTokenDecimals[i]).toString()
}
console.log(`1inch Exchange ${targetTokens[j]}/${fromTokens[i]}: ${JSON.stringify(oneSplitRates)}`);
let profit = (oneSplitRates.sell - oneSplitRates.buy);
// profit needs to be eth price
if (fromTokens[i] != 'WETH') {
@yuyasugano
yuyasugano / authorizer.py
Created February 15, 2022 07:31
authorizer.py
def lambda_handler(event, context):
token = event['authorizationToken']
effect = 'Deny'
if token == 'cs':
effect = 'Allow'
return {
'principalId': '*',
'policyDocument': {
'Version': '2012-10-17',
@yuyasugano
yuyasugano / stats.py
Created November 9, 2020 11:15
3 ways to do test of normality with Scipy library in Python
from scipy import stats
print('Skewness is {0} and Kurtosis is {1}'.format(stats.skew(a), stats.kurtosis(a, fisher=False)))
Skewness is 0.07652272048424928 and Kurtosis is 2.772732673807923
print('Skewness is {0} and Kurtosis is {1}'.format(stats.skew(b), stats.kurtosis(b, fisher=False)))
Skewness is -0.03504745242988745 and Kurtosis is 1.7525462915557393
stats.describe(a)
DescribeResult(nobs=1000, minmax=(-2.8249022278040115, 3.0569511100204605), mean=-0.053648592943343135,
variance=0.9768884437369372, skewness=0.07652272048424928, kurtosis=-0.2272673261920768)
@yuyasugano
yuyasugano / flashloan.js
Created December 19, 2021 23:51
MLC-FlashLoanDemo Example
// test a flashloan in Multipler V1
require('dotenv').config();
const Web3 = require('web3');
const BigNumber = require('bignumber.js');
const abis = require('./abis');
const instance = require('./build/contracts/Flashloan.json');
const web3 = new Web3(
new Web3.providers.HttpProvider(process.env.BSC_HTTPS)
);
@yuyasugano
yuyasugano / Flashloan.sol
Created December 19, 2021 06:22
MLC-FlashloanDemo Example
pragma solidity ^0.5.0;
import "./base/FlashLoanReceiverBase.sol";
import "./interfaces/ILendingPoolAddressesProvider.sol";
import "./interfaces/ILendingPool.sol";
contract Flashloan is FlashLoanReceiverBase {
address public receiver = address(this);
address public constant BNB_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;