Skip to content

Instantly share code, notes, and snippets.

@assafmo
assafmo / gist:e7b67c14934e1bbf9f3bfc6406d32264
Created December 20, 2020 09:20
Google sheets HTTP GET into a single cell
ARRAYFORMULA(JOIN(CHAR(10),SPLIT(IMPORTDATA("https://google.com")&CHAR(10),CHAR(10))))
@assafmo
assafmo / add_ssh_auth_keys.sh
Created September 28, 2020 12:46
Add my SSH keys to a new machine
curl -sSL github.com/assafmo.keys >> ~/.ssh/authorized_keys
@assafmo
assafmo / node_sync_eta.sh
Last active September 23, 2020 21:26
Node sync progress bar + ETA
#!/bin/bash
NETWORK_BLOCK_NUMBER=$(
curl -s http://client.secretnodes.org:26657/status | jq '.result.sync_info.latest_block_height | tonumber'
)
LOCAL_BLOCK_NUMBER=$(secretcli status | jq '.sync_info.latest_block_height | tonumber')
BLOCKS_LEFT_TO_SYNC=$(jq -n "${NETWORK_BLOCK_NUMBER} - ${LOCAL_BLOCK_NUMBER}")
sudo journalctl -u secret-node -f |
grep -Po 'height=\d+ txs=' |
@assafmo
assafmo / 1_curl_tor.sh
Last active April 4, 2024 19:45
Use curl with TOR as proxy
#!/bin/bash
# Install
sudo apt install -y tor
# Use
curl --proxy socks5h://localhost:9050 https://check.torproject.org
@assafmo
assafmo / convert_secret-1_export_to_secret-2_genesis.jq
Last active September 8, 2020 13:13
Convert secret-1 export to secret-2 genesis.json
#!/usr/bin/env jq
.chain_id = "secret-2" |
.genesis_time = (now | todate) |
.consensus_params.block.max_gas = "10000000" |
# Initialize x/register
.app_state.register = {
@assafmo
assafmo / uptime.sh
Last active August 26, 2020 09:01
Calculate validators uptime in the Secret Network
seq 2 250000 |
parallel --bar 'secretcli q block {} | jq -r ".block.last_commit.signatures[].validator_address | [{}-1,.] | @csv"'
@assafmo
assafmo / Caddyfile
Last active October 19, 2022 15:13
caddy conf for reverse proxy
banana.com
header {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods *
Access-Control-Allow-Headers *
}
@corspreflight {
method OPTIONS
@assafmo
assafmo / main.js
Created May 26, 2020 13:42
AES-256-GCM in javascript
const forge = require("node-forge");
let key = forge.util.createBuffer(new Uint8Array(new Array(32).fill(0x7)).buffer);
let iv = forge.util.createBuffer(new Uint8Array(new Array(12).fill(0x0)).buffer);
const input = forge.util.createBuffer();
input.putString("banana");
var cipher = forge.cipher.createCipher("AES-GCM", key);
cipher.start({ iv: iv });
@assafmo
assafmo / fully static
Last active April 21, 2020 12:05
Golang build flags
go build -ldflags '-linkmode external -extldflags "-static"'
@assafmo
assafmo / script-name.service
Created March 23, 2020 12:00
Create a startup script with systemd (/etc/rc.local replacement)
# Put in /etc/systemd/system/script-name.service
# Then run `sudo systemctl enable script-name`
[Unit]
Description=bla bla
[Service]
Type=oneshot
ExecStart=/bin/mount -o remount,exec /dev
RemainAfterExit=true