A collection of links to useful things I've used/built over time for Bitcoin development.
https://www.bitpost.app/tx/01c5a66cd482cca4a7df4652376be33bdb10bf89a40bbb043d79f145397b7f33
OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT |
A collection of links to useful things I've used/built over time for Bitcoin development.
https://www.bitpost.app/tx/01c5a66cd482cca4a7df4652376be33bdb10bf89a40bbb043d79f145397b7f33
#rendererContainer(#rendererContainer) |
OP_1 44 OP_NUM2BIN OP_SWAP OP_CAT 01510905000000000000ffffffffbf643fc069fda04bccfeebfa8803c1d6dc1f28c63dcf6f3421f115a4c801ed0900000000c3000000 OP_CAT OP_HASH256 OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_1 OP_SPLIT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP OP_CAT OP_SWAP O |
exp
field, a fee
field and a signing secret without any kind of user management whatsoever is probably already sufficient. If you have strong opinions to the contrary about thiuse anchor_lang::prelude::*; | |
// This is your program's public key and it will update | |
// automatically when you build the project. | |
declare_id!("HAcYnZCEXGs31qKPXEJUEjPDBnxSLLL2CxSqp4zrpHze"); | |
#[program] | |
mod plus_one { | |
use super::*; | |
pub fn initialize(ctx: Context<Initialize>) -> Result<()> { |
use anchor_lang::prelude::*; | |
// This is your program's public key and it will update | |
// automatically when you build the project. | |
declare_id!("HL1HGm4o5ygkrMYcyS3WYLK3XXPVLyvp9bPksHQZUeWb"); | |
#[program] | |
mod hello_anchor { | |
use super::*; | |
pub fn initialize(ctx: Context<Initialize>, _hash: Vec<u8>) -> Result<()> { |
Create a valid8 folder in your path: mkdir ~/.local/share/valid8
Dump the metaplex program there: solana program dump -u m metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s ~/.local/share/valid8/metadata.so
Create bash script with sudo nano /usr/local/bin/metaplex-test-validator
then paste in the following code and save:
(if the /user/local/bin directory doesn't exist, you can create it using sudo mkdir -p -m 775 /usr/local/bin
)
#!/bin/bash
const program = anchor.workspace.AnchorVault as Program<AnchorVault>; | |
const connection = anchor.getProvider().connection; | |
const signer = Keypair.generate(); | |
const vault = PublicKey.findProgramAddressSync([Buffer.from("vault"), signer.publicKey.toBuffer()], program.programId)[0]; | |
const confirm = async (signature: string): Promise<string> => { | |
const block = await connection.getLatestBlockhash(); |
use anchor_lang::{prelude::*, Discriminator}; | |
pub mod jupiter { | |
use super::*; | |
declare_id!("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"); | |
#[derive(AnchorDeserialize, AnchorSerialize)] | |
pub struct SharedAccountsRoute { | |
pub id: u8, | |
pub route_plan: Vec<RoutePlanStep>, | |
pub in_amount: u64, |