├── programs └── bonding_curve │ ├── src │ ├── utils │ │ ├── mod.rs │ │ └── calc.rs │ ├── instructions │ │ ├── mod.rs │ │ ├── initialize.rs │ │ ├── create_pool.rs │ │ ├── add_liquidity.rs │ │ ├── sell.rs │ │ ├── buy.rs │ │ └── remove_liquidity.rs │ ├── consts.rs │ ├── lib.rs │ ├── errors.rs │ └── state.rs │ ├── Xargo.toml │ └── Cargo.toml ├── .gitignore ├── .prettierignore ├── Cargo.toml ├── tsconfig.json ├── migrations └── deploy.ts ├── Anchor.toml ├── package.json ├── README.md ├── target └── deploy │ ├── bonding_curve.json │ └── pump-fun-IDL_original.json ├── tests └── bonding-curve.ts ├── yarn.lock └── Cargo.lock /programs/bonding_curve/src/utils/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod calc; 2 | pub use calc::*; 3 | -------------------------------------------------------------------------------- /programs/bonding_curve/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .anchor 3 | .DS_Store 4 | target 5 | **/*.rs.bk 6 | node_modules 7 | test-ledger 8 | .yarn 9 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | .anchor 3 | .DS_Store 4 | target 5 | node_modules 6 | dist 7 | build 8 | test-ledger 9 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "programs/*" 4 | ] 5 | resolver = "2" 6 | 7 | [profile.release] 8 | overflow-checks = true 9 | lto = "fat" 10 | codegen-units = 1 11 | [profile.release.build-override] 12 | opt-level = 3 13 | incremental = false 14 | codegen-units = 1 15 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/utils/calc.rs: -------------------------------------------------------------------------------- 1 | use std::ops::{Div, Mul}; 2 | 3 | pub fn convert_to_float(value: u64, decimals: u8) -> f64 { 4 | (value as f64).div(f64::powf(10.0, decimals as f64)) 5 | } 6 | 7 | pub fn convert_from_float(value: f64, decimals: u8) -> u64 { 8 | value.mul(f64::powf(10.0, decimals as f64)) as u64 9 | } 10 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod add_liquidity; 2 | pub mod create_pool; 3 | pub mod initialize; 4 | pub mod remove_liquidity; 5 | pub mod buy; 6 | pub mod sell; 7 | 8 | pub use add_liquidity::*; 9 | pub use create_pool::*; 10 | pub use initialize::*; 11 | pub use remove_liquidity::*; 12 | pub use buy::*; 13 | pub use sell::*; 14 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": [ 4 | "mocha", 5 | "chai" 6 | ], 7 | "typeRoots": [ 8 | "./node_modules/@types" 9 | ], 10 | "lib": [ 11 | "es2015" 12 | ], 13 | "module": "commonjs", 14 | "target": "es6", 15 | "esModuleInterop": true, 16 | "resolveJsonModule": true 17 | } 18 | } -------------------------------------------------------------------------------- /programs/bonding_curve/src/consts.rs: -------------------------------------------------------------------------------- 1 | pub const INITIAL_PRICE_DIVIDER: u64 = 800_000; // lamports per one token (without decimal) 2 | pub const INITIAL_LAMPORTS_FOR_POOL: u64 = 10_000_000; // 0.01SOL 3 | pub const TOKEN_SELL_LIMIT_PERCENT: u64 = 8000; // 80% 4 | pub const PROPORTION: u64 = 1280; // 800M token is sold on 500SOL ===> (500 * 2 / 800) = 1.25 ===> 800 : 1.25 = 640 ====> 640 * 2 = 1280 5 | -------------------------------------------------------------------------------- /migrations/deploy.ts: -------------------------------------------------------------------------------- 1 | // Migrations are an early feature. Currently, they're nothing more than this 2 | // single deploy script that's invoked from the CLI, injecting a provider 3 | // configured from the workspace's Anchor.toml. 4 | 5 | const anchor = require("@coral-xyz/anchor"); 6 | 7 | module.exports = async function (provider) { 8 | // Configure client to use the provider. 9 | anchor.setProvider(provider); 10 | 11 | // Add your deploy script here. 12 | }; 13 | -------------------------------------------------------------------------------- /Anchor.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | 3 | [features] 4 | seeds = true 5 | skip-lint = false 6 | 7 | [programs.devnet] 8 | bonding_curve = "5mdPUgyK9mqosLtqZvfpY5pcpCqQBWHuS3XoU34CrJK3" 9 | 10 | [registry] 11 | url = "https://api.apr.dev" 12 | 13 | [provider] 14 | cluster = "Devnet" 15 | wallet = "./id.json" 16 | 17 | [scripts] 18 | test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts" 19 | 20 | [test] 21 | startup_wait = 10000 22 | shutdown_wait = 2000 23 | upgradeable = false 24 | -------------------------------------------------------------------------------- /programs/bonding_curve/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bonding_curve" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "bonding_curve" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | 18 | [dependencies] 19 | anchor-lang = { version="0.29.0", features = ["init-if-needed"] } 20 | anchor-spl = "0.29.0" 21 | solana-program = "1.14.17" 22 | spl-token = "4.0.1" 23 | toml_datetime = "=0.6.1" -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "product": "Pumpfun Smart Contract clone", 3 | "author": "Rabnail", 4 | "scripts": { 5 | "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", 6 | "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" 7 | }, 8 | "dependencies": { 9 | "@coral-xyz/anchor": "^0.29.0", 10 | "@solana/spl-token": "^0.4.6", 11 | "@solana/web3.js": "^1.91.8" 12 | }, 13 | "devDependencies": { 14 | "@types/bn.js": "^5.1.0", 15 | "@types/chai": "^4.3.0", 16 | "@types/mocha": "^9.0.0", 17 | "chai": "^4.3.4", 18 | "mocha": "^9.0.3", 19 | "prettier": "^2.6.2", 20 | "ts-mocha": "^10.0.0", 21 | "typescript": "^4.3.5" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/initialize.rs: -------------------------------------------------------------------------------- 1 | use crate::{errors::CustomError, state::*}; 2 | use anchor_lang::prelude::*; 3 | 4 | pub fn initialize( 5 | ctx: Context, 6 | fees: f64, 7 | ) -> Result<()> { 8 | let dex_config = &mut ctx.accounts.dex_configuration_account; 9 | 10 | if fees < 0_f64 || fees > 100_f64 { 11 | return err!(CustomError::InvalidFee); 12 | } 13 | 14 | dex_config.set_inner(CurveConfiguration::new(fees)); 15 | 16 | Ok(()) 17 | } 18 | 19 | #[derive(Accounts)] 20 | pub struct InitializeCurveConfiguration<'info> { 21 | #[account( 22 | init, 23 | space = CurveConfiguration::ACCOUNT_SIZE, 24 | payer = admin, 25 | seeds = [CurveConfiguration::SEED.as_bytes()], 26 | bump, 27 | )] 28 | pub dex_configuration_account: Box>, 29 | 30 | #[account(mut)] 31 | pub admin: Signer<'info>, 32 | pub rent: Sysvar<'info, Rent>, 33 | pub system_program: Program<'info, System>, 34 | } 35 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/lib.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | pub mod errors; 4 | pub mod utils; 5 | pub mod instructions; 6 | pub mod state; 7 | pub mod consts; 8 | 9 | use crate::instructions::*; 10 | 11 | declare_id!("5mdPUgyK9mqosLtqZvfpY5pcpCqQBWHuS3XoU34CrJK3"); 12 | 13 | #[program] 14 | pub mod bonding_curve { 15 | use super::*; 16 | 17 | pub fn initialize(ctx: Context, fee: f64) -> Result<()> { 18 | instructions::initialize(ctx, fee) 19 | } 20 | 21 | pub fn create_pool(ctx: Context) -> Result<()> { 22 | instructions::create_pool(ctx) 23 | } 24 | 25 | pub fn add_liquidity( 26 | ctx: Context, 27 | ) -> Result<()> { 28 | instructions::add_liquidity(ctx) 29 | } 30 | 31 | pub fn remove_liquidity(ctx: Context, bump: u8) -> Result<()> { 32 | instructions::remove_liquidity(ctx, bump) 33 | } 34 | 35 | pub fn buy(ctx: Context, amount: u64) -> Result<()> { 36 | instructions::buy(ctx, amount) 37 | } 38 | 39 | pub fn sell(ctx: Context, amount: u64, bump: u8) -> Result<()> { 40 | instructions::sell(ctx, amount, bump) 41 | } 42 | 43 | } 44 | 45 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | #[error_code] 4 | pub enum CustomError { 5 | #[msg("Duplicate tokens are not allowed")] 6 | DuplicateTokenNotAllowed, 7 | 8 | #[msg("Failed to allocate shares")] 9 | FailedToAllocateShares, 10 | 11 | #[msg("Failed to deallocate shares")] 12 | FailedToDeallocateShares, 13 | 14 | #[msg("Insufficient shares")] 15 | InsufficientShares, 16 | 17 | #[msg("Insufficient funds to swap")] 18 | InsufficientFunds, 19 | 20 | #[msg("Invalid amount to swap")] 21 | InvalidAmount, 22 | 23 | #[msg("Invalid fee")] 24 | InvalidFee, 25 | 26 | #[msg("Failed to add liquidity")] 27 | FailedToAddLiquidity, 28 | 29 | #[msg("Failed to remove liquidity")] 30 | FailedToRemoveLiquidity, 31 | 32 | #[msg("Sold token is not enough to remove pool")] 33 | NotEnoughToRemove, 34 | 35 | #[msg("Not a pool creator")] 36 | NotCreator, 37 | 38 | #[msg("Overflow or underflow occured")] 39 | OverflowOrUnderflowOccurred, 40 | 41 | #[msg("Token amount is too big to sell")] 42 | TokenAmountToSellTooBig, 43 | 44 | #[msg("SOL is not enough in vault")] 45 | NotEnoughSolInVault, 46 | 47 | #[msg("Token is not enough in vault")] 48 | NotEnoughTokenInVault, 49 | 50 | #[msg("Amount is negative")] 51 | NegativeNumber, 52 | } 53 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/create_pool.rs: -------------------------------------------------------------------------------- 1 | use crate::state::*; 2 | use anchor_lang::prelude::*; 3 | use anchor_spl::{ 4 | associated_token::AssociatedToken, 5 | token::{Mint, Token, TokenAccount}, 6 | }; 7 | 8 | pub fn create_pool(ctx: Context) -> Result<()> { 9 | let pool = &mut ctx.accounts.pool; 10 | 11 | pool.set_inner(LiquidityPool::new( 12 | ctx.accounts.payer.key(), 13 | ctx.accounts.token_mint.key(), 14 | ctx.bumps.pool, 15 | )); 16 | Ok(()) 17 | } 18 | 19 | #[derive(Accounts)] 20 | pub struct CreateLiquidityPool<'info> { 21 | #[account( 22 | init, 23 | space = LiquidityPool::ACCOUNT_SIZE, 24 | payer = payer, 25 | seeds = [LiquidityPool::POOL_SEED_PREFIX.as_bytes(), token_mint.key().as_ref()], 26 | bump 27 | )] 28 | pub pool: Box>, 29 | 30 | #[account(mut)] 31 | pub token_mint: Box>, 32 | 33 | #[account( 34 | init, 35 | payer = payer, 36 | associated_token::mint = token_mint, 37 | associated_token::authority = pool 38 | )] 39 | pub pool_token_account: Box>, 40 | 41 | #[account(mut)] 42 | pub payer: Signer<'info>, 43 | pub token_program: Program<'info, Token>, 44 | pub associated_token_program: Program<'info, AssociatedToken>, 45 | pub rent: Sysvar<'info, Rent>, 46 | pub system_program: Program<'info, System>, 47 | } 48 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/add_liquidity.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | use anchor_spl::{ 3 | associated_token::AssociatedToken, 4 | token::{Mint, Token, TokenAccount}, 5 | }; 6 | 7 | use crate::state::{LiquidityPool, LiquidityPoolAccount}; 8 | 9 | pub fn add_liquidity(ctx: Context) -> Result<()> { 10 | let pool = &mut ctx.accounts.pool; 11 | 12 | let token_accounts = ( 13 | &mut *ctx.accounts.token_mint, 14 | &mut *ctx.accounts.pool_token_account, 15 | &mut *ctx.accounts.user_token_account, 16 | ); 17 | 18 | pool.add_liquidity( 19 | token_accounts, 20 | &mut ctx.accounts.pool_sol_vault, 21 | &ctx.accounts.user, 22 | &ctx.accounts.token_program, 23 | &ctx.accounts.system_program, 24 | )?; 25 | Ok(()) 26 | } 27 | 28 | #[derive(Accounts)] 29 | pub struct AddLiquidity<'info> { 30 | #[account( 31 | mut, 32 | seeds = [LiquidityPool::POOL_SEED_PREFIX.as_bytes(), token_mint.key().as_ref()], 33 | bump 34 | )] 35 | pub pool: Account<'info, LiquidityPool>, 36 | 37 | #[account(mut)] 38 | pub token_mint: Box>, 39 | 40 | #[account( 41 | mut, 42 | associated_token::mint = token_mint, 43 | associated_token::authority = pool 44 | )] 45 | pub pool_token_account: Box>, 46 | 47 | #[account( 48 | mut, 49 | associated_token::mint = token_mint, 50 | associated_token::authority = user, 51 | )] 52 | pub user_token_account: Box>, 53 | 54 | /// CHECK: 55 | #[account( 56 | mut, 57 | seeds = [LiquidityPool::SOL_VAULT_PREFIX.as_bytes(), token_mint.key().as_ref()], 58 | bump 59 | )] 60 | pub pool_sol_vault: AccountInfo<'info>, 61 | 62 | #[account(mut)] 63 | pub user: Signer<'info>, 64 | pub rent: Sysvar<'info, Rent>, 65 | pub system_program: Program<'info, System>, 66 | pub token_program: Program<'info, Token>, 67 | pub associated_token_program: Program<'info, AssociatedToken>, 68 | } 69 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/sell.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | use anchor_spl::{ 3 | associated_token::AssociatedToken, 4 | token::{Mint, Token, TokenAccount}, 5 | }; 6 | 7 | use crate::state::{CurveConfiguration, LiquidityPool, LiquidityPoolAccount}; 8 | 9 | pub fn sell(ctx: Context, amount: u64, bump: u8) -> Result<()> { 10 | let pool = &mut ctx.accounts.pool; 11 | 12 | let token_one_accounts = ( 13 | &mut *ctx.accounts.token_mint, 14 | &mut *ctx.accounts.pool_token_account, 15 | &mut *ctx.accounts.user_token_account, 16 | ); 17 | 18 | pool.sell( 19 | token_one_accounts, 20 | &mut ctx.accounts.pool_sol_vault, 21 | amount, 22 | bump, 23 | &ctx.accounts.user, 24 | &ctx.accounts.token_program, 25 | &ctx.accounts.system_program, 26 | )?; 27 | Ok(()) 28 | } 29 | 30 | #[derive(Accounts)] 31 | pub struct Sell<'info> { 32 | #[account( 33 | mut, 34 | seeds = [CurveConfiguration::SEED.as_bytes()], 35 | bump, 36 | )] 37 | pub dex_configuration_account: Box>, 38 | 39 | #[account( 40 | mut, 41 | seeds = [LiquidityPool::POOL_SEED_PREFIX.as_bytes(), token_mint.key().as_ref()], 42 | bump = pool.bump 43 | )] 44 | pub pool: Box>, 45 | 46 | #[account(mut)] 47 | pub token_mint: Box>, 48 | 49 | #[account( 50 | mut, 51 | associated_token::mint = token_mint, 52 | associated_token::authority = pool 53 | )] 54 | pub pool_token_account: Box>, 55 | 56 | /// CHECK: 57 | #[account( 58 | mut, 59 | seeds = [LiquidityPool::SOL_VAULT_PREFIX.as_bytes(), token_mint.key().as_ref()], 60 | bump 61 | )] 62 | pub pool_sol_vault: AccountInfo<'info>, 63 | 64 | #[account( 65 | mut, 66 | associated_token::mint = token_mint, 67 | associated_token::authority = user, 68 | )] 69 | pub user_token_account: Box>, 70 | 71 | #[account(mut)] 72 | pub user: Signer<'info>, 73 | pub rent: Sysvar<'info, Rent>, 74 | pub system_program: Program<'info, System>, 75 | pub token_program: Program<'info, Token>, 76 | pub associated_token_program: Program<'info, AssociatedToken>, 77 | } 78 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/buy.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | use anchor_spl::{ 3 | associated_token::AssociatedToken, 4 | token::{Mint, Token, TokenAccount}, 5 | }; 6 | 7 | use crate::state::{CurveConfiguration, LiquidityPool, LiquidityPoolAccount}; 8 | 9 | pub fn buy(ctx: Context, amount: u64) -> Result<()> { 10 | let pool = &mut ctx.accounts.pool; 11 | 12 | let token_one_accounts = ( 13 | &mut *ctx.accounts.token_mint, 14 | &mut *ctx.accounts.pool_token_account, 15 | &mut *ctx.accounts.user_token_account, 16 | ); 17 | 18 | pool.buy( 19 | token_one_accounts, 20 | &mut ctx.accounts.pool_sol_vault, 21 | amount, 22 | &ctx.accounts.user, 23 | &ctx.accounts.token_program, 24 | &ctx.accounts.system_program, 25 | )?; 26 | Ok(()) 27 | } 28 | 29 | #[derive(Accounts)] 30 | pub struct Buy<'info> { 31 | #[account( 32 | mut, 33 | seeds = [CurveConfiguration::SEED.as_bytes()], 34 | bump, 35 | )] 36 | pub dex_configuration_account: Box>, 37 | 38 | #[account( 39 | mut, 40 | seeds = [LiquidityPool::POOL_SEED_PREFIX.as_bytes(), token_mint.key().as_ref()], 41 | bump = pool.bump 42 | )] 43 | pub pool: Box>, 44 | 45 | #[account(mut)] 46 | pub token_mint: Box>, 47 | 48 | #[account( 49 | mut, 50 | associated_token::mint = token_mint, 51 | associated_token::authority = pool 52 | )] 53 | pub pool_token_account: Box>, 54 | 55 | /// CHECK: 56 | #[account( 57 | mut, 58 | seeds = [LiquidityPool::SOL_VAULT_PREFIX.as_bytes(), token_mint.key().as_ref()], 59 | bump 60 | )] 61 | pub pool_sol_vault: AccountInfo<'info>, 62 | 63 | #[account( 64 | init_if_needed, 65 | payer = user, 66 | associated_token::mint = token_mint, 67 | associated_token::authority = user, 68 | )] 69 | pub user_token_account: Box>, 70 | 71 | #[account(mut)] 72 | pub user: Signer<'info>, 73 | pub rent: Sysvar<'info, Rent>, 74 | pub system_program: Program<'info, System>, 75 | pub token_program: Program<'info, Token>, 76 | pub associated_token_program: Program<'info, AssociatedToken>, 77 | } 78 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/instructions/remove_liquidity.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | use anchor_spl::{ 3 | associated_token::AssociatedToken, 4 | token::{Mint, Token, TokenAccount}, 5 | }; 6 | use crate::{consts::TOKEN_SELL_LIMIT_PERCENT, errors::CustomError, state::{LiquidityPool, LiquidityPoolAccount}}; 7 | 8 | pub fn remove_liquidity(ctx: Context, bump: u8) -> Result<()> { 9 | let pool = &mut ctx.accounts.pool; 10 | if pool.creator.key() != ctx.accounts.user.key() { 11 | return Err(CustomError::NotCreator.into()); 12 | } 13 | 14 | // if pool.total_supply.checked_div(10000).ok_or(CustomError::OverflowOrUnderflowOccurred)? 15 | // .checked_mul(TOKEN_SELL_LIMIT_PERCENT) > Some(pool.reserve_token) { 16 | // return Err(CustomError::NotEnoughToRemove.into()); 17 | // } 18 | 19 | let token_accounts = ( 20 | &mut *ctx.accounts.token_mint, 21 | &mut *ctx.accounts.pool_token_account, 22 | &mut *ctx.accounts.user_token_account, 23 | ); 24 | 25 | pool.remove_liquidity( 26 | token_accounts, 27 | &mut ctx.accounts.pool_sol_vault, 28 | &ctx.accounts.user, 29 | bump, 30 | &ctx.accounts.token_program, 31 | &ctx.accounts.system_program, 32 | )?; 33 | Ok(()) 34 | } 35 | 36 | #[derive(Accounts)] 37 | pub struct RemoveLiquidity<'info> { 38 | #[account( 39 | mut, 40 | seeds = [LiquidityPool::POOL_SEED_PREFIX.as_bytes(), token_mint.key().as_ref()], 41 | bump = pool.bump 42 | )] 43 | pub pool: Box>, 44 | 45 | #[account(mut)] 46 | pub token_mint: Box>, 47 | 48 | #[account( 49 | mut, 50 | associated_token::mint = token_mint, 51 | associated_token::authority = pool 52 | )] 53 | pub pool_token_account: Box>, 54 | 55 | #[account( 56 | mut, 57 | associated_token::mint = token_mint, 58 | associated_token::authority = user, 59 | )] 60 | pub user_token_account: Box>, 61 | 62 | /// CHECK: 63 | #[account( 64 | mut, 65 | seeds = [LiquidityPool::SOL_VAULT_PREFIX.as_bytes(), token_mint.key().as_ref()], 66 | bump 67 | )] 68 | pub pool_sol_vault: AccountInfo<'info>, 69 | 70 | #[account(mut)] 71 | pub user: Signer<'info>, 72 | pub rent: Sysvar<'info, Rent>, 73 | pub system_program: Program<'info, System>, 74 | pub token_program: Program<'info, Token>, 75 | pub associated_token_program: Program<'info, AssociatedToken>, 76 | } 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Tax Token (Token 2022) Pumpfun Smart Contract ⚓ 2 | Pump.fun smart contract that works just like pump.fun, but with Token 2022 to support fee distribution to users and token creator. 3 | After hitting 100% bonding curve it is migrated to Raydium CPMM pool. 4 | 5 | There are 2 types of contracts that I have developed, one that use SPL token and migrating to Raydium AMM (V4), and one that use token 2022 to support earning from fee and migrate to Raydium CPMM. 6 | 7 | #### Token 2022 (tax token) contract deployed to devnet. 8 | [4kVhbPiRZZm5HHruHgQfR42tDGXE1SuCTkcrZ5bHGDCp](https://solscan.io/account/4kVhbPiRZZm5HHruHgQfR42tDGXE1SuCTkcrZ5bHGDCp?cluster=devnet) 9 | 10 | #### SPL token pump.fun contract deployed to devnet. 11 | [5mdPUgyK9mqosLtqZvfpY5pcpCqQBWHuS3XoU34CrJK3](https://solscan.io/account/5mdPUgyK9mqosLtqZvfpY5pcpCqQBWHuS3XoU34CrJK3?cluster=devnet) 12 | 13 | 14 | ### Benefits of upgrated new Token 2022 Pump.fun smart contract compared to pump.fun 15 | - The token creator and token holders get reward from tax fee from token itself, decreasing the possibility of rug pull by rewarding token creator not by pulling liquidity but by holding the token. 16 | - CPMM pool creation does not need openbook market program, and costs much less to create pool, providing pool creator much more SOL and reduce loss when migrating to raydium. 17 | 18 | 19 | In here, you can see the creation transaction, buy and sell transaction and withdraw transaction 20 | 21 | ## Environement and Development ⚙️ 22 | - For the one who want to clone the project, need to setup as following 23 | 24 | ``` 25 | - anchor : v0.30.1 26 | - solana : v1.18.18 27 | - rustc : v1.82.0 28 | ``` 29 | - Main functions 30 | 31 | ``` 32 | - Contract initialization 33 | - Launching pool (bonding curve) 34 | - Swap (buy and sell) 35 | - Migration (Raydium CPMM) 36 | - Some admin related functions 37 | ``` 38 | 39 | 40 | ## Recording of pumpfun smart contract test process 41 | 42 | You can see how the project works from this video. 43 | 44 | https://github.com/user-attachments/assets/09ecf494-117f-4e8b-926f-7f27942d182f 45 | 46 | 47 | Uploaded the contract test video with solscan explorer to my X. 48 | [Smart Contract Test Video](https://x.com/Rabnail_SOL/status/1902255553650340249) 49 | 50 | Original smart contract test video recorded. 51 | 52 | https://github.com/user-attachments/assets/54606cb9-3be0-49a9-a92d-2759d0648f4b 53 | 54 | 55 | ### Frontend and backend part is also developed and reserved as private. 56 | 57 | ### Raydium migration and other detailed code are reserved for private, you can contact me for more understanding about the project and other features 58 | 59 | ### 👤 Author 60 | #### Twitter: [@Rabnail_SOL](https://twitter.com/Rabnail_SOL) 61 | #### Telegram: [@Rabnail_SOL](https://t.me/Rabnail_SOL) 62 | -------------------------------------------------------------------------------- /programs/bonding_curve/src/state.rs: -------------------------------------------------------------------------------- 1 | use crate::consts::INITIAL_LAMPORTS_FOR_POOL; 2 | use crate::consts::INITIAL_PRICE_DIVIDER; 3 | use crate::consts::PROPORTION; 4 | use crate::errors::CustomError; 5 | use anchor_lang::prelude::*; 6 | use anchor_lang::system_program; 7 | use anchor_spl::token::{self, Mint, Token, TokenAccount}; 8 | 9 | #[account] 10 | pub struct CurveConfiguration { 11 | pub fees: f64, 12 | } 13 | 14 | impl CurveConfiguration { 15 | pub const SEED: &'static str = "CurveConfiguration"; 16 | 17 | // Discriminator (8) + f64 (8) 18 | pub const ACCOUNT_SIZE: usize = 8 + 32 + 8; 19 | 20 | pub fn new(fees: f64) -> Self { 21 | Self { fees } 22 | } 23 | } 24 | 25 | #[account] 26 | pub struct LiquidityProvider { 27 | pub shares: u64, // The number of shares this provider holds in the liquidity pool ( didnt add to contract now ) 28 | } 29 | 30 | impl LiquidityProvider { 31 | pub const SEED_PREFIX: &'static str = "LiqudityProvider"; // Prefix for generating PDAs 32 | 33 | // Discriminator (8) + f64 (8) 34 | pub const ACCOUNT_SIZE: usize = 8 + 8; 35 | } 36 | 37 | /////////////////////////////////////////////////////////////// 38 | /////////////////////////////////////////////////////////////// 39 | // 40 | // Linear bonding curve swap 41 | // 42 | ///////////////////////////////////////////////////////////// 43 | ///////////////////////////////////////////////////////////// 44 | // 45 | // Linear bonding curve : S = T * P ( here, p is constant that show initial price ) 46 | // SOL amount => S 47 | // Token amount => T 48 | // Initial Price => P 49 | // 50 | // SOL amount to buy Token a => S_a = ((T_a + 1) * T_a / 2) * P 51 | // SOL amount to buy Token b => S_b = ((T_b + 1) * T_b / 2) * P 52 | // 53 | // If amount a of token sold, and x (x = b - a) amount of token is bought (b > a) 54 | // S = S_a - S_b = ((T_b + T_a + 1) * (T_b - T_a) / 2) * P 55 | // 56 | // 57 | // let s = amount; 58 | // let T_a = reserve_token - amount; 59 | // let T_b = reserve_token; 60 | // let P = INITIAL_PRICE_DIVIDER; 61 | 62 | // let amount_inc = self 63 | // .reserve_token 64 | // .checked_mul(2) 65 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)? 66 | // .checked_add(amount) 67 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)? 68 | // .checked_add(1) 69 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 70 | 71 | // let multiplier = amount 72 | // .checked_div(2) 73 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 74 | 75 | // msg!("multiplier : {}", 200); 76 | // let amount_out = amount_inc 77 | // .checked_mul(multiplier) 78 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)? 79 | // .checked_mul(INITIAL_PRICE_DIVIDER) 80 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 81 | 82 | // let amount_in_float = convert_to_float(amount, token_accounts.0.decimals); 83 | 84 | // // Convert the input amount to float with decimals considered 85 | // let amount_float = convert_to_float(amount, token_accounts.0.decimals); 86 | 87 | // Apply fees 88 | // let adjusted_amount_in_float = amount_float 89 | // .div(100_f64) 90 | // .mul(100_f64.sub(bonding_configuration_account.fees)); 91 | 92 | // let adjusted_amount = 93 | // convert_from_float(adjusted_amount_in_float, token_accounts.0.decimals); 94 | 95 | // Linear bonding curve calculations 96 | // let p = 1 / INITIAL_PRICE_DIVIDER; 97 | // let t_a = convert_to_float(self.reserve_token, token_accounts.0.decimals); 98 | // let t_b = t_a + adjusted_amount_in_float; 99 | 100 | // let s_a = ((t_a + 1.0) * t_a / 2.0) * p; 101 | // let s_b = ((t_b + 1.0) * t_b / 2.0) * p; 102 | 103 | // let s = s_b - s_a; 104 | 105 | // let amount_out = convert_from_float(s, sol_token_accounts.0.decimals); 106 | 107 | // let new_reserves_one = self 108 | // .reserve_token 109 | // .checked_add(amount) 110 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 111 | // msg!("new_reserves_one : {}", ); 112 | // let new_reserves_two = self 113 | // .reserve_sol 114 | // .checked_sub(amount_out) 115 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 116 | 117 | // msg!("new_reserves_two : {}", ); 118 | // self.update_reserves(new_reserves_one, new_reserves_two)?; 119 | 120 | // let adjusted_amount_in_float = convert_to_float(amount, token_accounts.0.decimals) 121 | // .div(100_f64) 122 | // .mul(100_f64.sub(bonding_configuration_account.fees)); 123 | 124 | // let adjusted_amount = 125 | // convert_from_float(adjusted_amount_in_float, token_accounts.0.decimals); 126 | 127 | // let denominator_sum = self 128 | // .reserve_token 129 | // .checked_add(adjusted_amount) 130 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 131 | 132 | // let numerator_mul = self 133 | // .reserve_sol 134 | // .checked_mul(adjusted_amount) 135 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 136 | 137 | // let amount_out = numerator_mul 138 | // .checked_div(denominator_sum) 139 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 140 | 141 | // let new_reserves_one = self 142 | // .reserve_token 143 | // .checked_add(amount) 144 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 145 | // let new_reserves_two = self 146 | // .reserve_sol 147 | // .checked_sub(amount_out) 148 | // .ok_or(CustomError::OverflowOrUnderflowOccurred)?; 149 | 150 | // self.update_reserves(new_reserves_one, new_reserves_two)?; 151 | // let amount_out = amount.checked_div(2) 152 | 153 | // self.transfer_token_to_pool( 154 | // token_accounts.2, 155 | // token_accounts.1, 156 | // 1000 as u64, 157 | // authority, 158 | // token_program, 159 | // )?; 160 | 161 | // self.transfer_token_from_pool( 162 | // sol_token_accounts.1, 163 | // sol_token_accounts.2, 164 | // 1000 as u64, 165 | // token_program, 166 | // )?; 167 | 168 | // let amount_out: u64 = 1000000000000; 169 | // let amount_out = ((((2 * self.reserve_token + 1) * (2 * self.reserve_token + 1) + amount) as f64).sqrt() as u64 - ( 2 * self.reserve_token + 1)) / 2; 170 | 171 | // let token_sold = match self.total_supply.checked_sub(self.reserve_token) { 172 | // Some(value) if value == 0 => 1_000_000_000, 173 | // Some(value) => value, 174 | // None => return err!(CustomError::OverflowOrUnderflowOccurred), 175 | // }; 176 | 177 | // msg!("token_sold: {}", token_sold); 178 | 179 | // let amount_out: u64 = calculate_amount_out(token_sold, amount)?; 180 | // msg!("amount_out: {}", amount_out); 181 | 182 | // if self.reserve_token < amount_out { 183 | // return err!(CustomError::InvalidAmount); 184 | // } 185 | // self.reserve_sol += amount; 186 | // self.reserve_token -= amount_out; 187 | 188 | // Function to perform the calculation with error handling 189 | 190 | // fn calculate_amount_out(reserve_token_decimal: u64, amount_decimal: u64) -> Result { 191 | // let reserve_token = reserve_token_decimal.checked_div(1000000000).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 192 | // let amount = amount_decimal.checked_div(1000000000).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 193 | // msg!("Starting calculation with reserve_token: {}, amount: {}", reserve_token, amount); 194 | // let two_reserve_token = reserve_token.checked_mul(2).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 195 | // msg!("two_reserve_token: {}", two_reserve_token); 196 | 197 | // let one_added = two_reserve_token.checked_add(1).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 198 | // msg!("one_added: {}", one_added); 199 | 200 | // let squared = one_added.checked_mul(one_added).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 201 | // msg!("squared: {}", squared); 202 | 203 | // let amount_divided = amount.checked_mul(INITIAL_PRICE_DIVIDER).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 204 | // msg!("amount_divided: {}", amount_divided); 205 | 206 | // let amount_added = squared.checked_add(amount_divided).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 207 | // msg!("amount_added: {}", amount_added); 208 | 209 | // // Convert to f64 for square root calculation 210 | // let sqrt_result = (amount_added as f64).sqrt(); 211 | // msg!("sqrt_result: {}", sqrt_result); 212 | 213 | // // Check if sqrt_result can be converted back to u64 safely 214 | // if sqrt_result < 0.0 { 215 | // msg!("Error: Negative sqrt_result"); 216 | // return err!(CustomError::NegativeNumber); 217 | // } 218 | 219 | // let sqrt_u64 = sqrt_result as u64; 220 | // msg!("sqrt_u64: {}", sqrt_u64); 221 | 222 | // let subtract_one = sqrt_u64.checked_sub(one_added).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 223 | // msg!("subtract_one: {}", subtract_one); 224 | 225 | // let amount_out = subtract_one.checked_div(2).ok_or(CustomError::OverflowOrUnderflowOccurred)?; 226 | // msg!("amount_out: {}", amount_out); 227 | // let amount_out_decimal = amount_out.checked_mul(1000000000) 228 | // Ok(amount_out) 229 | // } 230 | -------------------------------------------------------------------------------- /target/deploy/bonding_curve.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "name": "pumpfun", 4 | "instructions": [ 5 | { 6 | "name": "initialize", 7 | "accounts": [ 8 | { 9 | "name": "dexConfigurationAccount", 10 | "isMut": true, 11 | "isSigner": false, 12 | "pda": { 13 | "seeds": [ 14 | { 15 | "kind": "const", 16 | "type": "string", 17 | "value": "CurveConfiguration" 18 | } 19 | ] 20 | } 21 | }, 22 | { 23 | "name": "admin", 24 | "isMut": true, 25 | "isSigner": true 26 | }, 27 | { 28 | "name": "rent", 29 | "isMut": false, 30 | "isSigner": false 31 | }, 32 | { 33 | "name": "systemProgram", 34 | "isMut": false, 35 | "isSigner": false 36 | } 37 | ], 38 | "args": [ 39 | { 40 | "name": "fee", 41 | "type": "f64" 42 | } 43 | ] 44 | }, 45 | { 46 | "name": "createPool", 47 | "accounts": [ 48 | { 49 | "name": "pool", 50 | "isMut": true, 51 | "isSigner": false, 52 | "pda": { 53 | "seeds": [ 54 | { 55 | "kind": "const", 56 | "type": "string", 57 | "value": "liquidity_pool" 58 | }, 59 | { 60 | "kind": "account", 61 | "type": "publicKey", 62 | "account": "Mint", 63 | "path": "token_mint" 64 | } 65 | ] 66 | } 67 | }, 68 | { 69 | "name": "tokenMint", 70 | "isMut": true, 71 | "isSigner": false 72 | }, 73 | { 74 | "name": "poolTokenAccount", 75 | "isMut": true, 76 | "isSigner": false 77 | }, 78 | { 79 | "name": "payer", 80 | "isMut": true, 81 | "isSigner": true 82 | }, 83 | { 84 | "name": "tokenProgram", 85 | "isMut": false, 86 | "isSigner": false 87 | }, 88 | { 89 | "name": "associatedTokenProgram", 90 | "isMut": false, 91 | "isSigner": false 92 | }, 93 | { 94 | "name": "rent", 95 | "isMut": false, 96 | "isSigner": false 97 | }, 98 | { 99 | "name": "systemProgram", 100 | "isMut": false, 101 | "isSigner": false 102 | } 103 | ], 104 | "args": [] 105 | }, 106 | { 107 | "name": "addLiquidity", 108 | "accounts": [ 109 | { 110 | "name": "pool", 111 | "isMut": true, 112 | "isSigner": false, 113 | "pda": { 114 | "seeds": [ 115 | { 116 | "kind": "const", 117 | "type": "string", 118 | "value": "liquidity_pool" 119 | }, 120 | { 121 | "kind": "account", 122 | "type": "publicKey", 123 | "account": "Mint", 124 | "path": "token_mint" 125 | } 126 | ] 127 | } 128 | }, 129 | { 130 | "name": "tokenMint", 131 | "isMut": true, 132 | "isSigner": false 133 | }, 134 | { 135 | "name": "poolTokenAccount", 136 | "isMut": true, 137 | "isSigner": false 138 | }, 139 | { 140 | "name": "userTokenAccount", 141 | "isMut": true, 142 | "isSigner": false 143 | }, 144 | { 145 | "name": "poolSolVault", 146 | "isMut": true, 147 | "isSigner": false, 148 | "pda": { 149 | "seeds": [ 150 | { 151 | "kind": "const", 152 | "type": "string", 153 | "value": "liquidity_sol_vault" 154 | }, 155 | { 156 | "kind": "account", 157 | "type": "publicKey", 158 | "account": "Mint", 159 | "path": "token_mint" 160 | } 161 | ] 162 | } 163 | }, 164 | { 165 | "name": "user", 166 | "isMut": true, 167 | "isSigner": true 168 | }, 169 | { 170 | "name": "rent", 171 | "isMut": false, 172 | "isSigner": false 173 | }, 174 | { 175 | "name": "systemProgram", 176 | "isMut": false, 177 | "isSigner": false 178 | }, 179 | { 180 | "name": "tokenProgram", 181 | "isMut": false, 182 | "isSigner": false 183 | }, 184 | { 185 | "name": "associatedTokenProgram", 186 | "isMut": false, 187 | "isSigner": false 188 | } 189 | ], 190 | "args": [] 191 | }, 192 | { 193 | "name": "removeLiquidity", 194 | "accounts": [ 195 | { 196 | "name": "pool", 197 | "isMut": true, 198 | "isSigner": false, 199 | "pda": { 200 | "seeds": [ 201 | { 202 | "kind": "const", 203 | "type": "string", 204 | "value": "liquidity_pool" 205 | }, 206 | { 207 | "kind": "account", 208 | "type": "publicKey", 209 | "account": "Mint", 210 | "path": "token_mint" 211 | } 212 | ] 213 | } 214 | }, 215 | { 216 | "name": "tokenMint", 217 | "isMut": true, 218 | "isSigner": false 219 | }, 220 | { 221 | "name": "poolTokenAccount", 222 | "isMut": true, 223 | "isSigner": false 224 | }, 225 | { 226 | "name": "userTokenAccount", 227 | "isMut": true, 228 | "isSigner": false 229 | }, 230 | { 231 | "name": "poolSolVault", 232 | "isMut": true, 233 | "isSigner": false, 234 | "pda": { 235 | "seeds": [ 236 | { 237 | "kind": "const", 238 | "type": "string", 239 | "value": "liquidity_sol_vault" 240 | }, 241 | { 242 | "kind": "account", 243 | "type": "publicKey", 244 | "account": "Mint", 245 | "path": "token_mint" 246 | } 247 | ] 248 | } 249 | }, 250 | { 251 | "name": "user", 252 | "isMut": true, 253 | "isSigner": true 254 | }, 255 | { 256 | "name": "rent", 257 | "isMut": false, 258 | "isSigner": false 259 | }, 260 | { 261 | "name": "systemProgram", 262 | "isMut": false, 263 | "isSigner": false 264 | }, 265 | { 266 | "name": "tokenProgram", 267 | "isMut": false, 268 | "isSigner": false 269 | }, 270 | { 271 | "name": "associatedTokenProgram", 272 | "isMut": false, 273 | "isSigner": false 274 | } 275 | ], 276 | "args": [ 277 | { 278 | "name": "bump", 279 | "type": "u8" 280 | } 281 | ] 282 | }, 283 | { 284 | "name": "buy", 285 | "accounts": [ 286 | { 287 | "name": "dexConfigurationAccount", 288 | "isMut": true, 289 | "isSigner": false, 290 | "pda": { 291 | "seeds": [ 292 | { 293 | "kind": "const", 294 | "type": "string", 295 | "value": "CurveConfiguration" 296 | } 297 | ] 298 | } 299 | }, 300 | { 301 | "name": "pool", 302 | "isMut": true, 303 | "isSigner": false, 304 | "pda": { 305 | "seeds": [ 306 | { 307 | "kind": "const", 308 | "type": "string", 309 | "value": "liquidity_pool" 310 | }, 311 | { 312 | "kind": "account", 313 | "type": "publicKey", 314 | "account": "Mint", 315 | "path": "token_mint" 316 | } 317 | ] 318 | } 319 | }, 320 | { 321 | "name": "tokenMint", 322 | "isMut": true, 323 | "isSigner": false 324 | }, 325 | { 326 | "name": "poolTokenAccount", 327 | "isMut": true, 328 | "isSigner": false 329 | }, 330 | { 331 | "name": "poolSolVault", 332 | "isMut": true, 333 | "isSigner": false, 334 | "pda": { 335 | "seeds": [ 336 | { 337 | "kind": "const", 338 | "type": "string", 339 | "value": "liquidity_sol_vault" 340 | }, 341 | { 342 | "kind": "account", 343 | "type": "publicKey", 344 | "account": "Mint", 345 | "path": "token_mint" 346 | } 347 | ] 348 | } 349 | }, 350 | { 351 | "name": "userTokenAccount", 352 | "isMut": true, 353 | "isSigner": false 354 | }, 355 | { 356 | "name": "user", 357 | "isMut": true, 358 | "isSigner": true 359 | }, 360 | { 361 | "name": "rent", 362 | "isMut": false, 363 | "isSigner": false 364 | }, 365 | { 366 | "name": "systemProgram", 367 | "isMut": false, 368 | "isSigner": false 369 | }, 370 | { 371 | "name": "tokenProgram", 372 | "isMut": false, 373 | "isSigner": false 374 | }, 375 | { 376 | "name": "associatedTokenProgram", 377 | "isMut": false, 378 | "isSigner": false 379 | } 380 | ], 381 | "args": [ 382 | { 383 | "name": "amount", 384 | "type": "u64" 385 | } 386 | ] 387 | }, 388 | { 389 | "name": "sell", 390 | "accounts": [ 391 | { 392 | "name": "dexConfigurationAccount", 393 | "isMut": true, 394 | "isSigner": false, 395 | "pda": { 396 | "seeds": [ 397 | { 398 | "kind": "const", 399 | "type": "string", 400 | "value": "CurveConfiguration" 401 | } 402 | ] 403 | } 404 | }, 405 | { 406 | "name": "pool", 407 | "isMut": true, 408 | "isSigner": false, 409 | "pda": { 410 | "seeds": [ 411 | { 412 | "kind": "const", 413 | "type": "string", 414 | "value": "liquidity_pool" 415 | }, 416 | { 417 | "kind": "account", 418 | "type": "publicKey", 419 | "account": "Mint", 420 | "path": "token_mint" 421 | } 422 | ] 423 | } 424 | }, 425 | { 426 | "name": "tokenMint", 427 | "isMut": true, 428 | "isSigner": false 429 | }, 430 | { 431 | "name": "poolTokenAccount", 432 | "isMut": true, 433 | "isSigner": false 434 | }, 435 | { 436 | "name": "poolSolVault", 437 | "isMut": true, 438 | "isSigner": false, 439 | "pda": { 440 | "seeds": [ 441 | { 442 | "kind": "const", 443 | "type": "string", 444 | "value": "liquidity_sol_vault" 445 | }, 446 | { 447 | "kind": "account", 448 | "type": "publicKey", 449 | "account": "Mint", 450 | "path": "token_mint" 451 | } 452 | ] 453 | } 454 | }, 455 | { 456 | "name": "userTokenAccount", 457 | "isMut": true, 458 | "isSigner": false 459 | }, 460 | { 461 | "name": "user", 462 | "isMut": true, 463 | "isSigner": true 464 | }, 465 | { 466 | "name": "rent", 467 | "isMut": false, 468 | "isSigner": false 469 | }, 470 | { 471 | "name": "systemProgram", 472 | "isMut": false, 473 | "isSigner": false 474 | }, 475 | { 476 | "name": "tokenProgram", 477 | "isMut": false, 478 | "isSigner": false 479 | }, 480 | { 481 | "name": "associatedTokenProgram", 482 | "isMut": false, 483 | "isSigner": false 484 | } 485 | ], 486 | "args": [ 487 | { 488 | "name": "amount", 489 | "type": "u64" 490 | }, 491 | { 492 | "name": "bump", 493 | "type": "u8" 494 | } 495 | ] 496 | } 497 | ], 498 | "accounts": [ 499 | { 500 | "name": "CurveConfiguration", 501 | "type": { 502 | "kind": "struct", 503 | "fields": [ 504 | { 505 | "name": "fees", 506 | "type": "f64" 507 | } 508 | ] 509 | } 510 | }, 511 | { 512 | "name": "LiquidityProvider", 513 | "type": { 514 | "kind": "struct", 515 | "fields": [ 516 | { 517 | "name": "shares", 518 | "type": "u64" 519 | } 520 | ] 521 | } 522 | }, 523 | { 524 | "name": "LiquidityPool", 525 | "type": { 526 | "kind": "struct", 527 | "fields": [ 528 | { 529 | "name": "creator", 530 | "type": "publicKey" 531 | }, 532 | { 533 | "name": "token", 534 | "type": "publicKey" 535 | }, 536 | { 537 | "name": "totalSupply", 538 | "type": "u64" 539 | }, 540 | { 541 | "name": "reserveToken", 542 | "type": "u64" 543 | }, 544 | { 545 | "name": "reserveSol", 546 | "type": "u64" 547 | }, 548 | { 549 | "name": "bump", 550 | "type": "u8" 551 | } 552 | ] 553 | } 554 | } 555 | ], 556 | "errors": [ 557 | { 558 | "code": 6000, 559 | "name": "DuplicateTokenNotAllowed", 560 | "msg": "Duplicate tokens are not allowed" 561 | }, 562 | { 563 | "code": 6001, 564 | "name": "FailedToAllocateShares", 565 | "msg": "Failed to allocate shares" 566 | }, 567 | { 568 | "code": 6002, 569 | "name": "FailedToDeallocateShares", 570 | "msg": "Failed to deallocate shares" 571 | }, 572 | { 573 | "code": 6003, 574 | "name": "InsufficientShares", 575 | "msg": "Insufficient shares" 576 | }, 577 | { 578 | "code": 6004, 579 | "name": "InsufficientFunds", 580 | "msg": "Insufficient funds to swap" 581 | }, 582 | { 583 | "code": 6005, 584 | "name": "InvalidAmount", 585 | "msg": "Invalid amount to swap" 586 | }, 587 | { 588 | "code": 6006, 589 | "name": "InvalidFee", 590 | "msg": "Invalid fee" 591 | }, 592 | { 593 | "code": 6007, 594 | "name": "FailedToAddLiquidity", 595 | "msg": "Failed to add liquidity" 596 | }, 597 | { 598 | "code": 6008, 599 | "name": "FailedToRemoveLiquidity", 600 | "msg": "Failed to remove liquidity" 601 | }, 602 | { 603 | "code": 6009, 604 | "name": "NotEnoughToRemove", 605 | "msg": "Sold token is not enough to remove pool" 606 | }, 607 | { 608 | "code": 6010, 609 | "name": "NotCreator", 610 | "msg": "Not a pool creator" 611 | }, 612 | { 613 | "code": 6011, 614 | "name": "OverflowOrUnderflowOccurred", 615 | "msg": "Overflow or underflow occured" 616 | } 617 | ], 618 | "metadata": { 619 | "address": "5mdPUgyK9mqosLtqZvfpY5pcpCqQBWHuS3XoU34CrJK3" 620 | } 621 | } -------------------------------------------------------------------------------- /tests/bonding-curve.ts: -------------------------------------------------------------------------------- 1 | import * as anchor from "@coral-xyz/anchor"; 2 | import { Program } from "@coral-xyz/anchor"; 3 | import { BondingCurve } from "../target/types/bonding_curve" 4 | import { Connection, PublicKey, Keypair, SystemProgram, Transaction, sendAndConfirmTransaction, ComputeBudgetProgram, SYSVAR_RENT_PUBKEY } from "@solana/web3.js" 5 | import { createMint, getOrCreateAssociatedTokenAccount, mintTo, getAssociatedTokenAddress } from "@solana/spl-token" 6 | import { expect } from "chai"; 7 | import { BN } from "bn.js"; 8 | import keys from '../keys/users.json' 9 | import key2 from '../keys/user2.json' 10 | import { ASSOCIATED_PROGRAM_ID, TOKEN_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; 11 | 12 | // const connection = new Connection("https://api.devnet.solana.com") 13 | const connection = new Connection("http://localhost:8899") 14 | const curveSeed = "CurveConfiguration" 15 | const POOL_SEED_PREFIX = "liquidity_pool" 16 | const LIQUIDITY_SEED = "LiqudityProvider" 17 | const SOL_VAULT_PREFIX = "liquidity_sol_vault" 18 | function sleep(ms: number) { 19 | return new Promise(resolve => setTimeout(resolve, ms)); 20 | } 21 | 22 | describe("bonding_curve", () => { 23 | anchor.setProvider(anchor.AnchorProvider.env()); 24 | 25 | const program = anchor.workspace.BondingCurve as Program; 26 | 27 | // custom setting 28 | const user = Keypair.fromSecretKey(new Uint8Array(keys)) 29 | const user2 = Keypair.fromSecretKey(new Uint8Array(key2)) 30 | const tokenDecimal = 9 31 | const amount = new BN(1000000000).mul(new BN(10 ** tokenDecimal)) 32 | 33 | let mint1: PublicKey 34 | let tokenAta1: PublicKey 35 | 36 | // let mint2: PublicKey 37 | // let tokenAta2: PublicKey 38 | 39 | console.log("Admin's wallet address is : ", user.publicKey.toBase58()) 40 | 41 | it("Airdrop to admin wallet", async () => { 42 | console.log(`Requesting airdrop to admin for 1SOL : ${user.publicKey.toBase58()}`) 43 | // 1 - Request Airdrop 44 | const signature = await connection.requestAirdrop( 45 | user.publicKey, 46 | 10 ** 9 47 | ); 48 | // 2 - Fetch the latest blockhash 49 | const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(); 50 | // 3 - Confirm transaction success 51 | await connection.confirmTransaction({ 52 | blockhash, 53 | lastValidBlockHeight, 54 | signature 55 | }, 'finalized'); 56 | console.log("admin wallet balance : ", (await connection.getBalance(user.publicKey)) / 10 ** 9, "SOL") 57 | }) 58 | 59 | // it("Airdrop to user wallet", async () => { 60 | // console.log("Created a user, address is ", user2.publicKey.toBase58()) 61 | // console.log(`Requesting airdrop for another user ${user.publicKey.toBase58()}`) 62 | // // 1 - Request Airdrop 63 | // const signature = await connection.requestAirdrop( 64 | // user2.publicKey, 65 | // 10 ** 9 66 | // ); 67 | // // 2 - Fetch the latest blockhash 68 | // const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(); 69 | // // 3 - Confirm transaction success 70 | // await connection.confirmTransaction({ 71 | // blockhash, 72 | // lastValidBlockHeight, 73 | // signature 74 | // }, 'finalized'); 75 | // console.log("user balance : ", (await connection.getBalance(user.publicKey)) / 10 ** 9, "SOL") 76 | // }) 77 | 78 | it("Mint token1 to user wallet", async () => { 79 | console.log("Trying to create and mint token1 to user's wallet") 80 | 81 | try { 82 | mint1 = await createMint(connection, user, user.publicKey, user.publicKey, tokenDecimal) 83 | console.log('mint1 address: ', mint1.toBase58()); 84 | tokenAta1 = (await getOrCreateAssociatedTokenAccount(connection, user, mint1, user.publicKey)).address 85 | console.log('token1 account address: ', tokenAta1.toBase58()); 86 | try { 87 | //minting 100 new tokens to the token address we just created 88 | await mintTo(connection, user, mint1, tokenAta1, user.publicKey, BigInt(amount.toString())) 89 | } catch (error) { 90 | console.log("🚀 ~ here:", error) 91 | } 92 | const tokenBalance = await connection.getTokenAccountBalance(tokenAta1) 93 | console.log("tokenBalance1 in user:", tokenBalance.value.uiAmount) 94 | console.log('token 1 successfully minted'); 95 | } catch (error) { 96 | console.log("Token 1 creation error \n", error) 97 | } 98 | 99 | }) 100 | 101 | // it("Mint token 2 to user wallet", async () => { 102 | // console.log("Trying to create and mint token 2 to user's wallet") 103 | // try { 104 | // mint2 = await createMint(connection, user, user.publicKey, user.publicKey, tokenDecimal) 105 | // console.log('mint 2 address: ', mint2.toBase58()); 106 | 107 | // tokenAta2 = (await getOrCreateAssociatedTokenAccount(connection, user, mint2, user.publicKey)).address 108 | // console.log('token 2 account address: ', tokenAta2.toBase58()); 109 | 110 | // await mintTo(connection, user, mint2, tokenAta2, user.publicKey, BigInt(amount.toString())) 111 | // const tokenBalance = await connection.getTokenAccountBalance(tokenAta2) 112 | // console.log("token 2 Balance in user:", tokenBalance.value.uiAmount) 113 | // console.log('token 2 successfully minted'); 114 | // } catch (error) { 115 | // console.log("Token 2 creation error \n", error) 116 | // } 117 | // }) 118 | 119 | it("Initialize the contract", async () => { 120 | try { 121 | const [curveConfig] = PublicKey.findProgramAddressSync( 122 | [Buffer.from(curveSeed)], 123 | program.programId 124 | ) 125 | const tx = new Transaction() 126 | .add( 127 | ComputeBudgetProgram.setComputeUnitLimit({ units: 10_000 }), 128 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 1200_000 }), 129 | await program.methods 130 | .initialize(1) 131 | .accounts({ 132 | dexConfigurationAccount: curveConfig, 133 | admin: user.publicKey, 134 | rent: SYSVAR_RENT_PUBKEY, 135 | systemProgram: SystemProgram.programId 136 | }) 137 | .instruction() 138 | ) 139 | tx.feePayer = user.publicKey 140 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 141 | console.log(await connection.simulateTransaction(tx)) 142 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 143 | console.log("Successfully initialized : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 144 | let pool = await program.account.curveConfiguration.fetch(curveConfig) 145 | console.log("Pool State : ", pool) 146 | } catch (error) { 147 | console.log("Error in initialization :", error) 148 | } 149 | }); 150 | 151 | it("create pool", async () => { 152 | try { 153 | const [poolPda] = PublicKey.findProgramAddressSync( 154 | [Buffer.from(POOL_SEED_PREFIX), mint1.toBuffer()], 155 | program.programId 156 | ) 157 | const poolToken = await getAssociatedTokenAddress( 158 | mint1, poolPda, true 159 | ) 160 | const tx = new Transaction() 161 | .add( 162 | ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }), 163 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }), 164 | await program.methods 165 | .createPool() 166 | .accounts({ 167 | pool: poolPda, 168 | tokenMint: mint1, 169 | poolTokenAccount: poolToken, 170 | payer: user.publicKey, 171 | tokenProgram: TOKEN_PROGRAM_ID, 172 | rent: SYSVAR_RENT_PUBKEY, 173 | associatedTokenProgram: ASSOCIATED_PROGRAM_ID, 174 | systemProgram: SystemProgram.programId 175 | }) 176 | .instruction() 177 | ) 178 | tx.feePayer = user.publicKey 179 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 180 | console.log(await connection.simulateTransaction(tx)) 181 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 182 | console.log("Successfully created pool : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 183 | } catch (error) { 184 | console.log("Error in creating pool", error) 185 | } 186 | }) 187 | 188 | it("add liquidity", async () => { 189 | try { 190 | 191 | const [poolPda] = PublicKey.findProgramAddressSync( 192 | [Buffer.from(POOL_SEED_PREFIX), mint1.toBuffer()], 193 | program.programId 194 | ) 195 | const [liquidityProviderAccount] = PublicKey.findProgramAddressSync( 196 | [Buffer.from(LIQUIDITY_SEED), poolPda.toBuffer(), user.publicKey.toBuffer()], 197 | program.programId 198 | ) 199 | 200 | const [poolSolVault] = PublicKey.findProgramAddressSync( 201 | [Buffer.from(SOL_VAULT_PREFIX), mint1.toBuffer()], 202 | program.programId 203 | ) 204 | const poolToken = await getAssociatedTokenAddress( 205 | mint1, poolPda, true 206 | ) 207 | 208 | const userAta1 = await getAssociatedTokenAddress( 209 | mint1, user.publicKey 210 | ) 211 | 212 | const tx = new Transaction() 213 | .add( 214 | ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }), 215 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }), 216 | await program.methods 217 | .addLiquidity() 218 | .accounts({ 219 | pool: poolPda, 220 | poolSolVault: poolSolVault, 221 | tokenMint: mint1, 222 | poolTokenAccount: poolToken, 223 | userTokenAccount: userAta1, 224 | user: user.publicKey, 225 | tokenProgram: TOKEN_PROGRAM_ID, 226 | associatedTokenProgram: ASSOCIATED_PROGRAM_ID, 227 | rent: SYSVAR_RENT_PUBKEY, 228 | systemProgram: SystemProgram.programId 229 | }) 230 | .instruction() 231 | ) 232 | tx.feePayer = user.publicKey 233 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 234 | console.log(await connection.simulateTransaction(tx)) 235 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 236 | console.log("Successfully added liquidity : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 237 | const userBalance = (await connection.getTokenAccountBalance(userAta1)).value.uiAmount 238 | const poolBalance = (await connection.getTokenAccountBalance(poolToken)).value.uiAmount 239 | console.log("after creating pool => userBalance:", userBalance) 240 | console.log("after creating pool => poolBalance:", poolBalance) 241 | } catch (error) { 242 | console.log("Error in adding liquidity", error) 243 | } 244 | }) 245 | 246 | it("Buy token", async () => { 247 | try { 248 | const [curveConfig] = PublicKey.findProgramAddressSync( 249 | [Buffer.from(curveSeed)], 250 | program.programId 251 | ) 252 | const [poolPda] = PublicKey.findProgramAddressSync( 253 | [Buffer.from(POOL_SEED_PREFIX), mint1.toBuffer()], 254 | program.programId 255 | ) 256 | const poolToken = await getAssociatedTokenAddress( 257 | mint1, poolPda, true 258 | ) 259 | const userAta1 = await getAssociatedTokenAddress( 260 | mint1, user.publicKey 261 | ) 262 | const [poolSolVault] = PublicKey.findProgramAddressSync( 263 | [Buffer.from(SOL_VAULT_PREFIX), mint1.toBuffer()], 264 | program.programId 265 | ) 266 | const tx = new Transaction() 267 | .add( 268 | ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }), 269 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }), 270 | await program.methods 271 | .buy(new BN(10 ** 8)) 272 | .accounts({ 273 | pool: poolPda, 274 | tokenMint: mint1, 275 | poolSolVault, 276 | poolTokenAccount: poolToken, 277 | userTokenAccount: userAta1, 278 | dexConfigurationAccount: curveConfig, 279 | user: user.publicKey, 280 | tokenProgram: TOKEN_PROGRAM_ID, 281 | associatedTokenProgram: ASSOCIATED_PROGRAM_ID, 282 | rent: SYSVAR_RENT_PUBKEY, 283 | systemProgram: SystemProgram.programId 284 | }) 285 | .instruction() 286 | ) 287 | tx.feePayer = user.publicKey 288 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 289 | console.log(await connection.simulateTransaction(tx)) 290 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 291 | console.log("Successfully bought : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 292 | 293 | } catch (error) { 294 | console.log("Error in buy transaction", error) 295 | } 296 | }) 297 | 298 | it("Sell token", async () => { 299 | try { 300 | const [curveConfig] = PublicKey.findProgramAddressSync( 301 | [Buffer.from(curveSeed)], 302 | program.programId 303 | ) 304 | const [poolPda] = PublicKey.findProgramAddressSync( 305 | [Buffer.from(POOL_SEED_PREFIX), mint1.toBuffer()], 306 | program.programId 307 | ) 308 | const poolToken = await getAssociatedTokenAddress( 309 | mint1, poolPda, true 310 | ) 311 | const userAta1 = await getAssociatedTokenAddress( 312 | mint1, user.publicKey 313 | ) 314 | const [poolSolVault, bump] = PublicKey.findProgramAddressSync( 315 | [Buffer.from(SOL_VAULT_PREFIX), mint1.toBuffer()], 316 | program.programId 317 | ) 318 | const tx = new Transaction() 319 | .add( 320 | ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }), 321 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }), 322 | await program.methods 323 | .sell(amount.div(new BN(100)), bump) 324 | .accounts({ 325 | pool: poolPda, 326 | tokenMint: mint1, 327 | poolSolVault, 328 | poolTokenAccount: poolToken, 329 | userTokenAccount: userAta1, 330 | dexConfigurationAccount: curveConfig, 331 | user: user.publicKey, 332 | tokenProgram: TOKEN_PROGRAM_ID, 333 | associatedTokenProgram: ASSOCIATED_PROGRAM_ID, 334 | rent: SYSVAR_RENT_PUBKEY, 335 | systemProgram: SystemProgram.programId 336 | }) 337 | .instruction() 338 | ) 339 | tx.feePayer = user.publicKey 340 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 341 | console.log(await connection.simulateTransaction(tx)) 342 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 343 | console.log("Successfully Sold : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 344 | 345 | } catch (error) { 346 | console.log("Error in sell transaction", error) 347 | } 348 | }) 349 | 350 | 351 | it("Remove liquidity", async () => { 352 | try { 353 | 354 | const [poolPda] = PublicKey.findProgramAddressSync( 355 | [Buffer.from(POOL_SEED_PREFIX), mint1.toBuffer()], 356 | program.programId 357 | ) 358 | 359 | const poolToken = await getAssociatedTokenAddress( 360 | mint1, poolPda, true 361 | ) 362 | const userAta1 = await getAssociatedTokenAddress( 363 | mint1, user.publicKey 364 | ) 365 | const [poolSolVault, bump] = PublicKey.findProgramAddressSync( 366 | [Buffer.from(SOL_VAULT_PREFIX), mint1.toBuffer()], 367 | program.programId 368 | ) 369 | 370 | const tx = new Transaction() 371 | .add( 372 | ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }), 373 | ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }), 374 | await program.methods 375 | .removeLiquidity(bump) 376 | .accounts({ 377 | pool: poolPda, 378 | tokenMint: mint1, 379 | poolTokenAccount: poolToken, 380 | userTokenAccount: userAta1, 381 | poolSolVault, 382 | user: user.publicKey, 383 | tokenProgram: TOKEN_PROGRAM_ID, 384 | associatedTokenProgram: ASSOCIATED_PROGRAM_ID, 385 | rent: SYSVAR_RENT_PUBKEY, 386 | systemProgram: SystemProgram.programId 387 | }) 388 | .instruction() 389 | ) 390 | tx.feePayer = user.publicKey 391 | tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash 392 | console.log(await connection.simulateTransaction(tx)) 393 | const sig = await sendAndConfirmTransaction(connection, tx, [user], { skipPreflight: true }) 394 | console.log("Successfully added liquidity : ", `https://solscan.io/tx/${sig}?cluster=devnet`) 395 | } catch (error) { 396 | console.log("Error in removing liquidity", error) 397 | } 398 | }) 399 | }); 400 | 401 | 402 | -------------------------------------------------------------------------------- /target/deploy/pump-fun-IDL_original.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "name": "pump", 4 | "instructions": [ 5 | { 6 | "name": "initialize", 7 | "docs": [ 8 | "Creates the global state." 9 | ], 10 | "accounts": [ 11 | { 12 | "name": "global", 13 | "isMut": true, 14 | "isSigner": false 15 | }, 16 | { 17 | "name": "user", 18 | "isMut": true, 19 | "isSigner": true 20 | }, 21 | { 22 | "name": "systemProgram", 23 | "isMut": false, 24 | "isSigner": false 25 | } 26 | ], 27 | "args": [] 28 | }, 29 | { 30 | "name": "setParams", 31 | "docs": [ 32 | "Sets the global state parameters." 33 | ], 34 | "accounts": [ 35 | { 36 | "name": "global", 37 | "isMut": true, 38 | "isSigner": false 39 | }, 40 | { 41 | "name": "user", 42 | "isMut": true, 43 | "isSigner": true 44 | }, 45 | { 46 | "name": "systemProgram", 47 | "isMut": false, 48 | "isSigner": false 49 | }, 50 | { 51 | "name": "eventAuthority", 52 | "isMut": false, 53 | "isSigner": false 54 | }, 55 | { 56 | "name": "program", 57 | "isMut": false, 58 | "isSigner": false 59 | } 60 | ], 61 | "args": [ 62 | { 63 | "name": "feeRecipient", 64 | "type": "publicKey" 65 | }, 66 | { 67 | "name": "initialVirtualTokenReserves", 68 | "type": "u64" 69 | }, 70 | { 71 | "name": "initialVirtualSolReserves", 72 | "type": "u64" 73 | }, 74 | { 75 | "name": "initialRealTokenReserves", 76 | "type": "u64" 77 | }, 78 | { 79 | "name": "tokenTotalSupply", 80 | "type": "u64" 81 | }, 82 | { 83 | "name": "feeBasisPoints", 84 | "type": "u64" 85 | } 86 | ] 87 | }, 88 | { 89 | "name": "create", 90 | "docs": [ 91 | "Creates a new coin and bonding curve." 92 | ], 93 | "accounts": [ 94 | { 95 | "name": "mint", 96 | "isMut": true, 97 | "isSigner": true 98 | }, 99 | { 100 | "name": "mintAuthority", 101 | "isMut": false, 102 | "isSigner": false 103 | }, 104 | { 105 | "name": "bondingCurve", 106 | "isMut": true, 107 | "isSigner": false 108 | }, 109 | { 110 | "name": "associatedBondingCurve", 111 | "isMut": true, 112 | "isSigner": false 113 | }, 114 | { 115 | "name": "global", 116 | "isMut": false, 117 | "isSigner": false 118 | }, 119 | { 120 | "name": "mplTokenMetadata", 121 | "isMut": false, 122 | "isSigner": false 123 | }, 124 | { 125 | "name": "metadata", 126 | "isMut": true, 127 | "isSigner": false 128 | }, 129 | { 130 | "name": "user", 131 | "isMut": true, 132 | "isSigner": true 133 | }, 134 | { 135 | "name": "systemProgram", 136 | "isMut": false, 137 | "isSigner": false 138 | }, 139 | { 140 | "name": "tokenProgram", 141 | "isMut": false, 142 | "isSigner": false 143 | }, 144 | { 145 | "name": "associatedTokenProgram", 146 | "isMut": false, 147 | "isSigner": false 148 | }, 149 | { 150 | "name": "rent", 151 | "isMut": false, 152 | "isSigner": false 153 | }, 154 | { 155 | "name": "eventAuthority", 156 | "isMut": false, 157 | "isSigner": false 158 | }, 159 | { 160 | "name": "program", 161 | "isMut": false, 162 | "isSigner": false 163 | } 164 | ], 165 | "args": [ 166 | { 167 | "name": "name", 168 | "type": "string" 169 | }, 170 | { 171 | "name": "symbol", 172 | "type": "string" 173 | }, 174 | { 175 | "name": "uri", 176 | "type": "string" 177 | } 178 | ] 179 | }, 180 | { 181 | "name": "buy", 182 | "docs": [ 183 | "Buys tokens from a bonding curve." 184 | ], 185 | "accounts": [ 186 | { 187 | "name": "global", 188 | "isMut": false, 189 | "isSigner": false 190 | }, 191 | { 192 | "name": "feeRecipient", 193 | "isMut": true, 194 | "isSigner": false 195 | }, 196 | { 197 | "name": "mint", 198 | "isMut": false, 199 | "isSigner": false 200 | }, 201 | { 202 | "name": "bondingCurve", 203 | "isMut": true, 204 | "isSigner": false 205 | }, 206 | { 207 | "name": "associatedBondingCurve", 208 | "isMut": true, 209 | "isSigner": false 210 | }, 211 | { 212 | "name": "associatedUser", 213 | "isMut": true, 214 | "isSigner": false 215 | }, 216 | { 217 | "name": "user", 218 | "isMut": true, 219 | "isSigner": true 220 | }, 221 | { 222 | "name": "systemProgram", 223 | "isMut": false, 224 | "isSigner": false 225 | }, 226 | { 227 | "name": "tokenProgram", 228 | "isMut": false, 229 | "isSigner": false 230 | }, 231 | { 232 | "name": "rent", 233 | "isMut": false, 234 | "isSigner": false 235 | }, 236 | { 237 | "name": "eventAuthority", 238 | "isMut": false, 239 | "isSigner": false 240 | }, 241 | { 242 | "name": "program", 243 | "isMut": false, 244 | "isSigner": false 245 | } 246 | ], 247 | "args": [ 248 | { 249 | "name": "amount", 250 | "type": "u64" 251 | }, 252 | { 253 | "name": "maxSolCost", 254 | "type": "u64" 255 | } 256 | ] 257 | }, 258 | { 259 | "name": "sell", 260 | "docs": [ 261 | "Sells tokens into a bonding curve." 262 | ], 263 | "accounts": [ 264 | { 265 | "name": "global", 266 | "isMut": false, 267 | "isSigner": false 268 | }, 269 | { 270 | "name": "feeRecipient", 271 | "isMut": true, 272 | "isSigner": false 273 | }, 274 | { 275 | "name": "mint", 276 | "isMut": false, 277 | "isSigner": false 278 | }, 279 | { 280 | "name": "bondingCurve", 281 | "isMut": true, 282 | "isSigner": false 283 | }, 284 | { 285 | "name": "associatedBondingCurve", 286 | "isMut": true, 287 | "isSigner": false 288 | }, 289 | { 290 | "name": "associatedUser", 291 | "isMut": true, 292 | "isSigner": false 293 | }, 294 | { 295 | "name": "user", 296 | "isMut": true, 297 | "isSigner": true 298 | }, 299 | { 300 | "name": "systemProgram", 301 | "isMut": false, 302 | "isSigner": false 303 | }, 304 | { 305 | "name": "associatedTokenProgram", 306 | "isMut": false, 307 | "isSigner": false 308 | }, 309 | { 310 | "name": "tokenProgram", 311 | "isMut": false, 312 | "isSigner": false 313 | }, 314 | { 315 | "name": "eventAuthority", 316 | "isMut": false, 317 | "isSigner": false 318 | }, 319 | { 320 | "name": "program", 321 | "isMut": false, 322 | "isSigner": false 323 | } 324 | ], 325 | "args": [ 326 | { 327 | "name": "amount", 328 | "type": "u64" 329 | }, 330 | { 331 | "name": "minSolOutput", 332 | "type": "u64" 333 | } 334 | ] 335 | }, 336 | { 337 | "name": "withdraw", 338 | "docs": [ 339 | "Allows the admin to withdraw liquidity for a migration once the bonding curve completes" 340 | ], 341 | "accounts": [ 342 | { 343 | "name": "global", 344 | "isMut": false, 345 | "isSigner": false 346 | }, 347 | { 348 | "name": "mint", 349 | "isMut": false, 350 | "isSigner": false 351 | }, 352 | { 353 | "name": "bondingCurve", 354 | "isMut": true, 355 | "isSigner": false 356 | }, 357 | { 358 | "name": "associatedBondingCurve", 359 | "isMut": true, 360 | "isSigner": false 361 | }, 362 | { 363 | "name": "associatedUser", 364 | "isMut": true, 365 | "isSigner": false 366 | }, 367 | { 368 | "name": "user", 369 | "isMut": true, 370 | "isSigner": true 371 | }, 372 | { 373 | "name": "systemProgram", 374 | "isMut": false, 375 | "isSigner": false 376 | }, 377 | { 378 | "name": "tokenProgram", 379 | "isMut": false, 380 | "isSigner": false 381 | }, 382 | { 383 | "name": "rent", 384 | "isMut": false, 385 | "isSigner": false 386 | }, 387 | { 388 | "name": "eventAuthority", 389 | "isMut": false, 390 | "isSigner": false 391 | }, 392 | { 393 | "name": "program", 394 | "isMut": false, 395 | "isSigner": false 396 | } 397 | ], 398 | "args": [] 399 | } 400 | ], 401 | "accounts": [ 402 | { 403 | "name": "Global", 404 | "type": { 405 | "kind": "struct", 406 | "fields": [ 407 | { 408 | "name": "initialized", 409 | "type": "bool" 410 | }, 411 | { 412 | "name": "authority", 413 | "type": "publicKey" 414 | }, 415 | { 416 | "name": "feeRecipient", 417 | "type": "publicKey" 418 | }, 419 | { 420 | "name": "initialVirtualTokenReserves", 421 | "type": "u64" 422 | }, 423 | { 424 | "name": "initialVirtualSolReserves", 425 | "type": "u64" 426 | }, 427 | { 428 | "name": "initialRealTokenReserves", 429 | "type": "u64" 430 | }, 431 | { 432 | "name": "tokenTotalSupply", 433 | "type": "u64" 434 | }, 435 | { 436 | "name": "feeBasisPoints", 437 | "type": "u64" 438 | } 439 | ] 440 | } 441 | }, 442 | { 443 | "name": "BondingCurve", 444 | "type": { 445 | "kind": "struct", 446 | "fields": [ 447 | { 448 | "name": "virtualTokenReserves", 449 | "type": "u64" 450 | }, 451 | { 452 | "name": "virtualSolReserves", 453 | "type": "u64" 454 | }, 455 | { 456 | "name": "realTokenReserves", 457 | "type": "u64" 458 | }, 459 | { 460 | "name": "realSolReserves", 461 | "type": "u64" 462 | }, 463 | { 464 | "name": "tokenTotalSupply", 465 | "type": "u64" 466 | }, 467 | { 468 | "name": "complete", 469 | "type": "bool" 470 | } 471 | ] 472 | } 473 | } 474 | ], 475 | "events": [ 476 | { 477 | "name": "CreateEvent", 478 | "fields": [ 479 | { 480 | "name": "name", 481 | "type": "string", 482 | "index": false 483 | }, 484 | { 485 | "name": "symbol", 486 | "type": "string", 487 | "index": false 488 | }, 489 | { 490 | "name": "uri", 491 | "type": "string", 492 | "index": false 493 | }, 494 | { 495 | "name": "mint", 496 | "type": "publicKey", 497 | "index": false 498 | }, 499 | { 500 | "name": "bondingCurve", 501 | "type": "publicKey", 502 | "index": false 503 | }, 504 | { 505 | "name": "user", 506 | "type": "publicKey", 507 | "index": false 508 | } 509 | ] 510 | }, 511 | { 512 | "name": "TradeEvent", 513 | "fields": [ 514 | { 515 | "name": "mint", 516 | "type": "publicKey", 517 | "index": false 518 | }, 519 | { 520 | "name": "solAmount", 521 | "type": "u64", 522 | "index": false 523 | }, 524 | { 525 | "name": "tokenAmount", 526 | "type": "u64", 527 | "index": false 528 | }, 529 | { 530 | "name": "isBuy", 531 | "type": "bool", 532 | "index": false 533 | }, 534 | { 535 | "name": "user", 536 | "type": "publicKey", 537 | "index": false 538 | }, 539 | { 540 | "name": "timestamp", 541 | "type": "i64", 542 | "index": false 543 | }, 544 | { 545 | "name": "virtualSolReserves", 546 | "type": "u64", 547 | "index": false 548 | }, 549 | { 550 | "name": "virtualTokenReserves", 551 | "type": "u64", 552 | "index": false 553 | } 554 | ] 555 | }, 556 | { 557 | "name": "CompleteEvent", 558 | "fields": [ 559 | { 560 | "name": "user", 561 | "type": "publicKey", 562 | "index": false 563 | }, 564 | { 565 | "name": "mint", 566 | "type": "publicKey", 567 | "index": false 568 | }, 569 | { 570 | "name": "bondingCurve", 571 | "type": "publicKey", 572 | "index": false 573 | }, 574 | { 575 | "name": "timestamp", 576 | "type": "i64", 577 | "index": false 578 | } 579 | ] 580 | }, 581 | { 582 | "name": "SetParamsEvent", 583 | "fields": [ 584 | { 585 | "name": "feeRecipient", 586 | "type": "publicKey", 587 | "index": false 588 | }, 589 | { 590 | "name": "initialVirtualTokenReserves", 591 | "type": "u64", 592 | "index": false 593 | }, 594 | { 595 | "name": "initialVirtualSolReserves", 596 | "type": "u64", 597 | "index": false 598 | }, 599 | { 600 | "name": "initialRealTokenReserves", 601 | "type": "u64", 602 | "index": false 603 | }, 604 | { 605 | "name": "tokenTotalSupply", 606 | "type": "u64", 607 | "index": false 608 | }, 609 | { 610 | "name": "feeBasisPoints", 611 | "type": "u64", 612 | "index": false 613 | } 614 | ] 615 | } 616 | ], 617 | "errors": [ 618 | { 619 | "code": 6000, 620 | "name": "NotAuthorized", 621 | "msg": "The given account is not authorized to execute this instruction." 622 | }, 623 | { 624 | "code": 6001, 625 | "name": "AlreadyInitialized", 626 | "msg": "The program is already initialized." 627 | }, 628 | { 629 | "code": 6002, 630 | "name": "TooMuchSolRequired", 631 | "msg": "slippage: Too much SOL required to buy the given amount of tokens." 632 | }, 633 | { 634 | "code": 6003, 635 | "name": "TooLittleSolReceived", 636 | "msg": "slippage: Too little SOL received to sell the given amount of tokens." 637 | }, 638 | { 639 | "code": 6004, 640 | "name": "MintDoesNotMatchBondingCurve", 641 | "msg": "The mint does not match the bonding curve." 642 | }, 643 | { 644 | "code": 6005, 645 | "name": "BondingCurveComplete", 646 | "msg": "The bonding curve has completed and liquidity migrated to raydium." 647 | }, 648 | { 649 | "code": 6006, 650 | "name": "BondingCurveNotComplete", 651 | "msg": "The bonding curve has not completed." 652 | }, 653 | { 654 | "code": 6007, 655 | "name": "NotInitialized", 656 | "msg": "The program is not initialized." 657 | } 658 | ], 659 | "metadata": { 660 | "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" 661 | } 662 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.17.2", "@babel/runtime@^7.23.4": 6 | version "7.23.9" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" 8 | integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== 9 | dependencies: 10 | regenerator-runtime "^0.14.0" 11 | 12 | "@babel/runtime@^7.24.5": 13 | version "7.24.6" 14 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" 15 | integrity sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== 16 | dependencies: 17 | regenerator-runtime "^0.14.0" 18 | 19 | "@coral-xyz/anchor@^0.29.0": 20 | version "0.29.0" 21 | resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.29.0.tgz#bd0be95bedfb30a381c3e676e5926124c310ff12" 22 | integrity sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA== 23 | dependencies: 24 | "@coral-xyz/borsh" "^0.29.0" 25 | "@noble/hashes" "^1.3.1" 26 | "@solana/web3.js" "^1.68.0" 27 | bn.js "^5.1.2" 28 | bs58 "^4.0.1" 29 | buffer-layout "^1.2.2" 30 | camelcase "^6.3.0" 31 | cross-fetch "^3.1.5" 32 | crypto-hash "^1.3.0" 33 | eventemitter3 "^4.0.7" 34 | pako "^2.0.3" 35 | snake-case "^3.0.4" 36 | superstruct "^0.15.4" 37 | toml "^3.0.0" 38 | 39 | "@coral-xyz/borsh@^0.29.0": 40 | version "0.29.0" 41 | resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.29.0.tgz#79f7045df2ef66da8006d47f5399c7190363e71f" 42 | integrity sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ== 43 | dependencies: 44 | bn.js "^5.1.2" 45 | buffer-layout "^1.2.0" 46 | 47 | "@noble/curves@^1.2.0": 48 | version "1.3.0" 49 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" 50 | integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== 51 | dependencies: 52 | "@noble/hashes" "1.3.3" 53 | 54 | "@noble/curves@^1.4.0": 55 | version "1.4.0" 56 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" 57 | integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== 58 | dependencies: 59 | "@noble/hashes" "1.4.0" 60 | 61 | "@noble/hashes@1.3.3", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.2": 62 | version "1.3.3" 63 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" 64 | integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== 65 | 66 | "@noble/hashes@1.4.0", "@noble/hashes@^1.4.0": 67 | version "1.4.0" 68 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" 69 | integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== 70 | 71 | "@solana/buffer-layout-utils@^0.2.0": 72 | version "0.2.0" 73 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" 74 | integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== 75 | dependencies: 76 | "@solana/buffer-layout" "^4.0.0" 77 | "@solana/web3.js" "^1.32.0" 78 | bigint-buffer "^1.1.5" 79 | bignumber.js "^9.0.1" 80 | 81 | "@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": 82 | version "4.0.1" 83 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" 84 | integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== 85 | dependencies: 86 | buffer "~6.0.3" 87 | 88 | "@solana/codecs-core@2.0.0-preview.2": 89 | version "2.0.0-preview.2" 90 | resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-preview.2.tgz#689784d032fbc1fedbde40bb25d76cdcecf6553b" 91 | integrity sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg== 92 | dependencies: 93 | "@solana/errors" "2.0.0-preview.2" 94 | 95 | "@solana/codecs-data-structures@2.0.0-preview.2": 96 | version "2.0.0-preview.2" 97 | resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.2.tgz#e82cb1b6d154fa636cd5c8953ff3f32959cc0370" 98 | integrity sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg== 99 | dependencies: 100 | "@solana/codecs-core" "2.0.0-preview.2" 101 | "@solana/codecs-numbers" "2.0.0-preview.2" 102 | "@solana/errors" "2.0.0-preview.2" 103 | 104 | "@solana/codecs-numbers@2.0.0-preview.2": 105 | version "2.0.0-preview.2" 106 | resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.2.tgz#56995c27396cd8ee3bae8bd055363891b630bbd0" 107 | integrity sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw== 108 | dependencies: 109 | "@solana/codecs-core" "2.0.0-preview.2" 110 | "@solana/errors" "2.0.0-preview.2" 111 | 112 | "@solana/codecs-strings@2.0.0-preview.2": 113 | version "2.0.0-preview.2" 114 | resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.2.tgz#8bd01a4e48614d5289d72d743c3e81305d445c46" 115 | integrity sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g== 116 | dependencies: 117 | "@solana/codecs-core" "2.0.0-preview.2" 118 | "@solana/codecs-numbers" "2.0.0-preview.2" 119 | "@solana/errors" "2.0.0-preview.2" 120 | 121 | "@solana/codecs@2.0.0-preview.2": 122 | version "2.0.0-preview.2" 123 | resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-preview.2.tgz#d6615fec98f423166fb89409f9a4ad5b74c10935" 124 | integrity sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA== 125 | dependencies: 126 | "@solana/codecs-core" "2.0.0-preview.2" 127 | "@solana/codecs-data-structures" "2.0.0-preview.2" 128 | "@solana/codecs-numbers" "2.0.0-preview.2" 129 | "@solana/codecs-strings" "2.0.0-preview.2" 130 | "@solana/options" "2.0.0-preview.2" 131 | 132 | "@solana/errors@2.0.0-preview.2": 133 | version "2.0.0-preview.2" 134 | resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-preview.2.tgz#e0ea8b008c5c02528d5855bc1903e5e9bbec322e" 135 | integrity sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA== 136 | dependencies: 137 | chalk "^5.3.0" 138 | commander "^12.0.0" 139 | 140 | "@solana/options@2.0.0-preview.2": 141 | version "2.0.0-preview.2" 142 | resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-preview.2.tgz#13ff008bf43a5056ef9a091dc7bb3f39321e867e" 143 | integrity sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w== 144 | dependencies: 145 | "@solana/codecs-core" "2.0.0-preview.2" 146 | "@solana/codecs-numbers" "2.0.0-preview.2" 147 | 148 | "@solana/spl-token-group@^0.0.4": 149 | version "0.0.4" 150 | resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.4.tgz#4f45d9526c96a33b9a1929a264d0aa21c7e38a2d" 151 | integrity sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw== 152 | dependencies: 153 | "@solana/codecs" "2.0.0-preview.2" 154 | "@solana/spl-type-length-value" "0.1.0" 155 | 156 | "@solana/spl-token-metadata@^0.1.4": 157 | version "0.1.4" 158 | resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.4.tgz#5cdc3b857a8c4a6877df24e24a8648c4132d22ba" 159 | integrity sha512-N3gZ8DlW6NWDV28+vCCDJoTqaCZiF/jDUnk3o8GRkAFzHObiR60Bs1gXHBa8zCPdvOwiG6Z3dg5pg7+RW6XNsQ== 160 | dependencies: 161 | "@solana/codecs" "2.0.0-preview.2" 162 | "@solana/spl-type-length-value" "0.1.0" 163 | 164 | "@solana/spl-token@^0.4.6": 165 | version "0.4.6" 166 | resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.6.tgz#eb44e5080ea7b6fc976abcb39457223211bd9076" 167 | integrity sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA== 168 | dependencies: 169 | "@solana/buffer-layout" "^4.0.0" 170 | "@solana/buffer-layout-utils" "^0.2.0" 171 | "@solana/spl-token-group" "^0.0.4" 172 | "@solana/spl-token-metadata" "^0.1.4" 173 | buffer "^6.0.3" 174 | 175 | "@solana/spl-type-length-value@0.1.0": 176 | version "0.1.0" 177 | resolved "https://registry.yarnpkg.com/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz#b5930cf6c6d8f50c7ff2a70463728a4637a2f26b" 178 | integrity sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA== 179 | dependencies: 180 | buffer "^6.0.3" 181 | 182 | "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.91.8": 183 | version "1.91.8" 184 | resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.8.tgz#0d5eb69626a92c391b53e15bfbb0bad3f6858e51" 185 | integrity sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw== 186 | dependencies: 187 | "@babel/runtime" "^7.24.5" 188 | "@noble/curves" "^1.4.0" 189 | "@noble/hashes" "^1.4.0" 190 | "@solana/buffer-layout" "^4.0.1" 191 | agentkeepalive "^4.5.0" 192 | bigint-buffer "^1.1.5" 193 | bn.js "^5.2.1" 194 | borsh "^0.7.0" 195 | bs58 "^4.0.1" 196 | buffer "6.0.3" 197 | fast-stable-stringify "^1.0.0" 198 | jayson "^4.1.0" 199 | node-fetch "^2.7.0" 200 | rpc-websockets "^7.11.0" 201 | superstruct "^0.14.2" 202 | 203 | "@solana/web3.js@^1.68.0": 204 | version "1.90.0" 205 | resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.90.0.tgz#a0f1364b4235d32a43649b74c52d9fb8bc9436a3" 206 | integrity sha512-p0cb/COXb8NNVSMkGMPwqQ6NvObZgUitN80uOedMB+jbYWOKOeJBuPnzhenkIV9RX0krGwyuY1Ltn5O8MGFsEw== 207 | dependencies: 208 | "@babel/runtime" "^7.23.4" 209 | "@noble/curves" "^1.2.0" 210 | "@noble/hashes" "^1.3.2" 211 | "@solana/buffer-layout" "^4.0.1" 212 | agentkeepalive "^4.5.0" 213 | bigint-buffer "^1.1.5" 214 | bn.js "^5.2.1" 215 | borsh "^0.7.0" 216 | bs58 "^4.0.1" 217 | buffer "6.0.3" 218 | fast-stable-stringify "^1.0.0" 219 | jayson "^4.1.0" 220 | node-fetch "^2.7.0" 221 | rpc-websockets "^7.5.1" 222 | superstruct "^0.14.2" 223 | 224 | "@types/bn.js@^5.1.0": 225 | version "5.1.5" 226 | resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" 227 | integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== 228 | dependencies: 229 | "@types/node" "*" 230 | 231 | "@types/chai@^4.3.0": 232 | version "4.3.11" 233 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" 234 | integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== 235 | 236 | "@types/connect@^3.4.33": 237 | version "3.4.38" 238 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" 239 | integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== 240 | dependencies: 241 | "@types/node" "*" 242 | 243 | "@types/json5@^0.0.29": 244 | version "0.0.29" 245 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 246 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 247 | 248 | "@types/mocha@^9.0.0": 249 | version "9.1.1" 250 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" 251 | integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== 252 | 253 | "@types/node@*": 254 | version "20.11.19" 255 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" 256 | integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== 257 | dependencies: 258 | undici-types "~5.26.4" 259 | 260 | "@types/node@^12.12.54": 261 | version "12.20.55" 262 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" 263 | integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== 264 | 265 | "@types/ws@^7.4.4": 266 | version "7.4.7" 267 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" 268 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 269 | dependencies: 270 | "@types/node" "*" 271 | 272 | "@ungap/promise-all-settled@1.1.2": 273 | version "1.1.2" 274 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 275 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 276 | 277 | JSONStream@^1.3.5: 278 | version "1.3.5" 279 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" 280 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 281 | dependencies: 282 | jsonparse "^1.2.0" 283 | through ">=2.2.7 <3" 284 | 285 | agentkeepalive@^4.5.0: 286 | version "4.5.0" 287 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" 288 | integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== 289 | dependencies: 290 | humanize-ms "^1.2.1" 291 | 292 | ansi-colors@4.1.1: 293 | version "4.1.1" 294 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 295 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 296 | 297 | ansi-regex@^5.0.1: 298 | version "5.0.1" 299 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 300 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 301 | 302 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 303 | version "4.3.0" 304 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 305 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 306 | dependencies: 307 | color-convert "^2.0.1" 308 | 309 | anymatch@~3.1.2: 310 | version "3.1.3" 311 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 312 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 313 | dependencies: 314 | normalize-path "^3.0.0" 315 | picomatch "^2.0.4" 316 | 317 | argparse@^2.0.1: 318 | version "2.0.1" 319 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 320 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 321 | 322 | arrify@^1.0.0: 323 | version "1.0.1" 324 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 325 | integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== 326 | 327 | assertion-error@^1.1.0: 328 | version "1.1.0" 329 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 330 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 331 | 332 | balanced-match@^1.0.0: 333 | version "1.0.2" 334 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 335 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 336 | 337 | base-x@^3.0.2: 338 | version "3.0.9" 339 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 340 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 341 | dependencies: 342 | safe-buffer "^5.0.1" 343 | 344 | base64-js@^1.3.1: 345 | version "1.5.1" 346 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 347 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 348 | 349 | bigint-buffer@^1.1.5: 350 | version "1.1.5" 351 | resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" 352 | integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== 353 | dependencies: 354 | bindings "^1.3.0" 355 | 356 | bignumber.js@^9.0.1: 357 | version "9.1.2" 358 | resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" 359 | integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== 360 | 361 | binary-extensions@^2.0.0: 362 | version "2.2.0" 363 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 364 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 365 | 366 | bindings@^1.3.0: 367 | version "1.5.0" 368 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 369 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 370 | dependencies: 371 | file-uri-to-path "1.0.0" 372 | 373 | bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: 374 | version "5.2.1" 375 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" 376 | integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== 377 | 378 | borsh@^0.7.0: 379 | version "0.7.0" 380 | resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" 381 | integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== 382 | dependencies: 383 | bn.js "^5.2.0" 384 | bs58 "^4.0.0" 385 | text-encoding-utf-8 "^1.0.2" 386 | 387 | brace-expansion@^1.1.7: 388 | version "1.1.11" 389 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 390 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 391 | dependencies: 392 | balanced-match "^1.0.0" 393 | concat-map "0.0.1" 394 | 395 | braces@~3.0.2: 396 | version "3.0.2" 397 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 398 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 399 | dependencies: 400 | fill-range "^7.0.1" 401 | 402 | browser-stdout@1.3.1: 403 | version "1.3.1" 404 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 405 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 406 | 407 | bs58@^4.0.0, bs58@^4.0.1: 408 | version "4.0.1" 409 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" 410 | integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== 411 | dependencies: 412 | base-x "^3.0.2" 413 | 414 | buffer-from@^1.0.0, buffer-from@^1.1.0: 415 | version "1.1.2" 416 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 417 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 418 | 419 | buffer-layout@^1.2.0, buffer-layout@^1.2.2: 420 | version "1.2.2" 421 | resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" 422 | integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== 423 | 424 | buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: 425 | version "6.0.3" 426 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 427 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 428 | dependencies: 429 | base64-js "^1.3.1" 430 | ieee754 "^1.2.1" 431 | 432 | bufferutil@^4.0.1: 433 | version "4.0.8" 434 | resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" 435 | integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== 436 | dependencies: 437 | node-gyp-build "^4.3.0" 438 | 439 | camelcase@^6.0.0, camelcase@^6.3.0: 440 | version "6.3.0" 441 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 442 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 443 | 444 | chai@^4.3.4: 445 | version "4.4.1" 446 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" 447 | integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== 448 | dependencies: 449 | assertion-error "^1.1.0" 450 | check-error "^1.0.3" 451 | deep-eql "^4.1.3" 452 | get-func-name "^2.0.2" 453 | loupe "^2.3.6" 454 | pathval "^1.1.1" 455 | type-detect "^4.0.8" 456 | 457 | chalk@^4.1.0: 458 | version "4.1.2" 459 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 460 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 461 | dependencies: 462 | ansi-styles "^4.1.0" 463 | supports-color "^7.1.0" 464 | 465 | chalk@^5.3.0: 466 | version "5.3.0" 467 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" 468 | integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== 469 | 470 | check-error@^1.0.3: 471 | version "1.0.3" 472 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" 473 | integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== 474 | dependencies: 475 | get-func-name "^2.0.2" 476 | 477 | chokidar@3.5.3: 478 | version "3.5.3" 479 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 480 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 481 | dependencies: 482 | anymatch "~3.1.2" 483 | braces "~3.0.2" 484 | glob-parent "~5.1.2" 485 | is-binary-path "~2.1.0" 486 | is-glob "~4.0.1" 487 | normalize-path "~3.0.0" 488 | readdirp "~3.6.0" 489 | optionalDependencies: 490 | fsevents "~2.3.2" 491 | 492 | cliui@^7.0.2: 493 | version "7.0.4" 494 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 495 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 496 | dependencies: 497 | string-width "^4.2.0" 498 | strip-ansi "^6.0.0" 499 | wrap-ansi "^7.0.0" 500 | 501 | color-convert@^2.0.1: 502 | version "2.0.1" 503 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 504 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 505 | dependencies: 506 | color-name "~1.1.4" 507 | 508 | color-name@~1.1.4: 509 | version "1.1.4" 510 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 511 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 512 | 513 | commander@^12.0.0: 514 | version "12.1.0" 515 | resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" 516 | integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== 517 | 518 | commander@^2.20.3: 519 | version "2.20.3" 520 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 521 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 522 | 523 | concat-map@0.0.1: 524 | version "0.0.1" 525 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 526 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 527 | 528 | cross-fetch@^3.1.5: 529 | version "3.1.8" 530 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" 531 | integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== 532 | dependencies: 533 | node-fetch "^2.6.12" 534 | 535 | crypto-hash@^1.3.0: 536 | version "1.3.0" 537 | resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" 538 | integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== 539 | 540 | debug@4.3.3: 541 | version "4.3.3" 542 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 543 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 544 | dependencies: 545 | ms "2.1.2" 546 | 547 | decamelize@^4.0.0: 548 | version "4.0.0" 549 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 550 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 551 | 552 | deep-eql@^4.1.3: 553 | version "4.1.3" 554 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" 555 | integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== 556 | dependencies: 557 | type-detect "^4.0.0" 558 | 559 | delay@^5.0.0: 560 | version "5.0.0" 561 | resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 562 | integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 563 | 564 | diff@5.0.0: 565 | version "5.0.0" 566 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 567 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 568 | 569 | diff@^3.1.0: 570 | version "3.5.0" 571 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 572 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 573 | 574 | dot-case@^3.0.4: 575 | version "3.0.4" 576 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" 577 | integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== 578 | dependencies: 579 | no-case "^3.0.4" 580 | tslib "^2.0.3" 581 | 582 | emoji-regex@^8.0.0: 583 | version "8.0.0" 584 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 585 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 586 | 587 | es6-promise@^4.0.3: 588 | version "4.2.8" 589 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" 590 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== 591 | 592 | es6-promisify@^5.0.0: 593 | version "5.0.0" 594 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 595 | integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== 596 | dependencies: 597 | es6-promise "^4.0.3" 598 | 599 | escalade@^3.1.1: 600 | version "3.1.2" 601 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" 602 | integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 603 | 604 | escape-string-regexp@4.0.0: 605 | version "4.0.0" 606 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 607 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 608 | 609 | eventemitter3@^4.0.7: 610 | version "4.0.7" 611 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 612 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 613 | 614 | eyes@^0.1.8: 615 | version "0.1.8" 616 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 617 | integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== 618 | 619 | fast-stable-stringify@^1.0.0: 620 | version "1.0.0" 621 | resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" 622 | integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== 623 | 624 | file-uri-to-path@1.0.0: 625 | version "1.0.0" 626 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 627 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 628 | 629 | fill-range@^7.0.1: 630 | version "7.0.1" 631 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 632 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 633 | dependencies: 634 | to-regex-range "^5.0.1" 635 | 636 | find-up@5.0.0: 637 | version "5.0.0" 638 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 639 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 640 | dependencies: 641 | locate-path "^6.0.0" 642 | path-exists "^4.0.0" 643 | 644 | flat@^5.0.2: 645 | version "5.0.2" 646 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 647 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 648 | 649 | fs.realpath@^1.0.0: 650 | version "1.0.0" 651 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 652 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 653 | 654 | fsevents@~2.3.2: 655 | version "2.3.3" 656 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 657 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 658 | 659 | get-caller-file@^2.0.5: 660 | version "2.0.5" 661 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 662 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 663 | 664 | get-func-name@^2.0.1, get-func-name@^2.0.2: 665 | version "2.0.2" 666 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" 667 | integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== 668 | 669 | glob-parent@~5.1.2: 670 | version "5.1.2" 671 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 672 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 673 | dependencies: 674 | is-glob "^4.0.1" 675 | 676 | glob@7.2.0: 677 | version "7.2.0" 678 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 679 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 680 | dependencies: 681 | fs.realpath "^1.0.0" 682 | inflight "^1.0.4" 683 | inherits "2" 684 | minimatch "^3.0.4" 685 | once "^1.3.0" 686 | path-is-absolute "^1.0.0" 687 | 688 | growl@1.10.5: 689 | version "1.10.5" 690 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 691 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 692 | 693 | has-flag@^4.0.0: 694 | version "4.0.0" 695 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 696 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 697 | 698 | he@1.2.0: 699 | version "1.2.0" 700 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 701 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 702 | 703 | humanize-ms@^1.2.1: 704 | version "1.2.1" 705 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 706 | integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 707 | dependencies: 708 | ms "^2.0.0" 709 | 710 | ieee754@^1.2.1: 711 | version "1.2.1" 712 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 713 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 714 | 715 | inflight@^1.0.4: 716 | version "1.0.6" 717 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 718 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 719 | dependencies: 720 | once "^1.3.0" 721 | wrappy "1" 722 | 723 | inherits@2: 724 | version "2.0.4" 725 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 726 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 727 | 728 | is-binary-path@~2.1.0: 729 | version "2.1.0" 730 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 731 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 732 | dependencies: 733 | binary-extensions "^2.0.0" 734 | 735 | is-extglob@^2.1.1: 736 | version "2.1.1" 737 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 738 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 739 | 740 | is-fullwidth-code-point@^3.0.0: 741 | version "3.0.0" 742 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 743 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 744 | 745 | is-glob@^4.0.1, is-glob@~4.0.1: 746 | version "4.0.3" 747 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 748 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 749 | dependencies: 750 | is-extglob "^2.1.1" 751 | 752 | is-number@^7.0.0: 753 | version "7.0.0" 754 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 755 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 756 | 757 | is-plain-obj@^2.1.0: 758 | version "2.1.0" 759 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 760 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 761 | 762 | is-unicode-supported@^0.1.0: 763 | version "0.1.0" 764 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" 765 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 766 | 767 | isexe@^2.0.0: 768 | version "2.0.0" 769 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 770 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 771 | 772 | isomorphic-ws@^4.0.1: 773 | version "4.0.1" 774 | resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" 775 | integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== 776 | 777 | jayson@^4.1.0: 778 | version "4.1.0" 779 | resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.0.tgz#60dc946a85197317f2b1439d672a8b0a99cea2f9" 780 | integrity sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== 781 | dependencies: 782 | "@types/connect" "^3.4.33" 783 | "@types/node" "^12.12.54" 784 | "@types/ws" "^7.4.4" 785 | JSONStream "^1.3.5" 786 | commander "^2.20.3" 787 | delay "^5.0.0" 788 | es6-promisify "^5.0.0" 789 | eyes "^0.1.8" 790 | isomorphic-ws "^4.0.1" 791 | json-stringify-safe "^5.0.1" 792 | uuid "^8.3.2" 793 | ws "^7.4.5" 794 | 795 | js-yaml@4.1.0: 796 | version "4.1.0" 797 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 798 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 799 | dependencies: 800 | argparse "^2.0.1" 801 | 802 | json-stringify-safe@^5.0.1: 803 | version "5.0.1" 804 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 805 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== 806 | 807 | json5@^1.0.2: 808 | version "1.0.2" 809 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 810 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 811 | dependencies: 812 | minimist "^1.2.0" 813 | 814 | jsonparse@^1.2.0: 815 | version "1.3.1" 816 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" 817 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== 818 | 819 | locate-path@^6.0.0: 820 | version "6.0.0" 821 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 822 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 823 | dependencies: 824 | p-locate "^5.0.0" 825 | 826 | log-symbols@4.1.0: 827 | version "4.1.0" 828 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 829 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 830 | dependencies: 831 | chalk "^4.1.0" 832 | is-unicode-supported "^0.1.0" 833 | 834 | loupe@^2.3.6: 835 | version "2.3.7" 836 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" 837 | integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== 838 | dependencies: 839 | get-func-name "^2.0.1" 840 | 841 | lower-case@^2.0.2: 842 | version "2.0.2" 843 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" 844 | integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== 845 | dependencies: 846 | tslib "^2.0.3" 847 | 848 | make-error@^1.1.1: 849 | version "1.3.6" 850 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 851 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 852 | 853 | minimatch@4.2.1: 854 | version "4.2.1" 855 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" 856 | integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== 857 | dependencies: 858 | brace-expansion "^1.1.7" 859 | 860 | minimatch@^3.0.4: 861 | version "3.1.2" 862 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 863 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 864 | dependencies: 865 | brace-expansion "^1.1.7" 866 | 867 | minimist@^1.2.0, minimist@^1.2.6: 868 | version "1.2.8" 869 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 870 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 871 | 872 | mkdirp@^0.5.1: 873 | version "0.5.6" 874 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 875 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 876 | dependencies: 877 | minimist "^1.2.6" 878 | 879 | mocha@^9.0.3: 880 | version "9.2.2" 881 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" 882 | integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== 883 | dependencies: 884 | "@ungap/promise-all-settled" "1.1.2" 885 | ansi-colors "4.1.1" 886 | browser-stdout "1.3.1" 887 | chokidar "3.5.3" 888 | debug "4.3.3" 889 | diff "5.0.0" 890 | escape-string-regexp "4.0.0" 891 | find-up "5.0.0" 892 | glob "7.2.0" 893 | growl "1.10.5" 894 | he "1.2.0" 895 | js-yaml "4.1.0" 896 | log-symbols "4.1.0" 897 | minimatch "4.2.1" 898 | ms "2.1.3" 899 | nanoid "3.3.1" 900 | serialize-javascript "6.0.0" 901 | strip-json-comments "3.1.1" 902 | supports-color "8.1.1" 903 | which "2.0.2" 904 | workerpool "6.2.0" 905 | yargs "16.2.0" 906 | yargs-parser "20.2.4" 907 | yargs-unparser "2.0.0" 908 | 909 | ms@2.1.2: 910 | version "2.1.2" 911 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 912 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 913 | 914 | ms@2.1.3, ms@^2.0.0: 915 | version "2.1.3" 916 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 917 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 918 | 919 | nanoid@3.3.1: 920 | version "3.3.1" 921 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" 922 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== 923 | 924 | no-case@^3.0.4: 925 | version "3.0.4" 926 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" 927 | integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== 928 | dependencies: 929 | lower-case "^2.0.2" 930 | tslib "^2.0.3" 931 | 932 | node-fetch@^2.6.12, node-fetch@^2.7.0: 933 | version "2.7.0" 934 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 935 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 936 | dependencies: 937 | whatwg-url "^5.0.0" 938 | 939 | node-gyp-build@^4.3.0: 940 | version "4.8.0" 941 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" 942 | integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== 943 | 944 | normalize-path@^3.0.0, normalize-path@~3.0.0: 945 | version "3.0.0" 946 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 947 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 948 | 949 | once@^1.3.0: 950 | version "1.4.0" 951 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 952 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 953 | dependencies: 954 | wrappy "1" 955 | 956 | p-limit@^3.0.2: 957 | version "3.1.0" 958 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 959 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 960 | dependencies: 961 | yocto-queue "^0.1.0" 962 | 963 | p-locate@^5.0.0: 964 | version "5.0.0" 965 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 966 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 967 | dependencies: 968 | p-limit "^3.0.2" 969 | 970 | pako@^2.0.3: 971 | version "2.1.0" 972 | resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" 973 | integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== 974 | 975 | path-exists@^4.0.0: 976 | version "4.0.0" 977 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 978 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 979 | 980 | path-is-absolute@^1.0.0: 981 | version "1.0.1" 982 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 983 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 984 | 985 | pathval@^1.1.1: 986 | version "1.1.1" 987 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 988 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 989 | 990 | picomatch@^2.0.4, picomatch@^2.2.1: 991 | version "2.3.1" 992 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 993 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 994 | 995 | prettier@^2.6.2: 996 | version "2.8.8" 997 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" 998 | integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== 999 | 1000 | randombytes@^2.1.0: 1001 | version "2.1.0" 1002 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1003 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1004 | dependencies: 1005 | safe-buffer "^5.1.0" 1006 | 1007 | readdirp@~3.6.0: 1008 | version "3.6.0" 1009 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1010 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1011 | dependencies: 1012 | picomatch "^2.2.1" 1013 | 1014 | regenerator-runtime@^0.14.0: 1015 | version "0.14.1" 1016 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 1017 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1018 | 1019 | require-directory@^2.1.1: 1020 | version "2.1.1" 1021 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1022 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 1023 | 1024 | rpc-websockets@^7.11.0: 1025 | version "7.11.0" 1026 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.11.0.tgz#05451975963a7d1a4cf36d54e200bfc4402a56d7" 1027 | integrity sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w== 1028 | dependencies: 1029 | eventemitter3 "^4.0.7" 1030 | uuid "^8.3.2" 1031 | ws "^8.5.0" 1032 | optionalDependencies: 1033 | bufferutil "^4.0.1" 1034 | utf-8-validate "^5.0.2" 1035 | 1036 | rpc-websockets@^7.5.1: 1037 | version "7.9.0" 1038 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.9.0.tgz#a3938e16d6f134a3999fdfac422a503731bf8973" 1039 | integrity sha512-DwKewQz1IUA5wfLvgM8wDpPRcr+nWSxuFxx5CbrI2z/MyyZ4nXLM86TvIA+cI1ZAdqC8JIBR1mZR55dzaLU+Hw== 1040 | dependencies: 1041 | "@babel/runtime" "^7.17.2" 1042 | eventemitter3 "^4.0.7" 1043 | uuid "^8.3.2" 1044 | ws "^8.5.0" 1045 | optionalDependencies: 1046 | bufferutil "^4.0.1" 1047 | utf-8-validate "^5.0.2" 1048 | 1049 | safe-buffer@^5.0.1, safe-buffer@^5.1.0: 1050 | version "5.2.1" 1051 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1052 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1053 | 1054 | serialize-javascript@6.0.0: 1055 | version "6.0.0" 1056 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 1057 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 1058 | dependencies: 1059 | randombytes "^2.1.0" 1060 | 1061 | snake-case@^3.0.4: 1062 | version "3.0.4" 1063 | resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" 1064 | integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== 1065 | dependencies: 1066 | dot-case "^3.0.4" 1067 | tslib "^2.0.3" 1068 | 1069 | source-map-support@^0.5.6: 1070 | version "0.5.21" 1071 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1072 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1073 | dependencies: 1074 | buffer-from "^1.0.0" 1075 | source-map "^0.6.0" 1076 | 1077 | source-map@^0.6.0: 1078 | version "0.6.1" 1079 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1080 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1081 | 1082 | string-width@^4.1.0, string-width@^4.2.0: 1083 | version "4.2.3" 1084 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1085 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1086 | dependencies: 1087 | emoji-regex "^8.0.0" 1088 | is-fullwidth-code-point "^3.0.0" 1089 | strip-ansi "^6.0.1" 1090 | 1091 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1092 | version "6.0.1" 1093 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1094 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1095 | dependencies: 1096 | ansi-regex "^5.0.1" 1097 | 1098 | strip-bom@^3.0.0: 1099 | version "3.0.0" 1100 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1101 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1102 | 1103 | strip-json-comments@3.1.1: 1104 | version "3.1.1" 1105 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1106 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1107 | 1108 | superstruct@^0.14.2: 1109 | version "0.14.2" 1110 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" 1111 | integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== 1112 | 1113 | superstruct@^0.15.4: 1114 | version "0.15.5" 1115 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" 1116 | integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== 1117 | 1118 | supports-color@8.1.1: 1119 | version "8.1.1" 1120 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1121 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1122 | dependencies: 1123 | has-flag "^4.0.0" 1124 | 1125 | supports-color@^7.1.0: 1126 | version "7.2.0" 1127 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1128 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1129 | dependencies: 1130 | has-flag "^4.0.0" 1131 | 1132 | text-encoding-utf-8@^1.0.2: 1133 | version "1.0.2" 1134 | resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" 1135 | integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== 1136 | 1137 | "through@>=2.2.7 <3": 1138 | version "2.3.8" 1139 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1140 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 1141 | 1142 | to-regex-range@^5.0.1: 1143 | version "5.0.1" 1144 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1145 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1146 | dependencies: 1147 | is-number "^7.0.0" 1148 | 1149 | toml@^3.0.0: 1150 | version "3.0.0" 1151 | resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" 1152 | integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== 1153 | 1154 | tr46@~0.0.3: 1155 | version "0.0.3" 1156 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1157 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 1158 | 1159 | ts-mocha@^10.0.0: 1160 | version "10.0.0" 1161 | resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" 1162 | integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== 1163 | dependencies: 1164 | ts-node "7.0.1" 1165 | optionalDependencies: 1166 | tsconfig-paths "^3.5.0" 1167 | 1168 | ts-node@7.0.1: 1169 | version "7.0.1" 1170 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" 1171 | integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== 1172 | dependencies: 1173 | arrify "^1.0.0" 1174 | buffer-from "^1.1.0" 1175 | diff "^3.1.0" 1176 | make-error "^1.1.1" 1177 | minimist "^1.2.0" 1178 | mkdirp "^0.5.1" 1179 | source-map-support "^0.5.6" 1180 | yn "^2.0.0" 1181 | 1182 | tsconfig-paths@^3.5.0: 1183 | version "3.15.0" 1184 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" 1185 | integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== 1186 | dependencies: 1187 | "@types/json5" "^0.0.29" 1188 | json5 "^1.0.2" 1189 | minimist "^1.2.6" 1190 | strip-bom "^3.0.0" 1191 | 1192 | tslib@^2.0.3: 1193 | version "2.6.2" 1194 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 1195 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 1196 | 1197 | type-detect@^4.0.0, type-detect@^4.0.8: 1198 | version "4.0.8" 1199 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 1200 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 1201 | 1202 | typescript@^4.3.5: 1203 | version "4.9.5" 1204 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 1205 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 1206 | 1207 | undici-types@~5.26.4: 1208 | version "5.26.5" 1209 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1210 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1211 | 1212 | utf-8-validate@^5.0.2: 1213 | version "5.0.10" 1214 | resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" 1215 | integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== 1216 | dependencies: 1217 | node-gyp-build "^4.3.0" 1218 | 1219 | uuid@^8.3.2: 1220 | version "8.3.2" 1221 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1222 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1223 | 1224 | webidl-conversions@^3.0.0: 1225 | version "3.0.1" 1226 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1227 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 1228 | 1229 | whatwg-url@^5.0.0: 1230 | version "5.0.0" 1231 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1232 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 1233 | dependencies: 1234 | tr46 "~0.0.3" 1235 | webidl-conversions "^3.0.0" 1236 | 1237 | which@2.0.2: 1238 | version "2.0.2" 1239 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1240 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1241 | dependencies: 1242 | isexe "^2.0.0" 1243 | 1244 | workerpool@6.2.0: 1245 | version "6.2.0" 1246 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" 1247 | integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== 1248 | 1249 | wrap-ansi@^7.0.0: 1250 | version "7.0.0" 1251 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1252 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1253 | dependencies: 1254 | ansi-styles "^4.0.0" 1255 | string-width "^4.1.0" 1256 | strip-ansi "^6.0.0" 1257 | 1258 | wrappy@1: 1259 | version "1.0.2" 1260 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1261 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1262 | 1263 | ws@^7.4.5: 1264 | version "7.5.9" 1265 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" 1266 | integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== 1267 | 1268 | ws@^8.5.0: 1269 | version "8.16.0" 1270 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" 1271 | integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== 1272 | 1273 | y18n@^5.0.5: 1274 | version "5.0.8" 1275 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1276 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1277 | 1278 | yargs-parser@20.2.4: 1279 | version "20.2.4" 1280 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 1281 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 1282 | 1283 | yargs-parser@^20.2.2: 1284 | version "20.2.9" 1285 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1286 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1287 | 1288 | yargs-unparser@2.0.0: 1289 | version "2.0.0" 1290 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 1291 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 1292 | dependencies: 1293 | camelcase "^6.0.0" 1294 | decamelize "^4.0.0" 1295 | flat "^5.0.2" 1296 | is-plain-obj "^2.1.0" 1297 | 1298 | yargs@16.2.0: 1299 | version "16.2.0" 1300 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1301 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1302 | dependencies: 1303 | cliui "^7.0.2" 1304 | escalade "^3.1.1" 1305 | get-caller-file "^2.0.5" 1306 | require-directory "^2.1.1" 1307 | string-width "^4.2.0" 1308 | y18n "^5.0.5" 1309 | yargs-parser "^20.2.2" 1310 | 1311 | yn@^2.0.0: 1312 | version "2.0.0" 1313 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 1314 | integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== 1315 | 1316 | yocto-queue@^0.1.0: 1317 | version "0.1.0" 1318 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1319 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1320 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aead" 7 | version = "0.4.3" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" 10 | dependencies = [ 11 | "generic-array", 12 | ] 13 | 14 | [[package]] 15 | name = "aes" 16 | version = "0.7.5" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" 19 | dependencies = [ 20 | "cfg-if", 21 | "cipher", 22 | "cpufeatures", 23 | "opaque-debug", 24 | ] 25 | 26 | [[package]] 27 | name = "aes-gcm-siv" 28 | version = "0.10.3" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" 31 | dependencies = [ 32 | "aead", 33 | "aes", 34 | "cipher", 35 | "ctr", 36 | "polyval", 37 | "subtle", 38 | "zeroize", 39 | ] 40 | 41 | [[package]] 42 | name = "ahash" 43 | version = "0.7.8" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 46 | dependencies = [ 47 | "getrandom 0.2.15", 48 | "once_cell", 49 | "version_check", 50 | ] 51 | 52 | [[package]] 53 | name = "ahash" 54 | version = "0.8.5" 55 | source = "registry+https://github.com/rust-lang/crates.io-index" 56 | checksum = "cd7d5a2cecb58716e47d67d5703a249964b14c7be1ec3cad3affc295b2d1c35d" 57 | dependencies = [ 58 | "cfg-if", 59 | "getrandom 0.2.15", 60 | "once_cell", 61 | "version_check", 62 | "zerocopy", 63 | ] 64 | 65 | [[package]] 66 | name = "aho-corasick" 67 | version = "1.1.3" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 70 | dependencies = [ 71 | "memchr", 72 | ] 73 | 74 | [[package]] 75 | name = "anchor-attribute-access-control" 76 | version = "0.29.0" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "e5f619f1d04f53621925ba8a2e633ba5a6081f2ae14758cbb67f38fd823e0a3e" 79 | dependencies = [ 80 | "anchor-syn", 81 | "proc-macro2", 82 | "quote", 83 | "syn 1.0.109", 84 | ] 85 | 86 | [[package]] 87 | name = "anchor-attribute-account" 88 | version = "0.29.0" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "e7f2a3e1df4685f18d12a943a9f2a7456305401af21a07c9fe076ef9ecd6e400" 91 | dependencies = [ 92 | "anchor-syn", 93 | "bs58 0.5.1", 94 | "proc-macro2", 95 | "quote", 96 | "syn 1.0.109", 97 | ] 98 | 99 | [[package]] 100 | name = "anchor-attribute-constant" 101 | version = "0.29.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "9423945cb55627f0b30903288e78baf6f62c6c8ab28fb344b6b25f1ffee3dca7" 104 | dependencies = [ 105 | "anchor-syn", 106 | "quote", 107 | "syn 1.0.109", 108 | ] 109 | 110 | [[package]] 111 | name = "anchor-attribute-error" 112 | version = "0.29.0" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "93ed12720033cc3c3bf3cfa293349c2275cd5ab99936e33dd4bf283aaad3e241" 115 | dependencies = [ 116 | "anchor-syn", 117 | "quote", 118 | "syn 1.0.109", 119 | ] 120 | 121 | [[package]] 122 | name = "anchor-attribute-event" 123 | version = "0.29.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "eef4dc0371eba2d8c8b54794b0b0eb786a234a559b77593d6f80825b6d2c77a2" 126 | dependencies = [ 127 | "anchor-syn", 128 | "proc-macro2", 129 | "quote", 130 | "syn 1.0.109", 131 | ] 132 | 133 | [[package]] 134 | name = "anchor-attribute-program" 135 | version = "0.29.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "b18c4f191331e078d4a6a080954d1576241c29c56638783322a18d308ab27e4f" 138 | dependencies = [ 139 | "anchor-syn", 140 | "quote", 141 | "syn 1.0.109", 142 | ] 143 | 144 | [[package]] 145 | name = "anchor-derive-accounts" 146 | version = "0.29.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "5de10d6e9620d3bcea56c56151cad83c5992f50d5960b3a9bebc4a50390ddc3c" 149 | dependencies = [ 150 | "anchor-syn", 151 | "quote", 152 | "syn 1.0.109", 153 | ] 154 | 155 | [[package]] 156 | name = "anchor-derive-serde" 157 | version = "0.29.0" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "f4e2e5be518ec6053d90a2a7f26843dbee607583c779e6c8395951b9739bdfbe" 160 | dependencies = [ 161 | "anchor-syn", 162 | "borsh-derive-internal 0.10.3", 163 | "proc-macro2", 164 | "quote", 165 | "syn 1.0.109", 166 | ] 167 | 168 | [[package]] 169 | name = "anchor-derive-space" 170 | version = "0.29.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "1ecc31d19fa54840e74b7a979d44bcea49d70459de846088a1d71e87ba53c419" 173 | dependencies = [ 174 | "proc-macro2", 175 | "quote", 176 | "syn 1.0.109", 177 | ] 178 | 179 | [[package]] 180 | name = "anchor-lang" 181 | version = "0.29.0" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "35da4785497388af0553586d55ebdc08054a8b1724720ef2749d313494f2b8ad" 184 | dependencies = [ 185 | "anchor-attribute-access-control", 186 | "anchor-attribute-account", 187 | "anchor-attribute-constant", 188 | "anchor-attribute-error", 189 | "anchor-attribute-event", 190 | "anchor-attribute-program", 191 | "anchor-derive-accounts", 192 | "anchor-derive-serde", 193 | "anchor-derive-space", 194 | "arrayref", 195 | "base64 0.13.1", 196 | "bincode", 197 | "borsh 0.10.3", 198 | "bytemuck", 199 | "getrandom 0.2.15", 200 | "solana-program", 201 | "thiserror", 202 | ] 203 | 204 | [[package]] 205 | name = "anchor-spl" 206 | version = "0.29.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "6c4fd6e43b2ca6220d2ef1641539e678bfc31b6cc393cf892b373b5997b6a39a" 209 | dependencies = [ 210 | "anchor-lang", 211 | "solana-program", 212 | "spl-associated-token-account", 213 | "spl-token", 214 | "spl-token-2022 0.9.0", 215 | ] 216 | 217 | [[package]] 218 | name = "anchor-syn" 219 | version = "0.29.0" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | checksum = "d9101b84702fed2ea57bd22992f75065da5648017135b844283a2f6d74f27825" 222 | dependencies = [ 223 | "anyhow", 224 | "bs58 0.5.1", 225 | "heck", 226 | "proc-macro2", 227 | "quote", 228 | "serde", 229 | "serde_json", 230 | "sha2 0.10.8", 231 | "syn 1.0.109", 232 | "thiserror", 233 | ] 234 | 235 | [[package]] 236 | name = "anyhow" 237 | version = "1.0.86" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" 240 | 241 | [[package]] 242 | name = "ark-bn254" 243 | version = "0.4.0" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" 246 | dependencies = [ 247 | "ark-ec", 248 | "ark-ff", 249 | "ark-std", 250 | ] 251 | 252 | [[package]] 253 | name = "ark-ec" 254 | version = "0.4.2" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" 257 | dependencies = [ 258 | "ark-ff", 259 | "ark-poly", 260 | "ark-serialize", 261 | "ark-std", 262 | "derivative", 263 | "hashbrown 0.13.2", 264 | "itertools", 265 | "num-traits", 266 | "zeroize", 267 | ] 268 | 269 | [[package]] 270 | name = "ark-ff" 271 | version = "0.4.2" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" 274 | dependencies = [ 275 | "ark-ff-asm", 276 | "ark-ff-macros", 277 | "ark-serialize", 278 | "ark-std", 279 | "derivative", 280 | "digest 0.10.7", 281 | "itertools", 282 | "num-bigint", 283 | "num-traits", 284 | "paste", 285 | "rustc_version", 286 | "zeroize", 287 | ] 288 | 289 | [[package]] 290 | name = "ark-ff-asm" 291 | version = "0.4.2" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" 294 | dependencies = [ 295 | "quote", 296 | "syn 1.0.109", 297 | ] 298 | 299 | [[package]] 300 | name = "ark-ff-macros" 301 | version = "0.4.2" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" 304 | dependencies = [ 305 | "num-bigint", 306 | "num-traits", 307 | "proc-macro2", 308 | "quote", 309 | "syn 1.0.109", 310 | ] 311 | 312 | [[package]] 313 | name = "ark-poly" 314 | version = "0.4.2" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" 317 | dependencies = [ 318 | "ark-ff", 319 | "ark-serialize", 320 | "ark-std", 321 | "derivative", 322 | "hashbrown 0.13.2", 323 | ] 324 | 325 | [[package]] 326 | name = "ark-serialize" 327 | version = "0.4.2" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" 330 | dependencies = [ 331 | "ark-serialize-derive", 332 | "ark-std", 333 | "digest 0.10.7", 334 | "num-bigint", 335 | ] 336 | 337 | [[package]] 338 | name = "ark-serialize-derive" 339 | version = "0.4.2" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" 342 | dependencies = [ 343 | "proc-macro2", 344 | "quote", 345 | "syn 1.0.109", 346 | ] 347 | 348 | [[package]] 349 | name = "ark-std" 350 | version = "0.4.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" 353 | dependencies = [ 354 | "num-traits", 355 | "rand 0.8.5", 356 | ] 357 | 358 | [[package]] 359 | name = "arrayref" 360 | version = "0.3.7" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 363 | 364 | [[package]] 365 | name = "arrayvec" 366 | version = "0.7.4" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 369 | 370 | [[package]] 371 | name = "assert_matches" 372 | version = "1.5.0" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" 375 | 376 | [[package]] 377 | name = "atty" 378 | version = "0.2.14" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 381 | dependencies = [ 382 | "hermit-abi", 383 | "libc", 384 | "winapi", 385 | ] 386 | 387 | [[package]] 388 | name = "autocfg" 389 | version = "1.3.0" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 392 | 393 | [[package]] 394 | name = "base64" 395 | version = "0.12.3" 396 | source = "registry+https://github.com/rust-lang/crates.io-index" 397 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 398 | 399 | [[package]] 400 | name = "base64" 401 | version = "0.13.1" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 404 | 405 | [[package]] 406 | name = "base64" 407 | version = "0.21.7" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 410 | 411 | [[package]] 412 | name = "bincode" 413 | version = "1.3.3" 414 | source = "registry+https://github.com/rust-lang/crates.io-index" 415 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 416 | dependencies = [ 417 | "serde", 418 | ] 419 | 420 | [[package]] 421 | name = "bitflags" 422 | version = "2.5.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 425 | dependencies = [ 426 | "serde", 427 | ] 428 | 429 | [[package]] 430 | name = "bitmaps" 431 | version = "2.1.0" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 434 | dependencies = [ 435 | "typenum", 436 | ] 437 | 438 | [[package]] 439 | name = "blake3" 440 | version = "1.5.1" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" 443 | dependencies = [ 444 | "arrayref", 445 | "arrayvec", 446 | "cc", 447 | "cfg-if", 448 | "constant_time_eq", 449 | "digest 0.10.7", 450 | ] 451 | 452 | [[package]] 453 | name = "block-buffer" 454 | version = "0.9.0" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 457 | dependencies = [ 458 | "block-padding", 459 | "generic-array", 460 | ] 461 | 462 | [[package]] 463 | name = "block-buffer" 464 | version = "0.10.4" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 467 | dependencies = [ 468 | "generic-array", 469 | ] 470 | 471 | [[package]] 472 | name = "block-padding" 473 | version = "0.2.1" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" 476 | 477 | [[package]] 478 | name = "bonding_curve" 479 | version = "0.1.0" 480 | dependencies = [ 481 | "anchor-lang", 482 | "anchor-spl", 483 | "solana-program", 484 | "spl-token", 485 | "toml_datetime", 486 | ] 487 | 488 | [[package]] 489 | name = "borsh" 490 | version = "0.9.3" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" 493 | dependencies = [ 494 | "borsh-derive 0.9.3", 495 | "hashbrown 0.11.2", 496 | ] 497 | 498 | [[package]] 499 | name = "borsh" 500 | version = "0.10.3" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" 503 | dependencies = [ 504 | "borsh-derive 0.10.3", 505 | "hashbrown 0.13.2", 506 | ] 507 | 508 | [[package]] 509 | name = "borsh-derive" 510 | version = "0.9.3" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" 513 | dependencies = [ 514 | "borsh-derive-internal 0.9.3", 515 | "borsh-schema-derive-internal 0.9.3", 516 | "proc-macro-crate 0.1.5", 517 | "proc-macro2", 518 | "syn 1.0.109", 519 | ] 520 | 521 | [[package]] 522 | name = "borsh-derive" 523 | version = "0.10.3" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" 526 | dependencies = [ 527 | "borsh-derive-internal 0.10.3", 528 | "borsh-schema-derive-internal 0.10.3", 529 | "proc-macro-crate 0.1.5", 530 | "proc-macro2", 531 | "syn 1.0.109", 532 | ] 533 | 534 | [[package]] 535 | name = "borsh-derive-internal" 536 | version = "0.9.3" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" 539 | dependencies = [ 540 | "proc-macro2", 541 | "quote", 542 | "syn 1.0.109", 543 | ] 544 | 545 | [[package]] 546 | name = "borsh-derive-internal" 547 | version = "0.10.3" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" 550 | dependencies = [ 551 | "proc-macro2", 552 | "quote", 553 | "syn 1.0.109", 554 | ] 555 | 556 | [[package]] 557 | name = "borsh-schema-derive-internal" 558 | version = "0.9.3" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" 561 | dependencies = [ 562 | "proc-macro2", 563 | "quote", 564 | "syn 1.0.109", 565 | ] 566 | 567 | [[package]] 568 | name = "borsh-schema-derive-internal" 569 | version = "0.10.3" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" 572 | dependencies = [ 573 | "proc-macro2", 574 | "quote", 575 | "syn 1.0.109", 576 | ] 577 | 578 | [[package]] 579 | name = "bs58" 580 | version = "0.4.0" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 583 | 584 | [[package]] 585 | name = "bs58" 586 | version = "0.5.1" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 589 | dependencies = [ 590 | "tinyvec", 591 | ] 592 | 593 | [[package]] 594 | name = "bumpalo" 595 | version = "3.16.0" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 598 | 599 | [[package]] 600 | name = "bv" 601 | version = "0.11.1" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" 604 | dependencies = [ 605 | "feature-probe", 606 | "serde", 607 | ] 608 | 609 | [[package]] 610 | name = "bytemuck" 611 | version = "1.16.0" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" 614 | dependencies = [ 615 | "bytemuck_derive", 616 | ] 617 | 618 | [[package]] 619 | name = "bytemuck_derive" 620 | version = "1.6.0" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" 623 | dependencies = [ 624 | "proc-macro2", 625 | "quote", 626 | "syn 2.0.65", 627 | ] 628 | 629 | [[package]] 630 | name = "byteorder" 631 | version = "1.5.0" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 634 | 635 | [[package]] 636 | name = "cc" 637 | version = "1.0.98" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" 640 | dependencies = [ 641 | "jobserver", 642 | "libc", 643 | "once_cell", 644 | ] 645 | 646 | [[package]] 647 | name = "cfg-if" 648 | version = "1.0.0" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 651 | 652 | [[package]] 653 | name = "chrono" 654 | version = "0.4.38" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 657 | dependencies = [ 658 | "num-traits", 659 | ] 660 | 661 | [[package]] 662 | name = "cipher" 663 | version = "0.3.0" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" 666 | dependencies = [ 667 | "generic-array", 668 | ] 669 | 670 | [[package]] 671 | name = "console_error_panic_hook" 672 | version = "0.1.7" 673 | source = "registry+https://github.com/rust-lang/crates.io-index" 674 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 675 | dependencies = [ 676 | "cfg-if", 677 | "wasm-bindgen", 678 | ] 679 | 680 | [[package]] 681 | name = "console_log" 682 | version = "0.2.2" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" 685 | dependencies = [ 686 | "log", 687 | "web-sys", 688 | ] 689 | 690 | [[package]] 691 | name = "constant_time_eq" 692 | version = "0.3.0" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" 695 | 696 | [[package]] 697 | name = "cpufeatures" 698 | version = "0.2.12" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" 701 | dependencies = [ 702 | "libc", 703 | ] 704 | 705 | [[package]] 706 | name = "crossbeam-deque" 707 | version = "0.8.5" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 710 | dependencies = [ 711 | "crossbeam-epoch", 712 | "crossbeam-utils", 713 | ] 714 | 715 | [[package]] 716 | name = "crossbeam-epoch" 717 | version = "0.9.18" 718 | source = "registry+https://github.com/rust-lang/crates.io-index" 719 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 720 | dependencies = [ 721 | "crossbeam-utils", 722 | ] 723 | 724 | [[package]] 725 | name = "crossbeam-utils" 726 | version = "0.8.20" 727 | source = "registry+https://github.com/rust-lang/crates.io-index" 728 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 729 | 730 | [[package]] 731 | name = "crunchy" 732 | version = "0.2.2" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 735 | 736 | [[package]] 737 | name = "crypto-common" 738 | version = "0.1.6" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 741 | dependencies = [ 742 | "generic-array", 743 | "typenum", 744 | ] 745 | 746 | [[package]] 747 | name = "crypto-mac" 748 | version = "0.8.0" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" 751 | dependencies = [ 752 | "generic-array", 753 | "subtle", 754 | ] 755 | 756 | [[package]] 757 | name = "ctr" 758 | version = "0.8.0" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" 761 | dependencies = [ 762 | "cipher", 763 | ] 764 | 765 | [[package]] 766 | name = "curve25519-dalek" 767 | version = "3.2.1" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" 770 | dependencies = [ 771 | "byteorder", 772 | "digest 0.9.0", 773 | "rand_core 0.5.1", 774 | "serde", 775 | "subtle", 776 | "zeroize", 777 | ] 778 | 779 | [[package]] 780 | name = "darling" 781 | version = "0.20.9" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" 784 | dependencies = [ 785 | "darling_core", 786 | "darling_macro", 787 | ] 788 | 789 | [[package]] 790 | name = "darling_core" 791 | version = "0.20.9" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" 794 | dependencies = [ 795 | "fnv", 796 | "ident_case", 797 | "proc-macro2", 798 | "quote", 799 | "strsim", 800 | "syn 2.0.65", 801 | ] 802 | 803 | [[package]] 804 | name = "darling_macro" 805 | version = "0.20.9" 806 | source = "registry+https://github.com/rust-lang/crates.io-index" 807 | checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" 808 | dependencies = [ 809 | "darling_core", 810 | "quote", 811 | "syn 2.0.65", 812 | ] 813 | 814 | [[package]] 815 | name = "derivation-path" 816 | version = "0.2.0" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" 819 | 820 | [[package]] 821 | name = "derivative" 822 | version = "2.2.0" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 825 | dependencies = [ 826 | "proc-macro2", 827 | "quote", 828 | "syn 1.0.109", 829 | ] 830 | 831 | [[package]] 832 | name = "digest" 833 | version = "0.9.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 836 | dependencies = [ 837 | "generic-array", 838 | ] 839 | 840 | [[package]] 841 | name = "digest" 842 | version = "0.10.7" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 845 | dependencies = [ 846 | "block-buffer 0.10.4", 847 | "crypto-common", 848 | "subtle", 849 | ] 850 | 851 | [[package]] 852 | name = "ed25519" 853 | version = "1.5.3" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" 856 | dependencies = [ 857 | "signature", 858 | ] 859 | 860 | [[package]] 861 | name = "ed25519-dalek" 862 | version = "1.0.1" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" 865 | dependencies = [ 866 | "curve25519-dalek", 867 | "ed25519", 868 | "rand 0.7.3", 869 | "serde", 870 | "sha2 0.9.9", 871 | "zeroize", 872 | ] 873 | 874 | [[package]] 875 | name = "ed25519-dalek-bip32" 876 | version = "0.2.0" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" 879 | dependencies = [ 880 | "derivation-path", 881 | "ed25519-dalek", 882 | "hmac 0.12.1", 883 | "sha2 0.10.8", 884 | ] 885 | 886 | [[package]] 887 | name = "either" 888 | version = "1.12.0" 889 | source = "registry+https://github.com/rust-lang/crates.io-index" 890 | checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" 891 | 892 | [[package]] 893 | name = "env_logger" 894 | version = "0.9.3" 895 | source = "registry+https://github.com/rust-lang/crates.io-index" 896 | checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" 897 | dependencies = [ 898 | "atty", 899 | "humantime", 900 | "log", 901 | "regex", 902 | "termcolor", 903 | ] 904 | 905 | [[package]] 906 | name = "feature-probe" 907 | version = "0.1.1" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" 910 | 911 | [[package]] 912 | name = "fnv" 913 | version = "1.0.7" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 916 | 917 | [[package]] 918 | name = "generic-array" 919 | version = "0.14.7" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 922 | dependencies = [ 923 | "serde", 924 | "typenum", 925 | "version_check", 926 | ] 927 | 928 | [[package]] 929 | name = "getrandom" 930 | version = "0.1.16" 931 | source = "registry+https://github.com/rust-lang/crates.io-index" 932 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 933 | dependencies = [ 934 | "cfg-if", 935 | "js-sys", 936 | "libc", 937 | "wasi 0.9.0+wasi-snapshot-preview1", 938 | "wasm-bindgen", 939 | ] 940 | 941 | [[package]] 942 | name = "getrandom" 943 | version = "0.2.15" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 946 | dependencies = [ 947 | "cfg-if", 948 | "js-sys", 949 | "libc", 950 | "wasi 0.11.0+wasi-snapshot-preview1", 951 | "wasm-bindgen", 952 | ] 953 | 954 | [[package]] 955 | name = "hashbrown" 956 | version = "0.11.2" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 959 | dependencies = [ 960 | "ahash 0.7.8", 961 | ] 962 | 963 | [[package]] 964 | name = "hashbrown" 965 | version = "0.12.3" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 968 | 969 | [[package]] 970 | name = "hashbrown" 971 | version = "0.13.2" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 974 | dependencies = [ 975 | "ahash 0.8.5", 976 | ] 977 | 978 | [[package]] 979 | name = "heck" 980 | version = "0.3.3" 981 | source = "registry+https://github.com/rust-lang/crates.io-index" 982 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 983 | dependencies = [ 984 | "unicode-segmentation", 985 | ] 986 | 987 | [[package]] 988 | name = "hermit-abi" 989 | version = "0.1.19" 990 | source = "registry+https://github.com/rust-lang/crates.io-index" 991 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 992 | dependencies = [ 993 | "libc", 994 | ] 995 | 996 | [[package]] 997 | name = "hmac" 998 | version = "0.8.1" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" 1001 | dependencies = [ 1002 | "crypto-mac", 1003 | "digest 0.9.0", 1004 | ] 1005 | 1006 | [[package]] 1007 | name = "hmac" 1008 | version = "0.12.1" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1011 | dependencies = [ 1012 | "digest 0.10.7", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "hmac-drbg" 1017 | version = "0.3.0" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" 1020 | dependencies = [ 1021 | "digest 0.9.0", 1022 | "generic-array", 1023 | "hmac 0.8.1", 1024 | ] 1025 | 1026 | [[package]] 1027 | name = "humantime" 1028 | version = "2.1.0" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1031 | 1032 | [[package]] 1033 | name = "ident_case" 1034 | version = "1.0.1" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1037 | 1038 | [[package]] 1039 | name = "im" 1040 | version = "15.1.0" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" 1043 | dependencies = [ 1044 | "bitmaps", 1045 | "rand_core 0.6.4", 1046 | "rand_xoshiro", 1047 | "rayon", 1048 | "serde", 1049 | "sized-chunks", 1050 | "typenum", 1051 | "version_check", 1052 | ] 1053 | 1054 | [[package]] 1055 | name = "indexmap" 1056 | version = "1.9.3" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1059 | dependencies = [ 1060 | "autocfg", 1061 | "hashbrown 0.12.3", 1062 | ] 1063 | 1064 | [[package]] 1065 | name = "itertools" 1066 | version = "0.10.5" 1067 | source = "registry+https://github.com/rust-lang/crates.io-index" 1068 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1069 | dependencies = [ 1070 | "either", 1071 | ] 1072 | 1073 | [[package]] 1074 | name = "itoa" 1075 | version = "1.0.11" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 1078 | 1079 | [[package]] 1080 | name = "jobserver" 1081 | version = "0.1.31" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" 1084 | dependencies = [ 1085 | "libc", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "js-sys" 1090 | version = "0.3.69" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 1093 | dependencies = [ 1094 | "wasm-bindgen", 1095 | ] 1096 | 1097 | [[package]] 1098 | name = "keccak" 1099 | version = "0.1.5" 1100 | source = "registry+https://github.com/rust-lang/crates.io-index" 1101 | checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" 1102 | dependencies = [ 1103 | "cpufeatures", 1104 | ] 1105 | 1106 | [[package]] 1107 | name = "lazy_static" 1108 | version = "1.4.0" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1111 | 1112 | [[package]] 1113 | name = "libc" 1114 | version = "0.2.155" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" 1117 | 1118 | [[package]] 1119 | name = "libsecp256k1" 1120 | version = "0.6.0" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" 1123 | dependencies = [ 1124 | "arrayref", 1125 | "base64 0.12.3", 1126 | "digest 0.9.0", 1127 | "hmac-drbg", 1128 | "libsecp256k1-core", 1129 | "libsecp256k1-gen-ecmult", 1130 | "libsecp256k1-gen-genmult", 1131 | "rand 0.7.3", 1132 | "serde", 1133 | "sha2 0.9.9", 1134 | "typenum", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "libsecp256k1-core" 1139 | version = "0.2.2" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" 1142 | dependencies = [ 1143 | "crunchy", 1144 | "digest 0.9.0", 1145 | "subtle", 1146 | ] 1147 | 1148 | [[package]] 1149 | name = "libsecp256k1-gen-ecmult" 1150 | version = "0.2.1" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" 1153 | dependencies = [ 1154 | "libsecp256k1-core", 1155 | ] 1156 | 1157 | [[package]] 1158 | name = "libsecp256k1-gen-genmult" 1159 | version = "0.2.1" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" 1162 | dependencies = [ 1163 | "libsecp256k1-core", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "light-poseidon" 1168 | version = "0.2.0" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" 1171 | dependencies = [ 1172 | "ark-bn254", 1173 | "ark-ff", 1174 | "num-bigint", 1175 | "thiserror", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "lock_api" 1180 | version = "0.4.12" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1183 | dependencies = [ 1184 | "autocfg", 1185 | "scopeguard", 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "log" 1190 | version = "0.4.21" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" 1193 | 1194 | [[package]] 1195 | name = "memchr" 1196 | version = "2.7.2" 1197 | source = "registry+https://github.com/rust-lang/crates.io-index" 1198 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 1199 | 1200 | [[package]] 1201 | name = "memmap2" 1202 | version = "0.5.10" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1205 | dependencies = [ 1206 | "libc", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "memoffset" 1211 | version = "0.9.1" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1214 | dependencies = [ 1215 | "autocfg", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "merlin" 1220 | version = "3.0.0" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" 1223 | dependencies = [ 1224 | "byteorder", 1225 | "keccak", 1226 | "rand_core 0.6.4", 1227 | "zeroize", 1228 | ] 1229 | 1230 | [[package]] 1231 | name = "num-bigint" 1232 | version = "0.4.5" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" 1235 | dependencies = [ 1236 | "num-integer", 1237 | "num-traits", 1238 | ] 1239 | 1240 | [[package]] 1241 | name = "num-derive" 1242 | version = "0.3.3" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" 1245 | dependencies = [ 1246 | "proc-macro2", 1247 | "quote", 1248 | "syn 1.0.109", 1249 | ] 1250 | 1251 | [[package]] 1252 | name = "num-derive" 1253 | version = "0.4.2" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 1256 | dependencies = [ 1257 | "proc-macro2", 1258 | "quote", 1259 | "syn 2.0.65", 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "num-integer" 1264 | version = "0.1.46" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1267 | dependencies = [ 1268 | "num-traits", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "num-traits" 1273 | version = "0.2.19" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1276 | dependencies = [ 1277 | "autocfg", 1278 | ] 1279 | 1280 | [[package]] 1281 | name = "num_enum" 1282 | version = "0.6.1" 1283 | source = "registry+https://github.com/rust-lang/crates.io-index" 1284 | checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" 1285 | dependencies = [ 1286 | "num_enum_derive 0.6.1", 1287 | ] 1288 | 1289 | [[package]] 1290 | name = "num_enum" 1291 | version = "0.7.2" 1292 | source = "registry+https://github.com/rust-lang/crates.io-index" 1293 | checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" 1294 | dependencies = [ 1295 | "num_enum_derive 0.7.2", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "num_enum_derive" 1300 | version = "0.6.1" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" 1303 | dependencies = [ 1304 | "proc-macro-crate 1.3.1", 1305 | "proc-macro2", 1306 | "quote", 1307 | "syn 2.0.65", 1308 | ] 1309 | 1310 | [[package]] 1311 | name = "num_enum_derive" 1312 | version = "0.7.2" 1313 | source = "registry+https://github.com/rust-lang/crates.io-index" 1314 | checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" 1315 | dependencies = [ 1316 | "proc-macro-crate 1.3.1", 1317 | "proc-macro2", 1318 | "quote", 1319 | "syn 2.0.65", 1320 | ] 1321 | 1322 | [[package]] 1323 | name = "once_cell" 1324 | version = "1.19.0" 1325 | source = "registry+https://github.com/rust-lang/crates.io-index" 1326 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1327 | 1328 | [[package]] 1329 | name = "opaque-debug" 1330 | version = "0.3.1" 1331 | source = "registry+https://github.com/rust-lang/crates.io-index" 1332 | checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 1333 | 1334 | [[package]] 1335 | name = "parking_lot" 1336 | version = "0.12.2" 1337 | source = "registry+https://github.com/rust-lang/crates.io-index" 1338 | checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" 1339 | dependencies = [ 1340 | "lock_api", 1341 | "parking_lot_core", 1342 | ] 1343 | 1344 | [[package]] 1345 | name = "parking_lot_core" 1346 | version = "0.9.10" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1349 | dependencies = [ 1350 | "cfg-if", 1351 | "libc", 1352 | "redox_syscall", 1353 | "smallvec", 1354 | "windows-targets", 1355 | ] 1356 | 1357 | [[package]] 1358 | name = "paste" 1359 | version = "1.0.15" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1362 | 1363 | [[package]] 1364 | name = "pbkdf2" 1365 | version = "0.4.0" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" 1368 | dependencies = [ 1369 | "crypto-mac", 1370 | ] 1371 | 1372 | [[package]] 1373 | name = "pbkdf2" 1374 | version = "0.11.0" 1375 | source = "registry+https://github.com/rust-lang/crates.io-index" 1376 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 1377 | dependencies = [ 1378 | "digest 0.10.7", 1379 | ] 1380 | 1381 | [[package]] 1382 | name = "percent-encoding" 1383 | version = "2.3.1" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1386 | 1387 | [[package]] 1388 | name = "polyval" 1389 | version = "0.5.3" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" 1392 | dependencies = [ 1393 | "cfg-if", 1394 | "cpufeatures", 1395 | "opaque-debug", 1396 | "universal-hash", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "ppv-lite86" 1401 | version = "0.2.17" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1404 | 1405 | [[package]] 1406 | name = "proc-macro-crate" 1407 | version = "0.1.5" 1408 | source = "registry+https://github.com/rust-lang/crates.io-index" 1409 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" 1410 | dependencies = [ 1411 | "toml", 1412 | ] 1413 | 1414 | [[package]] 1415 | name = "proc-macro-crate" 1416 | version = "1.3.1" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 1419 | dependencies = [ 1420 | "once_cell", 1421 | "toml_edit", 1422 | ] 1423 | 1424 | [[package]] 1425 | name = "proc-macro2" 1426 | version = "1.0.83" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" 1429 | dependencies = [ 1430 | "unicode-ident", 1431 | ] 1432 | 1433 | [[package]] 1434 | name = "qstring" 1435 | version = "0.7.2" 1436 | source = "registry+https://github.com/rust-lang/crates.io-index" 1437 | checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" 1438 | dependencies = [ 1439 | "percent-encoding", 1440 | ] 1441 | 1442 | [[package]] 1443 | name = "qualifier_attr" 1444 | version = "0.2.2" 1445 | source = "registry+https://github.com/rust-lang/crates.io-index" 1446 | checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" 1447 | dependencies = [ 1448 | "proc-macro2", 1449 | "quote", 1450 | "syn 2.0.65", 1451 | ] 1452 | 1453 | [[package]] 1454 | name = "quote" 1455 | version = "1.0.36" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 1458 | dependencies = [ 1459 | "proc-macro2", 1460 | ] 1461 | 1462 | [[package]] 1463 | name = "rand" 1464 | version = "0.7.3" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1467 | dependencies = [ 1468 | "getrandom 0.1.16", 1469 | "libc", 1470 | "rand_chacha 0.2.2", 1471 | "rand_core 0.5.1", 1472 | "rand_hc", 1473 | ] 1474 | 1475 | [[package]] 1476 | name = "rand" 1477 | version = "0.8.5" 1478 | source = "registry+https://github.com/rust-lang/crates.io-index" 1479 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1480 | dependencies = [ 1481 | "libc", 1482 | "rand_chacha 0.3.1", 1483 | "rand_core 0.6.4", 1484 | ] 1485 | 1486 | [[package]] 1487 | name = "rand_chacha" 1488 | version = "0.2.2" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1491 | dependencies = [ 1492 | "ppv-lite86", 1493 | "rand_core 0.5.1", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "rand_chacha" 1498 | version = "0.3.1" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1501 | dependencies = [ 1502 | "ppv-lite86", 1503 | "rand_core 0.6.4", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "rand_core" 1508 | version = "0.5.1" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1511 | dependencies = [ 1512 | "getrandom 0.1.16", 1513 | ] 1514 | 1515 | [[package]] 1516 | name = "rand_core" 1517 | version = "0.6.4" 1518 | source = "registry+https://github.com/rust-lang/crates.io-index" 1519 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1520 | dependencies = [ 1521 | "getrandom 0.2.15", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "rand_hc" 1526 | version = "0.2.0" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1529 | dependencies = [ 1530 | "rand_core 0.5.1", 1531 | ] 1532 | 1533 | [[package]] 1534 | name = "rand_xoshiro" 1535 | version = "0.6.0" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 1538 | dependencies = [ 1539 | "rand_core 0.6.4", 1540 | ] 1541 | 1542 | [[package]] 1543 | name = "rayon" 1544 | version = "1.10.0" 1545 | source = "registry+https://github.com/rust-lang/crates.io-index" 1546 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1547 | dependencies = [ 1548 | "either", 1549 | "rayon-core", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "rayon-core" 1554 | version = "1.12.1" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1557 | dependencies = [ 1558 | "crossbeam-deque", 1559 | "crossbeam-utils", 1560 | ] 1561 | 1562 | [[package]] 1563 | name = "redox_syscall" 1564 | version = "0.5.1" 1565 | source = "registry+https://github.com/rust-lang/crates.io-index" 1566 | checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" 1567 | dependencies = [ 1568 | "bitflags", 1569 | ] 1570 | 1571 | [[package]] 1572 | name = "regex" 1573 | version = "1.10.4" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" 1576 | dependencies = [ 1577 | "aho-corasick", 1578 | "memchr", 1579 | "regex-automata", 1580 | "regex-syntax", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "regex-automata" 1585 | version = "0.4.6" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" 1588 | dependencies = [ 1589 | "aho-corasick", 1590 | "memchr", 1591 | "regex-syntax", 1592 | ] 1593 | 1594 | [[package]] 1595 | name = "regex-syntax" 1596 | version = "0.8.3" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" 1599 | 1600 | [[package]] 1601 | name = "rustc-hash" 1602 | version = "1.1.0" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1605 | 1606 | [[package]] 1607 | name = "rustc_version" 1608 | version = "0.4.0" 1609 | source = "registry+https://github.com/rust-lang/crates.io-index" 1610 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 1611 | dependencies = [ 1612 | "semver", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "rustversion" 1617 | version = "1.0.17" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 1620 | 1621 | [[package]] 1622 | name = "ryu" 1623 | version = "1.0.18" 1624 | source = "registry+https://github.com/rust-lang/crates.io-index" 1625 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1626 | 1627 | [[package]] 1628 | name = "scopeguard" 1629 | version = "1.2.0" 1630 | source = "registry+https://github.com/rust-lang/crates.io-index" 1631 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1632 | 1633 | [[package]] 1634 | name = "semver" 1635 | version = "1.0.23" 1636 | source = "registry+https://github.com/rust-lang/crates.io-index" 1637 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 1638 | 1639 | [[package]] 1640 | name = "serde" 1641 | version = "1.0.202" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" 1644 | dependencies = [ 1645 | "serde_derive", 1646 | ] 1647 | 1648 | [[package]] 1649 | name = "serde_bytes" 1650 | version = "0.11.14" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" 1653 | dependencies = [ 1654 | "serde", 1655 | ] 1656 | 1657 | [[package]] 1658 | name = "serde_derive" 1659 | version = "1.0.202" 1660 | source = "registry+https://github.com/rust-lang/crates.io-index" 1661 | checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" 1662 | dependencies = [ 1663 | "proc-macro2", 1664 | "quote", 1665 | "syn 2.0.65", 1666 | ] 1667 | 1668 | [[package]] 1669 | name = "serde_json" 1670 | version = "1.0.117" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" 1673 | dependencies = [ 1674 | "itoa", 1675 | "ryu", 1676 | "serde", 1677 | ] 1678 | 1679 | [[package]] 1680 | name = "serde_with" 1681 | version = "2.3.3" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" 1684 | dependencies = [ 1685 | "serde", 1686 | "serde_with_macros", 1687 | ] 1688 | 1689 | [[package]] 1690 | name = "serde_with_macros" 1691 | version = "2.3.3" 1692 | source = "registry+https://github.com/rust-lang/crates.io-index" 1693 | checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" 1694 | dependencies = [ 1695 | "darling", 1696 | "proc-macro2", 1697 | "quote", 1698 | "syn 2.0.65", 1699 | ] 1700 | 1701 | [[package]] 1702 | name = "sha2" 1703 | version = "0.9.9" 1704 | source = "registry+https://github.com/rust-lang/crates.io-index" 1705 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 1706 | dependencies = [ 1707 | "block-buffer 0.9.0", 1708 | "cfg-if", 1709 | "cpufeatures", 1710 | "digest 0.9.0", 1711 | "opaque-debug", 1712 | ] 1713 | 1714 | [[package]] 1715 | name = "sha2" 1716 | version = "0.10.8" 1717 | source = "registry+https://github.com/rust-lang/crates.io-index" 1718 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1719 | dependencies = [ 1720 | "cfg-if", 1721 | "cpufeatures", 1722 | "digest 0.10.7", 1723 | ] 1724 | 1725 | [[package]] 1726 | name = "sha3" 1727 | version = "0.9.1" 1728 | source = "registry+https://github.com/rust-lang/crates.io-index" 1729 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" 1730 | dependencies = [ 1731 | "block-buffer 0.9.0", 1732 | "digest 0.9.0", 1733 | "keccak", 1734 | "opaque-debug", 1735 | ] 1736 | 1737 | [[package]] 1738 | name = "sha3" 1739 | version = "0.10.8" 1740 | source = "registry+https://github.com/rust-lang/crates.io-index" 1741 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 1742 | dependencies = [ 1743 | "digest 0.10.7", 1744 | "keccak", 1745 | ] 1746 | 1747 | [[package]] 1748 | name = "signature" 1749 | version = "1.6.4" 1750 | source = "registry+https://github.com/rust-lang/crates.io-index" 1751 | checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" 1752 | 1753 | [[package]] 1754 | name = "sized-chunks" 1755 | version = "0.6.5" 1756 | source = "registry+https://github.com/rust-lang/crates.io-index" 1757 | checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 1758 | dependencies = [ 1759 | "bitmaps", 1760 | "typenum", 1761 | ] 1762 | 1763 | [[package]] 1764 | name = "smallvec" 1765 | version = "1.13.2" 1766 | source = "registry+https://github.com/rust-lang/crates.io-index" 1767 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1768 | 1769 | [[package]] 1770 | name = "solana-frozen-abi" 1771 | version = "1.17.34" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "219c484f952f006e37a1a2598aebcc4dcfd48478c03fc2ce2d99787a5c78f248" 1774 | dependencies = [ 1775 | "ahash 0.8.5", 1776 | "blake3", 1777 | "block-buffer 0.10.4", 1778 | "bs58 0.4.0", 1779 | "bv", 1780 | "byteorder", 1781 | "cc", 1782 | "either", 1783 | "generic-array", 1784 | "im", 1785 | "lazy_static", 1786 | "log", 1787 | "memmap2", 1788 | "rustc_version", 1789 | "serde", 1790 | "serde_bytes", 1791 | "serde_derive", 1792 | "serde_json", 1793 | "sha2 0.10.8", 1794 | "solana-frozen-abi-macro", 1795 | "subtle", 1796 | "thiserror", 1797 | ] 1798 | 1799 | [[package]] 1800 | name = "solana-frozen-abi-macro" 1801 | version = "1.17.34" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "ffe4e1dc5fd61ac10c304b3eb8ddb49737b13e975281d623a6083cf5cf0a8616" 1804 | dependencies = [ 1805 | "proc-macro2", 1806 | "quote", 1807 | "rustc_version", 1808 | "syn 2.0.65", 1809 | ] 1810 | 1811 | [[package]] 1812 | name = "solana-logger" 1813 | version = "1.17.34" 1814 | source = "registry+https://github.com/rust-lang/crates.io-index" 1815 | checksum = "64b4f281f2263de6d9cc65680b90b6bd2c93ba7de573db83fc86e2d05ca7ea8c" 1816 | dependencies = [ 1817 | "env_logger", 1818 | "lazy_static", 1819 | "log", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "solana-program" 1824 | version = "1.17.34" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "93dc0f422549c23c4464eaa9383f4b09cd92b50dea750731dd3c31d3ee2d310f" 1827 | dependencies = [ 1828 | "ark-bn254", 1829 | "ark-ec", 1830 | "ark-ff", 1831 | "ark-serialize", 1832 | "base64 0.21.7", 1833 | "bincode", 1834 | "bitflags", 1835 | "blake3", 1836 | "borsh 0.10.3", 1837 | "borsh 0.9.3", 1838 | "bs58 0.4.0", 1839 | "bv", 1840 | "bytemuck", 1841 | "cc", 1842 | "console_error_panic_hook", 1843 | "console_log", 1844 | "curve25519-dalek", 1845 | "getrandom 0.2.15", 1846 | "itertools", 1847 | "js-sys", 1848 | "lazy_static", 1849 | "libc", 1850 | "libsecp256k1", 1851 | "light-poseidon", 1852 | "log", 1853 | "memoffset", 1854 | "num-bigint", 1855 | "num-derive 0.3.3", 1856 | "num-traits", 1857 | "parking_lot", 1858 | "rand 0.8.5", 1859 | "rustc_version", 1860 | "rustversion", 1861 | "serde", 1862 | "serde_bytes", 1863 | "serde_derive", 1864 | "serde_json", 1865 | "sha2 0.10.8", 1866 | "sha3 0.10.8", 1867 | "solana-frozen-abi", 1868 | "solana-frozen-abi-macro", 1869 | "solana-sdk-macro", 1870 | "thiserror", 1871 | "tiny-bip39", 1872 | "wasm-bindgen", 1873 | "zeroize", 1874 | ] 1875 | 1876 | [[package]] 1877 | name = "solana-sdk" 1878 | version = "1.17.34" 1879 | source = "registry+https://github.com/rust-lang/crates.io-index" 1880 | checksum = "3892ee0e2acdfbeae7315db6c7c56356384631deb943377de5957074bd2dc4d1" 1881 | dependencies = [ 1882 | "assert_matches", 1883 | "base64 0.21.7", 1884 | "bincode", 1885 | "bitflags", 1886 | "borsh 0.10.3", 1887 | "bs58 0.4.0", 1888 | "bytemuck", 1889 | "byteorder", 1890 | "chrono", 1891 | "derivation-path", 1892 | "digest 0.10.7", 1893 | "ed25519-dalek", 1894 | "ed25519-dalek-bip32", 1895 | "generic-array", 1896 | "hmac 0.12.1", 1897 | "itertools", 1898 | "js-sys", 1899 | "lazy_static", 1900 | "libsecp256k1", 1901 | "log", 1902 | "memmap2", 1903 | "num-derive 0.3.3", 1904 | "num-traits", 1905 | "num_enum 0.6.1", 1906 | "pbkdf2 0.11.0", 1907 | "qstring", 1908 | "qualifier_attr", 1909 | "rand 0.7.3", 1910 | "rand 0.8.5", 1911 | "rustc_version", 1912 | "rustversion", 1913 | "serde", 1914 | "serde_bytes", 1915 | "serde_derive", 1916 | "serde_json", 1917 | "serde_with", 1918 | "sha2 0.10.8", 1919 | "sha3 0.10.8", 1920 | "solana-frozen-abi", 1921 | "solana-frozen-abi-macro", 1922 | "solana-logger", 1923 | "solana-program", 1924 | "solana-sdk-macro", 1925 | "thiserror", 1926 | "uriparse", 1927 | "wasm-bindgen", 1928 | ] 1929 | 1930 | [[package]] 1931 | name = "solana-sdk-macro" 1932 | version = "1.17.34" 1933 | source = "registry+https://github.com/rust-lang/crates.io-index" 1934 | checksum = "8019cc997f6c07f09b23dfeb2c45530fa94df2e2fb9d654f3c772c9766a1511f" 1935 | dependencies = [ 1936 | "bs58 0.4.0", 1937 | "proc-macro2", 1938 | "quote", 1939 | "rustversion", 1940 | "syn 2.0.65", 1941 | ] 1942 | 1943 | [[package]] 1944 | name = "solana-security-txt" 1945 | version = "1.1.1" 1946 | source = "registry+https://github.com/rust-lang/crates.io-index" 1947 | checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" 1948 | 1949 | [[package]] 1950 | name = "solana-zk-token-sdk" 1951 | version = "1.17.34" 1952 | source = "registry+https://github.com/rust-lang/crates.io-index" 1953 | checksum = "70a06e103ed5adf1664f9cca3d1c64edad8b5b603255d8a5dd21a4ac5d86b89c" 1954 | dependencies = [ 1955 | "aes-gcm-siv", 1956 | "base64 0.21.7", 1957 | "bincode", 1958 | "bytemuck", 1959 | "byteorder", 1960 | "curve25519-dalek", 1961 | "getrandom 0.1.16", 1962 | "itertools", 1963 | "lazy_static", 1964 | "merlin", 1965 | "num-derive 0.3.3", 1966 | "num-traits", 1967 | "rand 0.7.3", 1968 | "serde", 1969 | "serde_json", 1970 | "sha3 0.9.1", 1971 | "solana-program", 1972 | "solana-sdk", 1973 | "subtle", 1974 | "thiserror", 1975 | "zeroize", 1976 | ] 1977 | 1978 | [[package]] 1979 | name = "spl-associated-token-account" 1980 | version = "2.3.1" 1981 | source = "registry+https://github.com/rust-lang/crates.io-index" 1982 | checksum = "4414117bead33f2a5cf059cefac0685592bdd36f31f3caac49b89bff7f6bbf32" 1983 | dependencies = [ 1984 | "assert_matches", 1985 | "borsh 0.10.3", 1986 | "num-derive 0.4.2", 1987 | "num-traits", 1988 | "solana-program", 1989 | "spl-token", 1990 | "spl-token-2022 2.0.1", 1991 | "thiserror", 1992 | ] 1993 | 1994 | [[package]] 1995 | name = "spl-discriminator" 1996 | version = "0.1.1" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "daa600f2fe56f32e923261719bae640d873edadbc5237681a39b8e37bfd4d263" 1999 | dependencies = [ 2000 | "bytemuck", 2001 | "solana-program", 2002 | "spl-discriminator-derive", 2003 | ] 2004 | 2005 | [[package]] 2006 | name = "spl-discriminator-derive" 2007 | version = "0.1.2" 2008 | source = "registry+https://github.com/rust-lang/crates.io-index" 2009 | checksum = "07fd7858fc4ff8fb0e34090e41d7eb06a823e1057945c26d480bfc21d2338a93" 2010 | dependencies = [ 2011 | "quote", 2012 | "spl-discriminator-syn", 2013 | "syn 2.0.65", 2014 | ] 2015 | 2016 | [[package]] 2017 | name = "spl-discriminator-syn" 2018 | version = "0.1.2" 2019 | source = "registry+https://github.com/rust-lang/crates.io-index" 2020 | checksum = "18fea7be851bd98d10721782ea958097c03a0c2a07d8d4997041d0ece6319a63" 2021 | dependencies = [ 2022 | "proc-macro2", 2023 | "quote", 2024 | "sha2 0.10.8", 2025 | "syn 2.0.65", 2026 | "thiserror", 2027 | ] 2028 | 2029 | [[package]] 2030 | name = "spl-memo" 2031 | version = "4.0.1" 2032 | source = "registry+https://github.com/rust-lang/crates.io-index" 2033 | checksum = "58e9bae02de3405079a057fe244c867a08f92d48327d231fc60da831f94caf0a" 2034 | dependencies = [ 2035 | "solana-program", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "spl-pod" 2040 | version = "0.1.1" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "85a5db7e4efb1107b0b8e52a13f035437cdcb36ef99c58f6d467f089d9b2915a" 2043 | dependencies = [ 2044 | "borsh 0.10.3", 2045 | "bytemuck", 2046 | "solana-program", 2047 | "solana-zk-token-sdk", 2048 | "spl-program-error", 2049 | ] 2050 | 2051 | [[package]] 2052 | name = "spl-program-error" 2053 | version = "0.3.1" 2054 | source = "registry+https://github.com/rust-lang/crates.io-index" 2055 | checksum = "7e0657b6490196971d9e729520ba934911ff41fbb2cb9004463dbe23cf8b4b4f" 2056 | dependencies = [ 2057 | "num-derive 0.4.2", 2058 | "num-traits", 2059 | "solana-program", 2060 | "spl-program-error-derive", 2061 | "thiserror", 2062 | ] 2063 | 2064 | [[package]] 2065 | name = "spl-program-error-derive" 2066 | version = "0.3.2" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "1845dfe71fd68f70382232742e758557afe973ae19e6c06807b2c30f5d5cb474" 2069 | dependencies = [ 2070 | "proc-macro2", 2071 | "quote", 2072 | "sha2 0.10.8", 2073 | "syn 2.0.65", 2074 | ] 2075 | 2076 | [[package]] 2077 | name = "spl-tlv-account-resolution" 2078 | version = "0.4.0" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "062e148d3eab7b165582757453632ffeef490c02c86a48bfdb4988f63eefb3b9" 2081 | dependencies = [ 2082 | "bytemuck", 2083 | "solana-program", 2084 | "spl-discriminator", 2085 | "spl-pod", 2086 | "spl-program-error", 2087 | "spl-type-length-value", 2088 | ] 2089 | 2090 | [[package]] 2091 | name = "spl-tlv-account-resolution" 2092 | version = "0.5.2" 2093 | source = "registry+https://github.com/rust-lang/crates.io-index" 2094 | checksum = "56f335787add7fa711819f9e7c573f8145a5358a709446fe2d24bf2a88117c90" 2095 | dependencies = [ 2096 | "bytemuck", 2097 | "solana-program", 2098 | "spl-discriminator", 2099 | "spl-pod", 2100 | "spl-program-error", 2101 | "spl-type-length-value", 2102 | ] 2103 | 2104 | [[package]] 2105 | name = "spl-token" 2106 | version = "4.0.1" 2107 | source = "registry+https://github.com/rust-lang/crates.io-index" 2108 | checksum = "95ae123223633a389f95d1da9d49c2d0a50d499e7060b9624626a69e536ad2a4" 2109 | dependencies = [ 2110 | "arrayref", 2111 | "bytemuck", 2112 | "num-derive 0.4.2", 2113 | "num-traits", 2114 | "num_enum 0.7.2", 2115 | "solana-program", 2116 | "thiserror", 2117 | ] 2118 | 2119 | [[package]] 2120 | name = "spl-token-2022" 2121 | version = "0.9.0" 2122 | source = "registry+https://github.com/rust-lang/crates.io-index" 2123 | checksum = "e4abf34a65ba420584a0c35f3903f8d727d1f13ababbdc3f714c6b065a686e86" 2124 | dependencies = [ 2125 | "arrayref", 2126 | "bytemuck", 2127 | "num-derive 0.4.2", 2128 | "num-traits", 2129 | "num_enum 0.7.2", 2130 | "solana-program", 2131 | "solana-zk-token-sdk", 2132 | "spl-memo", 2133 | "spl-pod", 2134 | "spl-token", 2135 | "spl-token-metadata-interface", 2136 | "spl-transfer-hook-interface 0.3.0", 2137 | "spl-type-length-value", 2138 | "thiserror", 2139 | ] 2140 | 2141 | [[package]] 2142 | name = "spl-token-2022" 2143 | version = "2.0.1" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "b9fec83597cf7be923c5c3bdfd2fcc08cdfacd2eeb6c4e413da06b6916f50827" 2146 | dependencies = [ 2147 | "arrayref", 2148 | "bytemuck", 2149 | "num-derive 0.4.2", 2150 | "num-traits", 2151 | "num_enum 0.7.2", 2152 | "solana-program", 2153 | "solana-security-txt", 2154 | "solana-zk-token-sdk", 2155 | "spl-memo", 2156 | "spl-pod", 2157 | "spl-token", 2158 | "spl-token-group-interface", 2159 | "spl-token-metadata-interface", 2160 | "spl-transfer-hook-interface 0.5.1", 2161 | "spl-type-length-value", 2162 | "thiserror", 2163 | ] 2164 | 2165 | [[package]] 2166 | name = "spl-token-group-interface" 2167 | version = "0.1.1" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "7eb67fbacd587377a400aba81718abe4424d0e9d5ea510034d3b7f130d102153" 2170 | dependencies = [ 2171 | "bytemuck", 2172 | "solana-program", 2173 | "spl-discriminator", 2174 | "spl-pod", 2175 | "spl-program-error", 2176 | ] 2177 | 2178 | [[package]] 2179 | name = "spl-token-metadata-interface" 2180 | version = "0.2.1" 2181 | source = "registry+https://github.com/rust-lang/crates.io-index" 2182 | checksum = "e16aa8f64b6e0eaab3f5034e84d867c8435d8216497b4543a4978a31f4b6e8a8" 2183 | dependencies = [ 2184 | "borsh 0.10.3", 2185 | "solana-program", 2186 | "spl-discriminator", 2187 | "spl-pod", 2188 | "spl-program-error", 2189 | "spl-type-length-value", 2190 | ] 2191 | 2192 | [[package]] 2193 | name = "spl-transfer-hook-interface" 2194 | version = "0.3.0" 2195 | source = "registry+https://github.com/rust-lang/crates.io-index" 2196 | checksum = "051d31803f873cabe71aec3c1b849f35248beae5d19a347d93a5c9cccc5d5a9b" 2197 | dependencies = [ 2198 | "arrayref", 2199 | "bytemuck", 2200 | "solana-program", 2201 | "spl-discriminator", 2202 | "spl-pod", 2203 | "spl-program-error", 2204 | "spl-tlv-account-resolution 0.4.0", 2205 | "spl-type-length-value", 2206 | ] 2207 | 2208 | [[package]] 2209 | name = "spl-transfer-hook-interface" 2210 | version = "0.5.1" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "5f6dfe329fcff44cbe2eea994bd8f737f0b0a69faed39e56f9b6ee03badf7e14" 2213 | dependencies = [ 2214 | "arrayref", 2215 | "bytemuck", 2216 | "solana-program", 2217 | "spl-discriminator", 2218 | "spl-pod", 2219 | "spl-program-error", 2220 | "spl-tlv-account-resolution 0.5.2", 2221 | "spl-type-length-value", 2222 | ] 2223 | 2224 | [[package]] 2225 | name = "spl-type-length-value" 2226 | version = "0.3.1" 2227 | source = "registry+https://github.com/rust-lang/crates.io-index" 2228 | checksum = "8f9ebd75d29c5f48de5f6a9c114e08531030b75b8ac2c557600ac7da0b73b1e8" 2229 | dependencies = [ 2230 | "bytemuck", 2231 | "solana-program", 2232 | "spl-discriminator", 2233 | "spl-pod", 2234 | "spl-program-error", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "strsim" 2239 | version = "0.11.1" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 2242 | 2243 | [[package]] 2244 | name = "subtle" 2245 | version = "2.4.1" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 2248 | 2249 | [[package]] 2250 | name = "syn" 2251 | version = "1.0.109" 2252 | source = "registry+https://github.com/rust-lang/crates.io-index" 2253 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2254 | dependencies = [ 2255 | "proc-macro2", 2256 | "quote", 2257 | "unicode-ident", 2258 | ] 2259 | 2260 | [[package]] 2261 | name = "syn" 2262 | version = "2.0.65" 2263 | source = "registry+https://github.com/rust-lang/crates.io-index" 2264 | checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" 2265 | dependencies = [ 2266 | "proc-macro2", 2267 | "quote", 2268 | "unicode-ident", 2269 | ] 2270 | 2271 | [[package]] 2272 | name = "termcolor" 2273 | version = "1.4.1" 2274 | source = "registry+https://github.com/rust-lang/crates.io-index" 2275 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 2276 | dependencies = [ 2277 | "winapi-util", 2278 | ] 2279 | 2280 | [[package]] 2281 | name = "thiserror" 2282 | version = "1.0.61" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" 2285 | dependencies = [ 2286 | "thiserror-impl", 2287 | ] 2288 | 2289 | [[package]] 2290 | name = "thiserror-impl" 2291 | version = "1.0.61" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" 2294 | dependencies = [ 2295 | "proc-macro2", 2296 | "quote", 2297 | "syn 2.0.65", 2298 | ] 2299 | 2300 | [[package]] 2301 | name = "tiny-bip39" 2302 | version = "0.8.2" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" 2305 | dependencies = [ 2306 | "anyhow", 2307 | "hmac 0.8.1", 2308 | "once_cell", 2309 | "pbkdf2 0.4.0", 2310 | "rand 0.7.3", 2311 | "rustc-hash", 2312 | "sha2 0.9.9", 2313 | "thiserror", 2314 | "unicode-normalization", 2315 | "wasm-bindgen", 2316 | "zeroize", 2317 | ] 2318 | 2319 | [[package]] 2320 | name = "tinyvec" 2321 | version = "1.6.0" 2322 | source = "registry+https://github.com/rust-lang/crates.io-index" 2323 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2324 | dependencies = [ 2325 | "tinyvec_macros", 2326 | ] 2327 | 2328 | [[package]] 2329 | name = "tinyvec_macros" 2330 | version = "0.1.1" 2331 | source = "registry+https://github.com/rust-lang/crates.io-index" 2332 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2333 | 2334 | [[package]] 2335 | name = "toml" 2336 | version = "0.5.11" 2337 | source = "registry+https://github.com/rust-lang/crates.io-index" 2338 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 2339 | dependencies = [ 2340 | "serde", 2341 | ] 2342 | 2343 | [[package]] 2344 | name = "toml_datetime" 2345 | version = "0.6.1" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" 2348 | 2349 | [[package]] 2350 | name = "toml_edit" 2351 | version = "0.19.8" 2352 | source = "registry+https://github.com/rust-lang/crates.io-index" 2353 | checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" 2354 | dependencies = [ 2355 | "indexmap", 2356 | "toml_datetime", 2357 | "winnow", 2358 | ] 2359 | 2360 | [[package]] 2361 | name = "typenum" 2362 | version = "1.17.0" 2363 | source = "registry+https://github.com/rust-lang/crates.io-index" 2364 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 2365 | 2366 | [[package]] 2367 | name = "unicode-ident" 2368 | version = "1.0.12" 2369 | source = "registry+https://github.com/rust-lang/crates.io-index" 2370 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 2371 | 2372 | [[package]] 2373 | name = "unicode-normalization" 2374 | version = "0.1.23" 2375 | source = "registry+https://github.com/rust-lang/crates.io-index" 2376 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 2377 | dependencies = [ 2378 | "tinyvec", 2379 | ] 2380 | 2381 | [[package]] 2382 | name = "unicode-segmentation" 2383 | version = "1.11.0" 2384 | source = "registry+https://github.com/rust-lang/crates.io-index" 2385 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 2386 | 2387 | [[package]] 2388 | name = "universal-hash" 2389 | version = "0.4.1" 2390 | source = "registry+https://github.com/rust-lang/crates.io-index" 2391 | checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" 2392 | dependencies = [ 2393 | "generic-array", 2394 | "subtle", 2395 | ] 2396 | 2397 | [[package]] 2398 | name = "uriparse" 2399 | version = "0.6.4" 2400 | source = "registry+https://github.com/rust-lang/crates.io-index" 2401 | checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" 2402 | dependencies = [ 2403 | "fnv", 2404 | "lazy_static", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "version_check" 2409 | version = "0.9.4" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2412 | 2413 | [[package]] 2414 | name = "wasi" 2415 | version = "0.9.0+wasi-snapshot-preview1" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2418 | 2419 | [[package]] 2420 | name = "wasi" 2421 | version = "0.11.0+wasi-snapshot-preview1" 2422 | source = "registry+https://github.com/rust-lang/crates.io-index" 2423 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2424 | 2425 | [[package]] 2426 | name = "wasm-bindgen" 2427 | version = "0.2.92" 2428 | source = "registry+https://github.com/rust-lang/crates.io-index" 2429 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 2430 | dependencies = [ 2431 | "cfg-if", 2432 | "wasm-bindgen-macro", 2433 | ] 2434 | 2435 | [[package]] 2436 | name = "wasm-bindgen-backend" 2437 | version = "0.2.92" 2438 | source = "registry+https://github.com/rust-lang/crates.io-index" 2439 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 2440 | dependencies = [ 2441 | "bumpalo", 2442 | "log", 2443 | "once_cell", 2444 | "proc-macro2", 2445 | "quote", 2446 | "syn 2.0.65", 2447 | "wasm-bindgen-shared", 2448 | ] 2449 | 2450 | [[package]] 2451 | name = "wasm-bindgen-macro" 2452 | version = "0.2.92" 2453 | source = "registry+https://github.com/rust-lang/crates.io-index" 2454 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 2455 | dependencies = [ 2456 | "quote", 2457 | "wasm-bindgen-macro-support", 2458 | ] 2459 | 2460 | [[package]] 2461 | name = "wasm-bindgen-macro-support" 2462 | version = "0.2.92" 2463 | source = "registry+https://github.com/rust-lang/crates.io-index" 2464 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 2465 | dependencies = [ 2466 | "proc-macro2", 2467 | "quote", 2468 | "syn 2.0.65", 2469 | "wasm-bindgen-backend", 2470 | "wasm-bindgen-shared", 2471 | ] 2472 | 2473 | [[package]] 2474 | name = "wasm-bindgen-shared" 2475 | version = "0.2.92" 2476 | source = "registry+https://github.com/rust-lang/crates.io-index" 2477 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 2478 | 2479 | [[package]] 2480 | name = "web-sys" 2481 | version = "0.3.69" 2482 | source = "registry+https://github.com/rust-lang/crates.io-index" 2483 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 2484 | dependencies = [ 2485 | "js-sys", 2486 | "wasm-bindgen", 2487 | ] 2488 | 2489 | [[package]] 2490 | name = "winapi" 2491 | version = "0.3.9" 2492 | source = "registry+https://github.com/rust-lang/crates.io-index" 2493 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2494 | dependencies = [ 2495 | "winapi-i686-pc-windows-gnu", 2496 | "winapi-x86_64-pc-windows-gnu", 2497 | ] 2498 | 2499 | [[package]] 2500 | name = "winapi-i686-pc-windows-gnu" 2501 | version = "0.4.0" 2502 | source = "registry+https://github.com/rust-lang/crates.io-index" 2503 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2504 | 2505 | [[package]] 2506 | name = "winapi-util" 2507 | version = "0.1.8" 2508 | source = "registry+https://github.com/rust-lang/crates.io-index" 2509 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 2510 | dependencies = [ 2511 | "windows-sys", 2512 | ] 2513 | 2514 | [[package]] 2515 | name = "winapi-x86_64-pc-windows-gnu" 2516 | version = "0.4.0" 2517 | source = "registry+https://github.com/rust-lang/crates.io-index" 2518 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2519 | 2520 | [[package]] 2521 | name = "windows-sys" 2522 | version = "0.52.0" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2525 | dependencies = [ 2526 | "windows-targets", 2527 | ] 2528 | 2529 | [[package]] 2530 | name = "windows-targets" 2531 | version = "0.52.5" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 2534 | dependencies = [ 2535 | "windows_aarch64_gnullvm", 2536 | "windows_aarch64_msvc", 2537 | "windows_i686_gnu", 2538 | "windows_i686_gnullvm", 2539 | "windows_i686_msvc", 2540 | "windows_x86_64_gnu", 2541 | "windows_x86_64_gnullvm", 2542 | "windows_x86_64_msvc", 2543 | ] 2544 | 2545 | [[package]] 2546 | name = "windows_aarch64_gnullvm" 2547 | version = "0.52.5" 2548 | source = "registry+https://github.com/rust-lang/crates.io-index" 2549 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 2550 | 2551 | [[package]] 2552 | name = "windows_aarch64_msvc" 2553 | version = "0.52.5" 2554 | source = "registry+https://github.com/rust-lang/crates.io-index" 2555 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 2556 | 2557 | [[package]] 2558 | name = "windows_i686_gnu" 2559 | version = "0.52.5" 2560 | source = "registry+https://github.com/rust-lang/crates.io-index" 2561 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 2562 | 2563 | [[package]] 2564 | name = "windows_i686_gnullvm" 2565 | version = "0.52.5" 2566 | source = "registry+https://github.com/rust-lang/crates.io-index" 2567 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 2568 | 2569 | [[package]] 2570 | name = "windows_i686_msvc" 2571 | version = "0.52.5" 2572 | source = "registry+https://github.com/rust-lang/crates.io-index" 2573 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 2574 | 2575 | [[package]] 2576 | name = "windows_x86_64_gnu" 2577 | version = "0.52.5" 2578 | source = "registry+https://github.com/rust-lang/crates.io-index" 2579 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 2580 | 2581 | [[package]] 2582 | name = "windows_x86_64_gnullvm" 2583 | version = "0.52.5" 2584 | source = "registry+https://github.com/rust-lang/crates.io-index" 2585 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 2586 | 2587 | [[package]] 2588 | name = "windows_x86_64_msvc" 2589 | version = "0.52.5" 2590 | source = "registry+https://github.com/rust-lang/crates.io-index" 2591 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 2592 | 2593 | [[package]] 2594 | name = "winnow" 2595 | version = "0.4.11" 2596 | source = "registry+https://github.com/rust-lang/crates.io-index" 2597 | checksum = "656953b22bcbfb1ec8179d60734981d1904494ecc91f8a3f0ee5c7389bb8eb4b" 2598 | dependencies = [ 2599 | "memchr", 2600 | ] 2601 | 2602 | [[package]] 2603 | name = "zerocopy" 2604 | version = "0.7.34" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" 2607 | dependencies = [ 2608 | "zerocopy-derive", 2609 | ] 2610 | 2611 | [[package]] 2612 | name = "zerocopy-derive" 2613 | version = "0.7.34" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" 2616 | dependencies = [ 2617 | "proc-macro2", 2618 | "quote", 2619 | "syn 2.0.65", 2620 | ] 2621 | 2622 | [[package]] 2623 | name = "zeroize" 2624 | version = "1.3.0" 2625 | source = "registry+https://github.com/rust-lang/crates.io-index" 2626 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" 2627 | dependencies = [ 2628 | "zeroize_derive", 2629 | ] 2630 | 2631 | [[package]] 2632 | name = "zeroize_derive" 2633 | version = "1.4.2" 2634 | source = "registry+https://github.com/rust-lang/crates.io-index" 2635 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 2636 | dependencies = [ 2637 | "proc-macro2", 2638 | "quote", 2639 | "syn 2.0.65", 2640 | ] 2641 | --------------------------------------------------------------------------------