Skip to content

Instantly share code, notes, and snippets.

View itoonx's full-sized avatar
👻
Deep

Makkhawan Voraboot itoonx

👻
Deep
View GitHub Profile
@itoonx
itoonx / jimp-example.js
Created April 7, 2023 20:37 — forked from ASteinheiser/jimp-example.js
An example of how to use Jimp to read a base64 image string, resize, removeExif data, then return as an image buffer.
let imageBuffer = Buffer.from(body.profilePicture.split(',')[1], 'base64');
console.log(imageBuffer);
Jimp.read(imageBuffer, function(err, image) {
if (err) {
context.done(err,
prepareErrorResponse(response, 'Unable to remove EXIF data from profile picture'));
}
console.log('before transform: ', image);
image = image.resize(400, 400).exifRotate((err, exifRotatedData) => {
@itoonx
itoonx / Shamir_Secret_Sharing_Scheme.py
Last active December 15, 2022 09:33
MPC from ChatGPT
import random
# Returns a random prime number with n bits
def generate_prime(n):
while True:
p = random.getrandbits(n)
if is_prime(p):
return p
# Returns the result of evaluating a polynomial with coefficients
@itoonx
itoonx / gist:9332fd7ae7acba235c178005b6c6eaf2
Created October 22, 2021 08:10 — forked from yonjah/gist:5082855
Blocking DDOS bots with JavaScript for fun and profit! Or how easy it is to break the current protection methods and how to make it better.
TL;DR - jump to the challenge at the end
====ON BLOCKING EVIL BOTS=====
On a resent job interview I had for "Incapsula" a few days ago I was put to the challenge to break
their bot protection mechanism. Apparently node.js is not that common among bot writes and most bots
are not able to run javascript.
The challenge had two parts -
1. find what the code does.
2. implement a bot that will break the code without using js.
3. think how to make this code unbreakable
@itoonx
itoonx / multisig-redeemscript.go
Created August 6, 2021 09:00
redeem script of a 2 of 3 multi sig, to put in a P2SH address
package main
import (
"github.com/btcsuite/btcd/txscript"
"github.com/btcsuite/btcutil"
)
func BuildMultiSigRedeemScript() (string, error) {
// you can use your wif
const pools = await Utils.multiCall([...Array(parseInt(poolLength)).keys()].map(id => {
return {
pid: id.toString(),
poolInfo: new Web3EthContract(abi, masterChef).methods[poolInfoFunctionName](id),
};
}));
@itoonx
itoonx / web3_multi_providers.js
Created May 28, 2021 14:38
multicall + web 3 multi provider
const axios = require("axios");
const { MultiCall } = require("eth-multicall");
const crypto = require("crypto");
const Web3 = require("web3");
const _ = require("lodash");
const { providers } = require("ethers");
@itoonx
itoonx / example_amm.js
Last active May 10, 2021 15:18
Example Swap -> AMM Model of Uniswap
/**
Example Swap -> AMM Model of Uniswap V1,V2
**/
// Testing online
// https://jsfiddle.net/itoonx/xqah6e9v/
const asset = 'BNB'
/*
* @Author: itoonx
* @Date: 2018-05-01 22:55:25
* @Last Modified by: itoonx
* @Last Modified time: 2018-08-30 08:14:49
*/
const fs = require('fs')
const path = require('path')
const chalk = require('chalk')
const fs = require('fs')
const path = require('path')
const httpStatus = require('http-status')
const EthereumTx = require('ethereumjs-tx')
const etherwallet = require('ethereumjs-wallet')
const { web3, engine } = require('../../config/web3provider')
const getERC20Balance = async (address_without_0x, contractAddress) => {
return new Promise(async (resolve, reject) => {
@itoonx
itoonx / AMMUniswap.md
Last active July 31, 2021 13:01
AMM Model of UniswapV2

AMM Model of UniswapV2

LP Token calculator - สูตรการหามูลค่า LP Token

1 LP Value = ( Total value of Pool / Circulating supply LP )

RAY Price = 10.85

RAY Amount = 1,486,494.518254 Token