Skip to content

Instantly share code, notes, and snippets.

View shekohex's full-sized avatar
🦀
building a better world

shekohex

🦀
building a better world
View GitHub Profile
@shekohex
shekohex / substrateToEvm.ts
Created January 2, 2024 12:09
Convert Substrate Address to EVM
import { decodeAddress } from "https://esm.sh/@polkadot/util-crypto";
import { u8aToHex } from "https://esm.sh/@polkadot/util";
const input = Deno.args[0];
if (!input) {
console.error("usage: deno run substrateToEvm.ts <SUBSTRATE_ADDRESS_HERE>");
Deno.exit(1);
}
const accountId = decodeAddress(input);
const res = accountId.subarray(0, 20);
@shekohex
shekohex / claimsNative.rs
Last active January 5, 2024 12:11
Testing Pallet claims Native
import "npm:@webb-tools/tangle-substrate-types@^0.5.1";
import { ApiPromise, WsProvider } from "npm:@polkadot/api@10.9.1";
import { Keyring } from "npm:@polkadot/keyring@12.6.2";
import {
hexToU8a,
stringToU8a,
u8aToHex,
u8aToString,
} from "npm:@polkadot/util@12.6.2";
import { decodeAddress, keccakAsU8a } from "npm:@polkadot/util-crypto@12.6.2";
@shekohex
shekohex / claimsEVM.ts
Last active January 3, 2024 12:06
Testing Pallet claims EVM
import "npm:@webb-tools/tangle-substrate-types@^0.5.1";
import { ApiPromise, WsProvider } from "npm:@polkadot/api@10.9.1";
import {
hexToU8a,
stringToU8a,
u8aToHex,
u8aToString,
} from "npm:@polkadot/util@12.6.2";
import { decodeAddress } from "npm:@polkadot/util-crypto@12.6.2";
import * as ethers from "npm:ethers@6.9.1";
@shekohex
shekohex / ark_circom_witness.rs
Created September 27, 2023 07:04
Extended Witness using ark-circom
#[test]
fn extended_witness_circom2() -> Result<()> {
use std::collections::HashMap;
use ark_circom::WitnessCalculator;
let mut wtns = WitnessCalculator::new("./test-vectors/circom2_multiplier2.wasm").unwrap();
let inputs = HashMap::from([
(String::from("a"), vec![4.into()]),
(String::from("b"), vec![5.into()]),
@shekohex
shekohex / evmToSubstrate.ts
Created July 26, 2023 12:50
Convert EVM Address to Substrate address
import {
blake2AsU8a,
encodeAddress,
} from "https://esm.sh/@polkadot/util-crypto";
import {
hexToU8a,
stringToU8a,
u8aConcat,
} from "https://esm.sh/@polkadot/util";
@shekohex
shekohex / init.lua
Created July 10, 2023 13:09
Minimum Neovim Config file to work on Servers
-- Contains Neovim/Vim API and Settings.
vim.g.mapleader = " "
vim.g.maplocalleader = " "
local opt = vim.opt
opt.hlsearch = false
opt.autowrite = true -- Enable auto write
opt.clipboard = "unnamedplus" -- Sync with system clipboard
@shekohex
shekohex / generate-kpi.ts
Last active April 10, 2023 16:27
Generates KPIs for github repo
#!/usr/bin/env -S deno run -A
/**
* This script is used to generate the KPIs for a repository, by fetching all
* the issues/bugs that got resolved and the PRs that got merged in the specified time period.
* It then outputs the KPIs in a Markdown format.
*/
// Import the required modules, we need the following:
// * cli - for parsing the command line arguments
// * github - for fetching the issues/PRs from GitHub
@shekohex
shekohex / main.dart
Created January 23, 2023 20:57
An Example of using Mobile Scanner package
import 'package:flutter/material.dart';
import 'package:mobile_scanner/mobile_scanner.dart'; // version ^3.0.0-beta.4
void main() => runApp(const MaterialApp(home: MyHome()));
class MyHome extends StatelessWidget {
const MyHome({super.key});
@override
Widget build(BuildContext context) {
@shekohex
shekohex / wezterm.applescript
Created June 13, 2022 12:49
Wezterm with Alfred Custom Terminal
on alfred_script(q)
tell application "wezterm" to activate
do shell script "/Applications/WezTerm.app/Contents/MacOS/wezterm cli send-text "
tell application "System Events" to keystroke q
tell application "System Events"
key code 36 -- enter key
end tell
end alfred_script
@shekohex
shekohex / .deps...npm...@openzeppelin...contracts@4.4.2...utils...Strings.sol
Created January 19, 2022 15:41
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)
pragma solidity ^0.8.0;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";