Skip to content

Instantly share code, notes, and snippets.

@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"
);
@ronanyeah
ronanyeah / index.css
Created September 23, 2021 01:14
motion.dev shadow css
background-color: transparent;
background-image: radial-gradient(transparent 1px,black 1px);
background-size: 5px 5px;
opacity: 0.9;
background-position: 100% 100%;
transform: translate(5px, 5px);
@ronanyeah
ronanyeah / main.rs
Created April 4, 2020 07:36
TMDb scrape
use std::fs::File;
use std::io::prelude::*;
use std::io::BufReader;
const API_KEY: &str = "☘️";
#[derive(serde::Deserialize)]
struct Res {
results: Vec<MovieDb>,
}