Skip to content

Instantly share code, notes, and snippets.

module Extraction exposing (rule)
import Dict exposing (Dict)
import Elm.Syntax.Declaration as Declaration exposing (Declaration)
import Elm.Syntax.Node as Node exposing (Node)
import Elm.Syntax.TypeAnnotation exposing (TypeAnnotation(..))
import Json.Encode as JE
import Maybe.Extra exposing (unwrap)
import Result.Extra
import Review.Rule as Rule exposing (Rule)
#!/bin/bash
search_path="."
find "$search_path" \
-type d -name "node_modules" -prune -o \
-type f \( -name "package.json" -o -name "package-lock.json" \) \
-exec sh -c '
file="$1"
search_string='solana\\/web3.*1\.95'
@ronanyeah
ronanyeah / index.ts
Created July 5, 2024 17:23
Linux OpenSSL + Browser Web Crypto interop
const opensslPrefix = new TextEncoder().encode("Salted__");
async function encryptBuffer(data: Uint8Array, password: string) {
const salt = crypto.getRandomValues(new Uint8Array(8));
const { iv, key } = await passwordToKeyAndIV(password, salt);
const encrypted = await crypto.subtle.encrypt(
{ name: "AES-CBC", iv: iv },
key,
data
@ronanyeah
ronanyeah / Cargo.toml
Created December 13, 2023 23:03
Switchboard Function Secrets
[package]
name = "secrets_compile"
version = "0.1.0"
edition = "2021"
[dependencies]
aes-gcm = "0.10.3"
base64 = "0.21.5"
rand = "0.8.5"
reqwest = "0.11.22"
@ronanyeah
ronanyeah / sol_games.md
Last active December 13, 2023 15:46
Solana Games Resources
@ronanyeah
ronanyeah / send_cnft.rs
Created September 30, 2023 17:57
Send a Solana compressed NFT using a Rust client
use mpl_bubblegum::accounts::TreeConfig;
use solana_sdk::{bs58, instruction::AccountMeta, instruction::Instruction, pubkey::Pubkey};
#[derive(serde::Deserialize)]
struct HeliusResponse<T> {
result: T,
}
#[derive(serde::Deserialize)]
struct HeliusCompression {
@ronanyeah
ronanyeah / wc.ts
Created September 7, 2023 15:17
WalletConnect Solana
import { WalletConnectWalletAdapter } from "@solana/wallet-adapter-walletconnect";
const adapter = new WalletConnectWalletAdapter({
network: "mainnet-beta" as any,
options: {
projectId: "<id>",
},
});
adapter.connect();
@ronanyeah
ronanyeah / index.js
Created June 5, 2022 14:17
[].reduce vs. [].flatMap
const xs = [...Array(10000).keys()];
const prom = (n) => Promise.resolve(n);
(async () => {
console.time("reduce");
const t1 = xs.reduce(
(memo, n) => (n % 2 === 0 ? [...memo, prom(n)] : memo),
[]
);
@ronanyeah
ronanyeah / ed25519.rs
Created January 20, 2022 02:51
ED25519 Solana
use solana_sdk::{signature::Signer, signer::keypair::Keypair, transaction::Transaction};
#[derive(serde::Deserialize)]
struct Env {
cluster: String,
admin_wallet: String,
}
//pubkey: E61KAqVnsEq3N6ApArVoYp1FMBqJKDDBcijDe6tmEHte,
//let signature: [u8; 64] = [
const web3 = require("@solana/web3.js");
const { Token, TOKEN_PROGRAM_ID } = require("@solana/spl-token");
const { MINT_ID } = process.env;
const connection = new web3.Connection(
web3.clusterApiUrl("mainnet-beta"),
"confirmed"
);