Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
Looking to contribute

cmd cmdruid

💭
Looking to contribute
  • Freelance
  • Austin, TX
  • 19:20 (UTC -06:00)
View GitHub Profile
@cmdruid
cmdruid / chatgpt-links.md
Last active June 1, 2023 10:54
Resources and links following the "Hacking ChatGPT" workshop on April 8th, 2023 at Pleb Lab.
View chatgpt-links.md
@cmdruid
cmdruid / scriptless-tweak.ts
Created February 15, 2023 05:57
scriptless-tweak-example
View scriptless-tweak.ts
import { Buff } from '@cmdcode/buff-utils'
import { Hash, Field, Point } from '@cmdcode/crypto-utils'
import HDWallet from '../src/index.js'
const ec = new TextEncoder()
const root = HDWallet.fromBase58('tpubDCMvBvR79bHQMYnYCZJzwD8SRvYf287A5soUXot1ESGSJERdXQ8PsEB4tcAqa3B5nzNHKST9VxaEdAv6MvVNtzKWRwsfMrbdPjtRD4p3maM')
const node = await root.getPath('1/0')
const pub = Buff.buff(node.publicKey.slice(1))
async function taproot_tweak_pubkey(
@cmdruid
cmdruid / script.sh
Last active February 10, 2023 05:34
Setup VNC on remote server
View script.sh
#!/usr/local/env bash
mkdir -p ~/.config/autostart
cat >> ~/.config/autostart/x11vnc.desktop << 'EOF'
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer
@cmdruid
cmdruid / filter.ts
Last active February 1, 2023 18:21
Nostr Event Filter Example
View filter.ts
/** Basic implementation of NIP 01 filters in typescript. */
interface Event {
id : string
kind : number
created_at : number
pubkey : string
subject ?: string
content : string
sig : string
@cmdruid
cmdruid / asyncPipe.ts
Last active December 30, 2022 00:17
ES6 Asynchronous Pipe Function, in Typescript
View asyncPipe.ts
// Useful for type-checking your pipe middleware.
export type PipeMethod<T> = (input : T) => Promise<T>
// Return type for the pipe method.
type PipeReturn<T> = (input: T, catcher: Function) => Promise<PipeOutput<T>>
// Object returned by the pipe method.
interface PipeOutput<T> {
errors: unknown[];
output: T
@cmdruid
cmdruid / cloudflare-worker.js
Last active November 13, 2022 14:30
Import a (modified) NostrEmitter into a Cloudlfare Worker
View cloudflare-worker.js
/* Cloudflare Worker Script */
import NostrEmitter from './emitter.js'
const delay = (ms = 1000) => new Promise((r, _) => setTimeout(r, ms))
export default {
async fetch(request) {
let cache
const emitter = new NostrEmitter()
@cmdruid
cmdruid / ripemd160.js
Created October 20, 2022 21:57
Pure Javascript version of ripemd160 algorithm.
View ripemd160.js
// Copyright (c) 2021 Pieter Wuille
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
// Revised and converted to Javascript by Christopher Scott.
function bytesToBigInt(bytes) {
let num = 0n
for (let i = bytes.length - 1; i >= 0; i--) {
num = (num * 256n) + BigInt(bytes[i])
}
@cmdruid
cmdruid / letsencrypt.example.com
Created June 28, 2022 19:49
Example letsencrypt nginx configuration for lightning node.
View letsencrypt.example.com
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
listen example.com:9735 ssl;
listen example.com:9737 ssl;
server_name example.com;
@cmdruid
cmdruid / simpleCrypto.mjs
Created June 12, 2022 19:14
A simple library for symmetric encryption / decryption using the standard WebCrypto module.
View simpleCrypto.mjs
import { webcrypto as crypto } from 'crypto';
const IV_LENGTH = 16, // Length of init vector.
SECRET_KEY = process.env.SECRET_KEY;
let cryptoKey; // Cached CryptoKey object.
export async function encrypt(plaintext) {
/* Encrypt a string using the server's encryption key. */
const ec = new TextEncoder(),
@cmdruid
cmdruid / jgrep.sh
Last active May 2, 2022 04:59
Simple script that extracts the value for a given key within a JSON output.
View jgrep.sh
#!/bin/sh
## Takes an input pipe of JSON, and outputs the value for a given key.
set -e
usage() {
printf "
Takes an input pipe of JSON, and outputs the value for a given key. \n
Usage: some_JSON_output | jgrep key \n
"