diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12178a2..8546f0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -136,7 +136,6 @@ jobs: - name: Build stack crates (regenerate ASTs) run: | - cargo build --manifest-path stacks/pumpfun/Cargo.toml cargo build --manifest-path stacks/ore/Cargo.toml - name: Install hyperstack-cli @@ -144,7 +143,6 @@ jobs: - name: Regenerate TypeScript SDKs run: | - hs sdk create typescript pumpfun --config stacks/pumpfun/hyperstack.toml hs sdk create typescript ore --config stacks/ore/hyperstack.toml - name: Check for uncommitted changes @@ -160,9 +158,7 @@ jobs: echo "" echo "To fix this, run the following locally and commit the changes:" echo "" - echo " cargo build --manifest-path stacks/pumpfun/Cargo.toml" echo " cargo build --manifest-path stacks/ore/Cargo.toml" - echo " hs sdk create typescript pumpfun --config stacks/pumpfun/hyperstack.toml" echo " hs sdk create typescript ore --config stacks/ore/hyperstack.toml" echo "" echo "Files that differ:" diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 0bb78f2..fb87c3f 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -20,10 +20,13 @@ export default defineConfig({ description: "Hyperstack is a system for programmable real-time data feeds on Solana. Stream any on-chain data to your app via WebSocket. Define data shapes in a Rust DSL, deploy, and consume with typed TypeScript, React, or Rust SDKs.", promote: [ + "getting-started/what-is-hyperstack", + "agent-skills/setup-tools", "using-stacks/quickstart", "using-stacks/connect", "agent-skills/overview", "agent-skills/prompts", + "agent-skills/tutorial-ore-dashboard", "sdks/typescript", "sdks/react", ], @@ -50,7 +53,11 @@ export default defineConfig({ // Contributors only need to add frontmatter to control ordering sidebar: [ { - label: "Get Started", + label: "Getting Started", + items: [{ slug: "getting-started/what-is-hyperstack" }], + }, + { + label: "For Developers", autogenerate: { directory: "using-stacks" }, }, { diff --git a/docs/public/agent.md b/docs/public/agent.md index 66113ef..d1b4caa 100644 --- a/docs/public/agent.md +++ b/docs/public/agent.md @@ -2,8 +2,54 @@ You are setting up Hyperstack, a real-time Solana data streaming platform. Follow these steps in order. +## Step 0: Check What Is Already Installed + +Before installing anything, check what is already present. + +### Hyperstack CLI + +Run: +``` +hs --version +``` + +- If this prints a version number, the CLI is already installed. Continue to check if it needs updating. +- If the command is not found, the CLI needs to be installed (see Step 1). + +If the CLI is already installed, check if it is up to date: +``` +cargo install hyperstack-cli 2>&1 | head -5 +``` +If this says "already up to date" or similar, skip Step 1. If a newer version is available, it will update in place. + +### Agent Skills + +Check if Hyperstack skills are already installed using the skills CLI: +``` +npx skills list 2>/dev/null | grep -i hyperstack +``` + +- If this shows hyperstack skills, they are already installed. Run `npx skills check` to see if updates are available. +- If no output, skills need to be installed (see Step 2). + +Alternatively, check for skill files directly in the project. The location depends on which agent you are: + +| Agent | Skill directory | +|---|---| +| Cursor | `.cursor/skills/` or `.agents/skills/` | +| Claude Code | `.claude/skills/` | +| OpenCode | `.opencode/skills/` or `.agents/skills/` | +| Windsurf | `.windsurf/skills/` | +| Cline | `.cline/skills/` | +| GitHub Copilot | `.agents/skills/` | +| Other / Unknown | `.agents/skills/` | + +If skill files already exist and are up to date, skip Step 2. + ## Step 1: Install the Hyperstack CLI +Only do this if `hs --version` failed in Step 0. + Preferred (Cargo): ``` cargo install hyperstack-cli @@ -21,20 +67,59 @@ hs --version ## Step 2: Install Agent Skills +Only do this if skill files were not found in Step 0, or if you want to update to the latest version. + The `npx skills` tool installs skills for 40+ coding agents including Cursor, Claude Code, OpenCode, Codex, Windsurf, VS Code Copilot, Cline, Roo Code, and many more. It auto-detects which agents are present and installs to the correct location for each. +### Determine your agent identity + +Before running the install, determine which agent harness you are running in. This lets you target the install correctly and avoids unnecessary prompts. + +**How to tell which agent you are:** +- If you have a system prompt or context that identifies you (e.g. "You are Claude Code", "Cursor Agent", etc.), use that identity. +- If you can check your own configuration directory, look for which of these exist: `.claude/`, `.cursor/`, `.opencode/`, `.windsurf/`, `.cline/`. +- If you genuinely cannot determine your identity, fall back to the general `.agents/` install. + +**If you know which agent you are**, install with the `--agent` flag for your specific harness. This ensures skills land in the correct directory: + +``` +npx skills add usehyperstack/skills --agent +``` + +Common agent identifiers: + +| Agent | Flag | +|---|---| +| Claude Code | `--agent claude-code` | +| Cursor | `--agent cursor` | +| OpenCode | `--agent opencode` | +| Windsurf | `--agent windsurf` | +| GitHub Copilot | `--agent github-copilot` | +| Cline | `--agent cline` | +| Codex | `--agent codex` | +| Roo Code | `--agent roo` | +| Gemini CLI | `--agent gemini-cli` | +| Goose | `--agent goose` | +| Continue | `--agent continue` | + +**If you cannot determine which agent you are**, fall back to the general install which writes to `.agents/skills/` (readable by most agents): + ``` npx skills add usehyperstack/skills ``` +This auto-detects which agents are present and installs to the correct location for each. You can also explicitly install for all detected agents: + +``` +npx skills add usehyperstack/skills --all +``` + This installs context files that teach you (the agent) how to use Hyperstack's SDKs, CLI, and Rust DSL. -If you need to target a specific agent, or want to understand the options available, see the full `npx skills` documentation: https://github.com/vercel-labs/skills +For the full `npx skills` documentation: https://github.com/vercel-labs/skills -Common options: -- `npx skills add usehyperstack/skills --all` installs all skills to all detected agents without prompts -- `npx skills add usehyperstack/skills -a claude-code` targets a specific agent -- `npx skills add usehyperstack/skills -a cursor -a opencode` targets multiple agents +Additional options: +- `npx skills add usehyperstack/skills -a cursor -a opencode` targets multiple specific agents - `npx skills add usehyperstack/skills -g` installs globally (available across all projects) ## Step 3: Discover Available Data @@ -69,4 +154,4 @@ Key rules: Full documentation: https://docs.usehyperstack.com Agent skills reference: https://docs.usehyperstack.com/agent-skills/overview/ -Prompt cookbook: https://docs.usehyperstack.com/agent-skills/prompts/ +Prompt cookbook: https://docs.usehyperstack.com/agent-skills/prompts/ \ No newline at end of file diff --git a/docs/src/content/docs/agent-skills/explore.mdx b/docs/src/content/docs/agent-skills/explore.mdx index 407af26..f99ff5e 100644 --- a/docs/src/content/docs/agent-skills/explore.mdx +++ b/docs/src/content/docs/agent-skills/explore.mdx @@ -1,5 +1,5 @@ --- -title: Schema Discovery +title: Explore Stacks sidebar: order: 3 description: How agents use hs explore to discover stacks and get live schema information. diff --git a/docs/src/content/docs/agent-skills/overview.mdx b/docs/src/content/docs/agent-skills/overview.mdx index 0f55c3d..6390823 100644 --- a/docs/src/content/docs/agent-skills/overview.mdx +++ b/docs/src/content/docs/agent-skills/overview.mdx @@ -1,89 +1,119 @@ --- -title: Build with AI +title: Agent Skills sidebar: order: 1 -description: Let your AI agent set up and build with Hyperstack. One prompt, fully automated. +description: How the Hyperstack CLI, agent skills, and agent.md work together to give your AI agent everything it needs to build with Hyperstack. --- import { Tabs, TabItem } from "@astrojs/starlight/components"; import CopyPrompt from "../../../components/CopyPrompt.astro"; -The fastest way to start with Hyperstack is to let your AI agent handle everything. Paste one prompt and your agent installs the CLI, sets up skills, discovers available data, and starts building. +:::tip[New to coding?] +If you haven't set up an AI coding tool yet, start with [AI Tooling Setup](/agent-skills/setup-tools/) which walks you through everything from scratch. +::: + +Hyperstack is designed to be built with AI agents. This page explains the three pieces that make that work: the **CLI**, the **agent skills**, and **agent.md**. --- -## Let Your Agent Do It +## The CLI -Paste this into your AI coding agent (Cursor, Claude Code, OpenCode, Windsurf, or any agent that can read URLs): +The Hyperstack CLI (`hs`) is the primary interface between your agent and Hyperstack. It handles scaffolding, deployment, SDK generation, and — most importantly — live schema discovery. - -Read https://docs.usehyperstack.com/agent.md and follow the instructions to set up Hyperstack in this project - +```bash +# Install via Cargo (recommended) +cargo install hyperstack-cli -That's it. Your agent will: +# Or via npm +npm install -g hyperstack-cli +``` -1. Install the Hyperstack CLI (prefers Cargo, falls back to npm) -2. Install agent skills so it knows the SDK patterns -3. Run `hs explore --json` to discover available data streams -4. Be ready to build +The key command for agents is `hs explore`: -Once setup is complete, try asking: +```bash +hs explore --json +``` -- "Build a React dashboard that displays live ORE mining rounds" -- "Show me the current ORE motherlode and total miners in real-time" -- "Create a custom stack from this IDL that tracks token balances" -- "What entities does the ore stack have? Show me all fields." +This queries the Hyperstack API and returns the live schemas for all available stacks — their entities, fields, views, and types. Because your agent runs this at setup time, it always works with accurate, up-to-date type information rather than guessing from training data. --- -## How It Works +## Agent Skills -The setup prompt points your agent to a plain text instruction file. The agent reads it, executes the setup commands, and learns how to use Hyperstack through the installed skills. +Agent skills are markdown files that teach your agent how to use Hyperstack correctly. They're installed into your project so your agent picks them up automatically as context. -Agent skills are markdown files that teach your agent the SDK syntax, CLI commands, and patterns. The skills also instruct the agent to use the `hs` CLI for live data, so type information is always accurate. +Three skills are installed: -``` -┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ -│ Agent Skills │ ──▶ │ AI Agent │ ──▶ │ Your Code │ -│ (SDK patterns │ │ (Cursor, │ │ (correct │ -│ + CLI usage) │ │ Claude, etc.) │ │ from start) │ -└─────────────────┘ └─────────┬───────┘ └─────────────────┘ - │ - hs explore --json - │ - ┌─────────▼───────┐ - │ Hyperstack API │ - │ (live schemas) │ - └─────────────────┘ +| Skill | What it teaches | +| -------------------- | ------------------------------------------------------------------------- | +| `hyperstack` | Router skill — detects intent and routes the agent to the right sub-skill | +| `hyperstack-consume` | SDK patterns for connecting to streams in TypeScript, React, and Rust | +| `hyperstack-build` | Rust DSL syntax for building custom stacks from Solana program IDLs | + +Install them manually with: + +```bash +npx skills add usehyperstack/skills ``` -Three skills are installed: +Once installed, your agent knows the correct hook names, view patterns, subscription syntax, and CLI commands. Without the skills, an agent will hallucinate API shapes based on outdated training data. + +--- + +## agent.md + +`agent.md` is a plain text file hosted at `https://docs.usehyperstack.com/agent.md`. It's the bootstrap instruction set — a single URL your agent can read to set everything up from scratch. + +When your agent reads `agent.md`, it: + +1. Installs the Hyperstack CLI (prefers Cargo, falls back to npm) +2. Installs the agent skills into the project +3. Runs `hs explore --json` to load live schemas +4. Understands it's ready to build -| Skill | What It Teaches | -| -------------------- | --------------------------------------------------------------------------------- | -| `hyperstack` | Router skill that detects your intent and points the agent to the right sub-skill | -| `hyperstack-consume` | SDK patterns for connecting to streams and building UIs (TypeScript, React, Rust) | -| `hyperstack-build` | Rust DSL syntax for building custom stacks from Solana program IDLs | +This is why the one-liner works: + + +Read https://docs.usehyperstack.com/agent.md and follow the instructions to set up Hyperstack in this project + --- -## Prefer to Set Up Manually? +## How They Fit Together + +``` +agent.md ──▶ CLI installed ──▶ hs explore --json ──▶ live schemas + Skills installed ─▶ SDK patterns + DSL syntax + + ┌────────────────────────────┐ + │ AI Agent │ + │ (Cursor, Claude Code, etc) │ + │ │ + │ Skills + Live schemas │ + └────────────┬───────────────┘ + │ + builds correct code + │ + ▼ + Your Hyperstack app +``` -If you'd rather run the commands yourself instead of letting the agent handle it: +The CLI gives the agent **live data**. The skills give the agent **correct patterns**. Together they remove the two main failure modes: wrong types and wrong API usage. + +--- + +## Prefer to Set Up Manually? ```bash -# Install the CLI cargo install hyperstack-cli # Or: npm install -g hyperstack-cli -# Scaffold an app -npx hyperstack-cli create my-app +npx hyperstack-cli create my-app --template react-ore cd my-app -# Install agent skills npx skills add usehyperstack/skills ``` @@ -91,11 +121,9 @@ npx skills add usehyperstack/skills ```bash -# Install the CLI cargo install hyperstack-cli # Or: npm install -g hyperstack-cli -# Install agent skills in your project npx skills add usehyperstack/skills ``` @@ -108,7 +136,7 @@ For editor-specific file locations and manual configuration, see [Editor Setup]( ## Next Steps -- [Prompt Cookbook](/agent-skills/prompts/) - Copy-paste prompts for common tasks -- [Tutorial: ORE Dashboard](/agent-skills/tutorial-ore-dashboard/) - Build a complete app with step-by-step prompts -- [Schema Discovery](/agent-skills/explore/) - How `hs explore` provides live type information -- [Editor Setup](/agent-skills/setup/) - Manual setup for specific editors +- [Prompt Cookbook](/agent-skills/prompts/) — Copy-paste prompts for common tasks +- [Tutorial: ORE Dashboard](/agent-skills/tutorial-ore-dashboard/) — Build a complete app step by step +- [Schema Discovery](/agent-skills/explore/) — How `hs explore` provides live type information +- [Editor Setup](/agent-skills/setup/) — Manual setup for specific editors diff --git a/docs/src/content/docs/agent-skills/setup-tools.mdx b/docs/src/content/docs/agent-skills/setup-tools.mdx new file mode 100644 index 0000000..9920dff --- /dev/null +++ b/docs/src/content/docs/agent-skills/setup-tools.mdx @@ -0,0 +1,139 @@ +--- +title: AI Tooling Setup +sidebar: + order: 0 +description: Get started with Hyperstack by setting up an AI coding assistant that writes code for you. +--- + +import { Card, CardGrid } from "@astrojs/starlight/components"; +import CopyPrompt from "../../../components/CopyPrompt.astro"; + +You don't need to know how to code to build with Hyperstack. AI coding tools can write all the code for you — you just tell them what you want in plain English. + +Hyperstack works with any AI coding agent. This guide uses **Cursor** as the example, but the same steps apply to Claude Code, Windsurf, OpenCode, or any other agent you prefer. + +--- + +## What You'll Need + +- A computer (Mac, Windows, or Linux) +- An internet connection +- About 10 minutes + +That's it. No programming experience required. + +--- + +## Step 1: Install Cursor + +[Cursor](https://cursor.sh) is an AI-powered code editor — a good starting point if you don't already have a tool you prefer. + +1. Go to [cursor.sh](https://cursor.sh) and download the version for your OS +2. Open the downloaded file and follow the installation prompts +3. Launch Cursor and create a free account + +:::tip[Already have an AI coding tool?] +If you're already using Claude Code, Windsurf, OpenCode, or another agent, skip to [Step 2](#step-2-create-a-project-folder). Hyperstack works with all of them. +::: + +:::tip[Cursor is free to start] +Cursor offers a free tier with limited AI queries per month — plenty for getting started. +::: + +--- + +## Step 2: Create a Project Folder + +Create a folder for your project and open it in your AI tool. + +**On Mac:** Open Finder, navigate to Documents (or wherever you keep projects), right-click → **New Folder**, name it `my-hyperstack-app`, then open it in Cursor via **File → Open Folder**. + +**On Windows:** Open File Explorer, navigate to Documents, right-click → **New → Folder**, name it `my-hyperstack-app`, then open it in Cursor via **File → Open Folder**. + +**On Linux / terminal-based tools:** + +```bash +mkdir ~/my-hyperstack-app +cd ~/my-hyperstack-app +``` + +Then open the folder in your editor, or start your agent in that directory. + +--- + +## Step 3: Let Your AI Set Up Hyperstack + +Paste this prompt into your AI assistant's chat: + + +Read https://docs.usehyperstack.com/agent.md and follow the instructions to set up Hyperstack in this project + + +In Cursor, press `Cmd+L` (Mac) or `Ctrl+L` (Windows) to open the AI chat sidebar, paste the prompt, and press Enter. Approve any commands it asks to run. + +For terminal-based agents (Claude Code, OpenCode, etc.), just paste it directly and press Enter. + +### What happens next + +Your AI will: + +1. **Install the Hyperstack CLI** — the command-line tool for Hyperstack +2. **Install agent skills** — teaching itself how to use Hyperstack correctly +3. **Discover available data** — finding out what blockchain data you can access +4. **Be ready to build** — waiting for your next instruction + +This takes about 1–2 minutes. + +--- + +## Step 4: Scaffold the ORE Template + +Run this in your terminal to create a working ORE dashboard: + +```bash +npx hyperstack-cli create my-ore-app --template react-ore +cd my-ore-app +npm install +npm run dev +``` + +Open [localhost:5173](http://localhost:5173) and you'll see live ORE mining data streaming from Solana. + +--- + +## Step 5: Customise It With Your AI + +Now open the project in Cursor and try this prompt: + + +I have a Hyperstack ORE dashboard running using the react-ore template. Update the mining grid so each square is coloured as a heatmap based on the amount of SOL deployed to that square — more SOL should glow brighter. Keep the existing dark theme. + + +Your AI already knows how to use Hyperstack from Step 3 — it will find the right views and update the component for you. + +--- + +## Troubleshooting + +**"Command not found" errors** — You may need to install Node.js first. Download the LTS version from [nodejs.org](https://nodejs.org), install it, then restart your AI tool and try again. + +**The AI seems confused** — Make sure it completed Step 3. You can re-paste the setup prompt to re-run it. + +--- + +## Next Steps + + + + Follow our step-by-step tutorial to build a complete ORE mining dashboard. + + [Start tutorial →](/agent-skills/tutorial-ore-dashboard/) + + + + Browse our cookbook of ready-to-use prompts for common tasks. + + [View prompts →](/agent-skills/prompts/) + + + diff --git a/docs/src/content/docs/agent-skills/setup.mdx b/docs/src/content/docs/agent-skills/setup.mdx index 3a3274e..f41b0cc 100644 --- a/docs/src/content/docs/agent-skills/setup.mdx +++ b/docs/src/content/docs/agent-skills/setup.mdx @@ -1,34 +1,24 @@ --- -title: Editor Setup +title: Skills Reference sidebar: order: 2 -description: Manual setup for Hyperstack agent skills in Cursor, Claude Code, VS Code, Windsurf, and other AI coding tools. +description: Per-editor file locations, agent flags, verification, and updating for Hyperstack agent skills. --- import { Tabs, TabItem } from "@astrojs/starlight/components"; import CopyPrompt from "../../../components/CopyPrompt.astro"; -:::tip[Let your agent handle this] -The easiest setup is to paste this into your agent and let it do everything: +Reference for installing Hyperstack agent skills manually. For an overview of how skills, the CLI, and agent.md fit together, see [Agent Skills](/agent-skills/overview/). - -Read https://docs.usehyperstack.com/agent.md and follow the instructions to set up Hyperstack in this project - - -See [Build with AI](/agent-skills/overview/) for details. The instructions below are for manual setup. -::: - -If you prefer to install skills yourself, the universal command is: +The universal install command (auto-detects your editor): ```bash npx skills add usehyperstack/skills ``` -This auto-detects your editor and installs the skill files to the right location. For editor-specific details or manual placement, see below. - --- -## Supported Editors +## Per-Editor Installation @@ -37,7 +27,7 @@ This auto-detects your editor and installs the skill files to the right location npx skills add usehyperstack/skills --agent cursor ``` -Skill files are created in `.agents/skills/` in your project directory: +Files are created in `.agents/skills/`: ``` .agents/skills/ @@ -46,10 +36,8 @@ Skill files are created in `.agents/skills/` in your project directory: └── hyperstack-build/SKILL.md ``` -To install manually, download the SKILL.md files from the [skills repo](https://github.com/usehyperstack/skills) and place them in `.agents/skills/`. - :::tip[Allow CLI access] -When Cursor asks to run `hs explore`, approve it. The CLI commands are safe to run. +When Cursor asks to run `hs explore`, approve it. ::: @@ -59,7 +47,7 @@ When Cursor asks to run `hs explore`, approve it. The CLI commands are safe to r npx skills add usehyperstack/skills --agent claude-code ``` -Skills are installed in the `.claude/skills/` directory: +Files are created in `.claude/skills/`: ``` .claude/skills/ @@ -77,7 +65,7 @@ You can also set project-level context in `CLAUDE.md` at the project root. npx skills add usehyperstack/skills --agent windsurf ``` -Skills are installed in `.windsurf/skills/`: +Files are created in `.windsurf/skills/`: ``` .windsurf/skills/ @@ -87,38 +75,22 @@ Skills are installed in `.windsurf/skills/`: ``` - + ```bash -npx skills add usehyperstack/skills --agent github-copilot +npx skills add usehyperstack/skills --agent opencode ``` -Skills are installed in `.agents/skills/`: - -``` -.agents/skills/ -├── hyperstack/SKILL.md -├── hyperstack-consume/SKILL.md -└── hyperstack-build/SKILL.md -``` +Files are created in `.agents/skills/`. You can also load skills directly using the `/skill` command in OpenCode. - + ```bash -npx skills add usehyperstack/skills --agent opencode -``` - -Skills are installed in `.agents/skills/`: - -``` -.agents/skills/ -├── hyperstack/SKILL.md -├── hyperstack-consume/SKILL.md -└── hyperstack-build/SKILL.md +npx skills add usehyperstack/skills --agent github-copilot ``` -You can also load skills directly in OpenCode using the `/skill` command. +Files are created in `.agents/skills/`. @@ -127,19 +99,12 @@ You can also load skills directly in OpenCode using the `/skill` command. npx skills add usehyperstack/skills --agent cline ``` -Skills are installed in `.cline/skills/`: - -``` -.cline/skills/ -├── hyperstack/SKILL.md -├── hyperstack-consume/SKILL.md -└── hyperstack-build/SKILL.md -``` +Files are created in `.cline/skills/`. -The `npx skills` CLI supports 35+ agents. Common options: +`npx skills` supports 35+ agents: | Agent | Flag | | ---------- | -------------------- | @@ -149,70 +114,29 @@ The `npx skills` CLI supports 35+ agents. Common options: | Goose | `--agent goose` | | Continue | `--agent continue` | -Run without `--agent` to auto-detect your environment: - -```bash -npx skills add usehyperstack/skills -``` - -If your editor isn't supported, manually copy the SKILL.md files from the [skills repository](https://github.com/usehyperstack/skills) into whatever location your editor reads custom context from. +If your editor isn't listed, manually copy the SKILL.md files from the [skills repository](https://github.com/usehyperstack/skills) into whatever directory your editor reads custom context from. --- -## Prerequisites - -Agent skills reference the Hyperstack CLI for live schema discovery. Make sure the CLI is installed: - - - - -```bash -cargo install hyperstack-cli -``` - - - - -```bash -npm install -g hyperstack-cli -``` - - - - -The skills tell your agent to run `hs explore --json` to discover stacks and schemas. Without the CLI installed, the agent can still use the static SDK patterns from the skills, but won't be able to discover live schema information. - ---- - ## Verifying Installation -After installing, ask your agent a Hyperstack question. For example: +Ask your agent: What stacks are available on Hyperstack? Show me the entities and fields for the ore stack. -The agent should: - -1. Run `hs explore --json` to list available stacks -2. Run `hs explore ore --json` to get the ore stack schema -3. Present the entity names, field paths, and types - -If the agent doesn't recognize Hyperstack commands, check that the skill files are in the correct directory for your editor. +The agent should run `hs explore --json`, then `hs explore ore --json`, and present the entity names, field paths, and types. If it doesn't recognise Hyperstack commands, check that the skill files are in the correct directory for your editor. --- ## Updating Skills -Skills are version-independent. The static patterns (SDK syntax, DSL macros) change rarely, and the dynamic data (entity schemas, field types) comes from `hs explore` which always reflects your installed CLI version. - -To update skills to the latest version: - ```bash npx skills add usehyperstack/skills ``` -This overwrites the existing skill files with the latest versions. +This overwrites existing skill files with the latest versions. The static patterns (SDK syntax, DSL macros) change rarely — dynamic data (entity schemas, field types) always comes from `hs explore` at runtime, so it's always current regardless of skill version. diff --git a/docs/src/content/docs/agent-skills/tutorial-ore-dashboard.mdx b/docs/src/content/docs/agent-skills/tutorial-ore-dashboard.mdx index 50fa6ca..f176807 100644 --- a/docs/src/content/docs/agent-skills/tutorial-ore-dashboard.mdx +++ b/docs/src/content/docs/agent-skills/tutorial-ore-dashboard.mdx @@ -2,7 +2,6 @@ title: "Tutorial: ORE Dashboard" sidebar: order: 6 - badge: New description: Build a live ORE mining dashboard by prompting your AI agent step by step. --- @@ -10,6 +9,10 @@ import CopyPrompt from "../../../components/CopyPrompt.astro"; This tutorial shows you how to build a real-time ORE mining dashboard without writing any code. You will use your AI agent to discover the data, set up the project, and implement the UI. +:::tip[New to coding?] +If you haven't set up a coding tool yet, start with the [Setup Guide](/agent-skills/setup-tools/) first — it takes about 5 minutes. +::: + --- ## Prerequisites diff --git a/docs/src/content/docs/building-stacks/rust-dsl/macros.mdx b/docs/src/content/docs/building-stacks/rust-dsl/macros.mdx index a6795fc..bd82f6c 100644 --- a/docs/src/content/docs/building-stacks/rust-dsl/macros.mdx +++ b/docs/src/content/docs/building-stacks/rust-dsl/macros.mdx @@ -173,25 +173,45 @@ pub total_volume: u64, **Arguments:** Takes a single Rust expression. Can reference other fields in the entity. -### `TokenMetadata` (Resolver) +### `#[resolve]` -Add a field typed as `TokenMetadata` to automatically enrich your entity with off-chain token metadata. Hyperstack resolves this server-side from the entity's mint address — no configuration needed beyond adding the field. +Attaches a resolver to a field. Hyperstack fetches the external data server-side and delivers it as part of the entity — no extra API calls needed from the client. ```rust -#[entity] -pub struct Token { - #[map(pump_sdk::accounts::BondingCurve::__account_address, primary_key)] - pub mint: String, +#[resolve(address = "oreoU2P8bN6jkk3jbaiVxYnG1dCXcYxwhwyK9jSybcp")] +pub ore_metadata: Option, +``` - // Resolved automatically from the mint - pub token_metadata: Option, +**Arguments:** - // Use resolver computed methods in #[computed] expressions - #[computed(TokenMetadata::ui_amount(raw_balance, token_metadata.decimals))] - pub balance_ui: Option, -} +| Argument | Type | Required | Description | +| --------- | -------- | -------- | ----------------------------------------------------------------------------------- | +| `address` | `string` | Yes | The fixed address to resolve against. For `TokenMetadata` this is the mint address. | + +**Available resolvers:** + +| Resolver | Type field | What it fetches | +| --------------- | ----------------------- | ----------------------------------------------------------------- | +| `TokenMetadata` | `Option` | SPL token metadata (name, symbol, decimals, logo) via the DAS API | + +Once resolved, the data is available to other fields in the same entity. Use `#[computed]` to derive values from it, or reference the resolver fields directly in `#[map]` transforms: + +```rust +// Option A: use resolver decimals in a transform on #[map] +#[map(ore_sdk::accounts::Round::motherlode, strategy = LastWrite, + transform = ui_amount(ore_metadata.decimals))] +pub motherlode: Option, + +// Option B: use resolver computed methods in #[computed] +#[map(ore_sdk::accounts::Round::motherlode, strategy = LastWrite)] +pub motherlode_raw: Option, + +#[computed(state.motherlode_raw.and_then(|v| ore_metadata.ui_amount(v)))] +pub motherlode_ui: Option, ``` +Resolver data is cached server-side — metadata is fetched once per address and reused across all entities that reference it. + See [Resolvers](./resolvers) for the full reference on `TokenMetadata` fields and computed methods. ### `#[derive_from]` diff --git a/docs/src/content/docs/building-stacks/rust-dsl/overview.mdx b/docs/src/content/docs/building-stacks/rust-dsl/overview.mdx index 5bbbe5b..91d7fb5 100644 --- a/docs/src/content/docs/building-stacks/rust-dsl/overview.mdx +++ b/docs/src/content/docs/building-stacks/rust-dsl/overview.mdx @@ -42,6 +42,7 @@ pub mod my_stream { pub tvl: u64, // Enrich with off-chain token metadata (name, symbol, decimals, logo) + #[resolve(address = "So11111111111111111111111111111111111111112")] pub token_metadata: Option, } } @@ -70,16 +71,38 @@ Field paths use the `{name}_sdk::accounts::` and `{name}_sdk::instructions::` pr ### Field-Level -| Macro | Purpose | -| --------------------- | -------------------------------------------- | -| `#[map]` | Maps fields from Solana account state | -| `#[from_instruction]` | Extracts data from instruction arguments | -| `#[aggregate]` | Computes running values (Sum, Count, etc.) | -| `#[event]` | Captures instructions as structured events | -| `#[snapshot]` | Captures complete account state | -| `#[computed]` | Derives values from other entity fields | -| `#[derive_from]` | Populates from instruction metadata | -| `TokenMetadata` | Resolves off-chain token metadata for a mint | +| Macro | Purpose | +| --------------------- | ------------------------------------------- | +| `#[map]` | Maps fields from Solana account state | +| `#[from_instruction]` | Extracts data from instruction arguments | +| `#[aggregate]` | Computes running values (Sum, Count, etc.) | +| `#[event]` | Captures instructions as structured events | +| `#[snapshot]` | Captures complete account state | +| `#[computed]` | Derives values from other entity fields | +| `#[derive_from]` | Populates from instruction metadata | +| `#[resolve]` | Fetches off-chain data via a named resolver | + +### Resolvers + +Resolvers are types that fetch external data server-side and deliver it as part of your entity. You attach them to fields using `#[resolve]`. + +| Resolver | Purpose | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TokenMetadata` | Fetches SPL token metadata (name, symbol, decimals, logo) for a mint address via the DAS API. Also exposes `ui_amount` and `raw_amount` helper methods for use in `#[computed]` transforms. | + +For example, the ORE stack resolves token metadata for the ORE mint at a known address: + +```rust +#[resolve(address = "oreoU2P8bN6jkk3jbaiVxYnG1dCXcYxwhwyK9jSybcp")] +pub ore_metadata: Option, + +// The resolved decimals can then be used in transforms: +#[map(ore_sdk::accounts::Round::motherlode, strategy = LastWrite, + transform = ui_amount(ore_metadata.decimals))] +pub motherlode: Option, +``` + +See [Resolvers](./resolvers) for the full reference. ### Cross-Account Resolution diff --git a/docs/src/content/docs/building-stacks/rust-dsl/resolvers.mdx b/docs/src/content/docs/building-stacks/rust-dsl/resolvers.mdx index 478e7e5..7f79384 100644 --- a/docs/src/content/docs/building-stacks/rust-dsl/resolvers.mdx +++ b/docs/src/content/docs/building-stacks/rust-dsl/resolvers.mdx @@ -10,7 +10,7 @@ Resolvers enrich your entities with data that doesn't live on-chain. When you de ## Token Metadata -The built-in `TokenMetadata` resolver fetches SPL token metadata (name, symbol, decimals, logo) for any mint address. Hyperstack resolves this automatically when your entity includes a field typed as `TokenMetadata`: +The built-in `TokenMetadata` resolver enriches your entity with SPL token metadata (name, symbol, decimals, logo) for any mint address. Hyperstack resolves this automatically server-side when your entity includes a field typed as `TokenMetadata`: ```rust #[hyperstack(idl = "idl/ore.json")] @@ -26,7 +26,7 @@ pub mod ore_stream { } ``` -When a new `OreRound` entity is created, Hyperstack sees the `TokenMetadata` field, looks up the mint address via a Digital Asset Standard (DAS) API, and populates the metadata. By the time data reaches your TypeScript client, the field is already filled in: +When a new `OreRound` entity is created, Hyperstack sees the `TokenMetadata` field, resolves the metadata server-side, and delivers it as part of the entity. By the time data reaches your TypeScript client, the field is already filled in: ```typescript for await (const round of hs.views.OreRound.latest.use()) { @@ -112,7 +112,7 @@ for await (const round of hs.views.OreRound.latest.use()) { ## How It Works 1. **You define** a `TokenMetadata` field on your entity in Rust -2. **Hyperstack resolves** the metadata server-side using the DAS API when the entity is first created +2. **Hyperstack resolves** the metadata server-side when the entity is first created 3. **Computed fields** referencing the resolver are evaluated server-side on every update 4. **Your client receives** the fully enriched entity — metadata and computed values included diff --git a/docs/src/content/docs/building-stacks/stack-definitions.mdx b/docs/src/content/docs/building-stacks/stack-definitions.mdx index 7ffc77b..25f3603 100644 --- a/docs/src/content/docs/building-stacks/stack-definitions.mdx +++ b/docs/src/content/docs/building-stacks/stack-definitions.mdx @@ -24,61 +24,74 @@ Building data pipelines for Solana typically involves manual account parsing, co ## Anatomy of a Stack Definition -A Hyperstack definition is a Rust module annotated with `#[hyperstack]`. Inside this module, you define **Entities**—the structured data objects your application will consume. A single module can contain multiple `#[entity]` structs, all packaged into one stack. +A Hyperstack definition is a Rust module annotated with `#[hyperstack]`. Inside this module, you define **Entities** — the structured data objects your application will consume. A single module can contain multiple `#[entity]` structs, all packaged into one stack. + +The ORE stack is a real example. Here's a simplified version showing the core concepts with a single IDL: ```rust use hyperstack::prelude::*; -#[hyperstack(idl = "path/to/idl.json")] -pub mod my_stream { +#[hyperstack(idl = "idl/ore.json")] +pub mod ore_stream { use hyperstack::macros::Stream; use serde::{Deserialize, Serialize}; - #[entity(name = "Token")] - pub struct Token { - pub id: TokenId, - pub state: TokenState, - pub metrics: TokenMetrics, + // OreRound is the main entity -- one instance per mining round. + // The `latest` view sorts rounds descending by round_id. + #[entity(name = "OreRound")] + #[view(name = "latest", sort_by = "id.round_id", order = "desc")] + pub struct OreRound { + pub id: RoundId, + pub state: RoundState, + pub metrics: RoundMetrics, } #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenId { - /// The primary key (mint address) - #[map(pump_sdk::accounts::BondingCurve::mint, primary_key, strategy = SetOnce)] - pub mint: String, + pub struct RoundId { + // Primary key -- set once, never overwritten + #[map(ore_sdk::accounts::Round::id, primary_key, strategy = SetOnce)] + pub round_id: u64, + + #[map(ore_sdk::accounts::Round::__account_address, lookup_index, strategy = SetOnce)] + pub round_address: String, } #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenState { - /// Live reserves mapped from account state - #[map(pump_sdk::accounts::BondingCurve::reserves, strategy = LastWrite)] - pub reserves: Option, - - /// Computed field derived from existing fields - #[computed(state.reserves.map(|r| r * 100))] - pub tvl: Option, + pub struct RoundState { + // LastWrite: overwritten each time the account updates + #[map(ore_sdk::accounts::Round::motherlode, strategy = LastWrite)] + pub motherlode: Option, + + #[map(ore_sdk::accounts::Round::total_deployed, strategy = LastWrite)] + pub total_deployed: Option, + + // Computed field: derived from other fields in this entity + #[computed(state.total_deployed.map(|d| d / 1_000_000_000))] + pub total_deployed_sol: Option, } #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenMetrics { - /// Total volume aggregated from individual trade events - #[aggregate(from = pump_sdk::instructions::Trade, field = amount, strategy = Sum, lookup_by = accounts::mint)] - pub total_volume: Option, + pub struct RoundMetrics { + // Aggregate: counts Deploy instructions referencing this round + #[aggregate(from = ore_sdk::instructions::Deploy, strategy = Count, lookup_by = accounts::round)] + pub deploy_count: Option, } } ``` :::note[SDK Module Naming] -Hyperstack derives the program name from the IDL metadata and generates a typed SDK module named `{name}_sdk`. For example, an IDL for the "pump" program produces `pump_sdk::accounts::*` and `pump_sdk::instructions::*`. All `#[map]` and `#[aggregate]` paths use this prefix. +Hyperstack derives the program name from the IDL metadata and generates a typed SDK module named `{name}_sdk`. The ORE IDL produces `ore_sdk::accounts::*` and `ore_sdk::instructions::*`. The Entropy IDL produces `entropy_sdk::*`. All `#[map]` and `#[aggregate]` paths use these prefixes. ::: ### Key Components -1. **`#[hyperstack]` Module**: The container for your definition. It links to your data sources (IDL or Protobuf files). The `idl` argument also accepts an array for multi-program stacks: `idl = ["pump.json", "raydium.json"]`. -2. **`#[entity]` Struct**: Defines a projection of on-chain data. Each entity represents a collection of related data that will be streamed as a single unit. Entities compose nested structs—they do NOT use `#[derive(Stream)]`. -3. **`#[derive(Stream)]` Structs**: Nested structs that contain the actual field mappings. These derive `Stream` along with `Debug`, `Clone`, `Serialize`, and `Deserialize`. -4. **Primary Key**: Every entity must have a primary key (usually a `Pubkey` or `String`). This is how Hyperstack tracks individual instances of an entity. -5. **Field Mappings**: Attributes on struct fields that define where the data comes from and how it's processed. +1. **`#[hyperstack]` Module** — The container for your definition. The `idl` argument accepts a single path or an array for multi-program stacks. +2. **`#[entity]` Struct** — An entity is an individual definition of some part of your app's data. Each entity represents a distinct concept — a round, a miner, a treasury — and declares exactly which on-chain fields belong to it, across as many accounts or programs as needed. A stack can have many entities. +3. **`#[view]`** — A view is a projection over an entity's data. It defines what slice of the stream a client subscribes to. Every entity gets `state` (one item by key) and `list` (all items) by default. `#[view]` adds custom sorted or filtered projections on top — like `OreRound/latest` which streams rounds sorted by `round_id` descending. +4. **`#[derive(Stream)]` Structs** — Nested structs containing the actual field mappings. Must derive `Stream`, `Debug`, `Clone`, `Serialize`, and `Deserialize`. +5. **Primary Key** — Every entity needs one (annotated `primary_key`). This is how Hyperstack tracks individual entity instances. +6. **Field Mappings** — Attributes on struct fields defining where data comes from and how it's processed. +7. **Resolvers** — Fetch off-chain data (e.g. token metadata) and make it available to transforms. --- diff --git a/docs/src/content/docs/building-stacks/workflow.mdx b/docs/src/content/docs/building-stacks/workflow.mdx index 8bc6609..97de914 100644 --- a/docs/src/content/docs/building-stacks/workflow.mdx +++ b/docs/src/content/docs/building-stacks/workflow.mdx @@ -16,7 +16,7 @@ Building a stack follows a straightforward four-step workflow: define your data description: "Define entities using #[hyperstack] macro" }, { - title: "Build Stack", + title: "Build Stack", description: "Compile with cargo build" }, { diff --git a/docs/src/content/docs/getting-started/what-is-hyperstack.mdx b/docs/src/content/docs/getting-started/what-is-hyperstack.mdx new file mode 100644 index 0000000..14ec328 --- /dev/null +++ b/docs/src/content/docs/getting-started/what-is-hyperstack.mdx @@ -0,0 +1,137 @@ +--- +title: What is Hyperstack? +sidebar: + order: 0 +description: A plain-English introduction to Hyperstack and what you can build with it. +--- + +import { Card, CardGrid } from "@astrojs/starlight/components"; +import Workflow from "../../../components/Workflow.astro"; + +**Programmable data streams for Solana.** You declare what you want — which programs, which accounts, which fields — and Hyperstack delivers a typed, live stream straight to your app. No polling, no backend plumbing, no data wrangling. + +--- + +## The Simple Version + +Here's the flow: + + + +1. **Something happens on Solana** — a trade, a transfer, a vote, anything +2. **Hyperstack processes it** — turns raw blockchain data into clean, structured information +3. **Your app gets it instantly** — no delay, no polling, no manual refreshing + +--- + +## What Can You Build? + +Hyperstack is especially good for apps that need **live data**: + +- **Dashboards** — Show mining stats, token prices, or DeFi positions updating in real-time +- **Real-time UIs** — Build interfaces that react instantly to on-chain state changes without a single refresh +- **Trading tools** — Display live order flow, liquidity changes, or market metrics +- **Portfolio trackers** — Track wallet balances and activity as they happen +- **Analytics** — Aggregate on-chain events (totals, counts, trends) without building your own backend +- **Monitoring** — Watch specific programs or accounts for activity + +--- + +## How People Build With It + +Without Hyperstack, getting live on-chain data means writing polling loops, handling RPC rate limits, and parsing raw account bytes. It's a lot of plumbing before you write a single line of actual product. + +With Hyperstack, you declare the stream — Hyperstack handles the rest. The typed data flows to wherever you consume it: + +```tsx +// React UI — component re-renders live as chain state changes +const { data: round } = views.OreRound.latest.use(); +``` + +```ts +// TypeScript backend — process events as they arrive +const stream = await stack.views.OreRound.latest.subscribe(); +for await (const round of stream) { + await db.upsert(round); +} +``` + +```rust +// Rust service — zero-copy typed events at the edge +let mut stream = stack.views().ore_round().latest().subscribe().await?; +while let Some(round) = stream.next().await { + process(round?); +} +``` + +The data is fully typed regardless of how you consume it. It updates the moment the chain does. + +### Two ways to get there + +**AI-assisted** — Describe what you want in plain English. Your AI coding tool (Cursor, Claude Code, etc.) writes all the Hyperstack code for you. Most people have something running in under 30 minutes — no prior coding experience needed. + +**Direct SDK** — Use the React, TypeScript, or Rust SDKs yourself. Full type safety, React hooks, streaming iterators for backends, and native Rust for high-performance services. + +--- + +## Key Ideas + +Hyperstack is built around a simple contract: **you declare what you want, we deliver the stream.** + +**Stacks** are your declaration. A Stack is a named collection of semantically related data — the accounts, fields, and programs needed for a specific feature or app. That data might come from one program or many. When you connect to a Stack, you're saying _"give me everything I need for this."_ Existing stacks (like ORE) are ready to use. You can also build your own. + +**Entities** are the individual pieces of data a stack defines. Each entity represents a distinct concept in your app — a round, a miner, a treasury. You write them as Rust structs that declare exactly which on-chain fields you care about, across as many accounts and programs as needed. The ORE stack defines three: + +| Entity | What it represents | +| ------------- | ---------------------------------------------------------- | +| `OreRound` | A single mining round — state, results, grid data, entropy | +| `OreTreasury` | The protocol-wide treasury account | +| `OreMiner` | A miner's rewards, state, and automation config | + +**Views** are projections over an entity's data — they define what slice of the stream your app subscribes to. Every entity gets `list` (all items) and `state` (one item by key) by default. Custom views add sorted or filtered variants on top. The ORE stack exposes: + +| View | Entity | What it returns | +| ------------------- | ----------- | ------------------------------------ | +| `OreRound/state` | OreRound | A single round by key | +| `OreRound/list` | OreRound | All rounds | +| `OreRound/latest` | OreRound | Rounds sorted by round_id descending | +| `OreTreasury/state` | OreTreasury | The treasury account | +| `OreTreasury/list` | OreTreasury | All treasury records | +| `OreMiner/state` | OreMiner | A single miner by wallet address | +| `OreMiner/list` | OreMiner | All miners | + +Note that views maintain a rolling cache — they're optimised for live data, not full historical queries. Full historical access is on the roadmap. + +**SDKs** are the wire. React hooks, a TypeScript client, and a Rust client all connect to the same streams. Use whichever fits your stack — or mix them across services in the same project. + +--- + +## Next Steps + + + + Set up AI coding tools and build your first Hyperstack app with zero programming experience. + + [Set up your tools →](/agent-skills/setup-tools/) + + + + Jump straight to the SDK and start streaming live Solana data in minutes. + + [Quickstart →](/using-stacks/quickstart/) + + + diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index e066fcb..059a13c 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -1,26 +1,81 @@ --- title: Hyperstack -description: Programmable data feeds for Solana +description: Build Solana apps with live blockchain data --- import { Card, CardGrid, Tabs, TabItem } from "@astrojs/starlight/components"; +import CopyPrompt from "../../components/CopyPrompt.astro"; import Workflow from "../../components/Workflow.astro"; -**Hyperstack is a system for programmable data feeds on Solana.** +**Programmable data streams for Solana.** No indexers. No polling. No infrastructure to manage. -Stream any on-chain data to your app as it happens. No custom indexers. No RPC polling. No infrastructure to manage. +Hyperstack streams real-time blockchain data directly to your app. Define what data you need and Hyperstack transforms on-chain events into typed, live feeds — consumed via React hooks, TypeScript streams, or Rust clients. + +--- + +## Choose Your Path + + + + **Start here if you've never built an app.** We'll walk you through setting up AI tools that write code for you. + + No programming experience required. + + [Get started →](/agent-skills/setup-tools/) + + + + **Already have Cursor, Claude Code, or similar?** Paste one prompt and your AI handles the rest. + + Works with 30+ AI coding assistants. + + [Build with AI →](/agent-skills/overview/) + + + + **Know React, TypeScript, or Rust?** Jump straight to the SDK and start streaming data in minutes. + + Full API reference available. + + [Quickstart →](/using-stacks/quickstart/) + + + + +--- + +## What is Hyperstack? + +Hyperstack connects your app to live Solana blockchain data. Instead of polling RPCs or building custom indexers, you define what data you want and Hyperstack streams it to you as it happens on-chain. + + + +**Think of it like a live database query against the blockchain** — you subscribe once and get updates pushed to you automatically. --- ## See It In Action -Connect to the public ORE mining rounds stack — anyone can use it, no account required. +Connect to the public ORE mining stack — a live feed of blockchain mining activity. No account required. ```tsx import { HyperstackProvider, useHyperstack } from 'hyperstack-react'; -import { ORE_STREAM_STACK, type OreRound } from 'hyperstack-stacks/ore'; +import { ORE_STREAM_STACK } from 'hyperstack-stacks/ore'; function App() { return ( @@ -54,7 +109,7 @@ function LatestRounds() { ```typescript import { HyperStack } from 'hyperstack-typescript'; -import { ORE_STREAM_STACK, type OreRound } from 'hyperstack-stacks/ore'; +import { ORE_STREAM_STACK } from 'hyperstack-stacks/ore'; // Connect using the stack (URL is embedded in the stack definition) const hs = await HyperStack.connect(ORE_STREAM_STACK); @@ -89,12 +144,8 @@ async fn main() -> anyhow::Result<()> { -:::note[Stack SDKs] -The `hyperstack-stacks` package provides ready-to-use SDKs for popular Solana protocols. You can also [generate your own SDK](/building-stacks/workflow) from any stack you build. Install it alongside your SDK: -```bash -npm install hyperstack-stacks hyperstack-react -``` - +:::tip[Don't want to write code?] +Paste the prompt below into your AI coding assistant — it handles everything. ::: --- @@ -138,13 +189,13 @@ Hyperstack handles the full pipeline from chain to client: --- -## I Want to Read Data +## For Developers -Connect to existing stacks and stream live Solana data into your app. +Already comfortable with code? Here are the fastest paths: - **Create a new app** — The CLI scaffolds a complete working project in under 2 minutes. + **Scaffold a new app** — The CLI creates a complete working project in under 2 minutes. Choose React, TypeScript, or Rust templates. @@ -163,34 +214,36 @@ Connect to existing stacks and stream live Solana data into your app. --- -## I'm Using an AI Coding Agent +## Build with AI -Let your AI write the code. Agent skills teach Cursor, Claude Code, Windsurf, and other AI tools how to use Hyperstack. +Paste this into any AI coding assistant (Cursor, Claude Code, Windsurf, or any agent that can read URLs) and it will set up Hyperstack and build an ORE mining dashboard for you: - - - **One command setup** — Install skills and your agent knows all the SDK patterns and CLI commands. + +Read https://docs.usehyperstack.com/agent.md and follow the instructions to set up Hyperstack in this project. Then build a React dashboard that shows live ORE mining round data with Tailwind CSS dark theme. + - Works with Cursor, Claude Code, Windsurf, VS Code Copilot, and 30+ other agents. +Your AI will install the CLI, learn the SDK patterns, connect to live Solana data, and build the app — all from that one prompt. - [Install skills →](/agent-skills/overview/) + + + **Never used AI coding tools?** We'll walk you through installing Cursor or similar from scratch. - - - **Live type info** — Agents use `hs explore` to get exact entity names, field paths, and types from deployed stacks. + [Set up your tools →](/agent-skills/setup-tools/) - Always accurate, always up to date. + + + **Browse ready-made prompts** for dashboards, analytics, and custom data feeds. - [Learn more →](/agent-skills/explore/) + [View prompts →](/agent-skills/prompts/) --- -## I Want to Build Stacks +## Build Custom Streams -Create custom data pipelines that transform on-chain events into structured, streaming feeds. +Want to create your own data feeds? Build stacks that transform on-chain events into structured, streaming data. diff --git a/docs/src/content/docs/using-stacks/connect.mdx b/docs/src/content/docs/using-stacks/connect.mdx index c3cfa8f..acf86f0 100644 --- a/docs/src/content/docs/using-stacks/connect.mdx +++ b/docs/src/content/docs/using-stacks/connect.mdx @@ -2,25 +2,27 @@ title: Connect to a Stack sidebar: order: 2 -description: Add Hyperstack to your existing project and stream live Solana data. +description: Add Hyperstack to an existing project and stream live Solana data. --- import { Tabs, TabItem } from "@astrojs/starlight/components"; import Workflow from "../../../components/Workflow.astro"; -Add Hyperstack to an existing project and start streaming live Solana data in minutes. Connect to stacks you have deployed or to one of our managed feeds like Ore. The Ore feed is available with no account required — just install the SDK and connect to the public Ore stack. +This page shows how to add Hyperstack to an existing project and connect to a deployed stack. It uses the public **ORE mining stack** as the example — no account or API key required. -Deploying custom stacks is currently in closed beta. +:::note[Does a stack exist for your program?] +This guide is for connecting to a stack that's already deployed. If you want to stream data from your **own on-chain program**, you'll need to build a stack for it first — see [Build Your Own Stack](/building-stacks/workflow/). -:::tip[Starting fresh?] -If you're creating a new app, the [Quickstart](/using-stacks/quickstart) scaffolds everything automatically with `npx hyperstack-cli create`. +Deploying custom stacks is currently in closed beta. [Get in touch](https://usehyperstack.com) if you'd like early access. ::: ---- +:::tip[Starting from scratch?] +If you're creating a new project and just want to see Hyperstack working with the ORE demo, the [Quickstart](/using-stacks/quickstart/) scaffolds everything automatically. +::: -## Quick Start +--- -Install the SDK for your platform and connect to the public ORE mining rounds stack: +## Install & Connect @@ -73,8 +75,6 @@ export default function App() { npm run dev ``` -Watch as live ORE mining round data streams into your app. - @@ -92,20 +92,15 @@ import { HyperStack } from "hyperstack-typescript"; import { ORE_STREAM_STACK, type OreRound } from "hyperstack-stacks/ore"; async function main() { - console.log("Connecting to ORE stack...\n"); - const hs = await HyperStack.connect("wss://ore.stack.usehyperstack.com", { stack: ORE_STREAM_STACK, }); - console.log("Connected! Streaming live ORE rounds:\n"); - for await (const update of hs.views.OreRound.latest.watch()) { if (update.type === "upsert") { const round = update.data; console.log(`Round #${round.id?.round_id}`); console.log(` Motherlode: ${round.state?.motherlode}`); - console.log(""); } } } @@ -119,8 +114,6 @@ main().catch(console.error); npx tsx stream.ts ``` -You'll see live ORE mining round updates in your terminal as they happen on Solana. - @@ -132,7 +125,7 @@ hyperstack-sdk = "{{VERSION}}" hyperstack-stacks = "{{VERSION}}" ``` -### 2. Create a script +### 2. Write the code ```rust // src/main.rs @@ -141,12 +134,8 @@ use hyperstack_stacks::ore::{OreStack, OreRound}; #[tokio::main] async fn main() -> anyhow::Result<()> { - println!("Connecting to ORE stack...\n"); - let hs = HyperStack::::connect().await?; - println!("Connected! Streaming live ORE rounds:\n"); - let mut stream = hs.views.ore_round.latest().listen(); while let Some(round) = stream.next().await { @@ -164,65 +153,99 @@ async fn main() -> anyhow::Result<()> { cargo run ``` -The Rust client connects and streams ORE round updates via WebSocket. - -For testing without any SDK, open your browser console and paste: +For quick inspection without any SDK, open your browser console and paste: ```javascript const ws = new WebSocket("wss://ore.stack.usehyperstack.com"); ws.onopen = () => { - console.log("Connected to Hyperstack!"); - ws.send( - JSON.stringify({ - type: "subscribe", - view: "OreRound/latest", - }), - ); + ws.send(JSON.stringify({ type: "subscribe", view: "OreRound/latest" })); }; ws.onmessage = (event) => { const data = JSON.parse(event.data); - if (data.type === "upsert") { - console.log("Round update:", data.data); - } + if (data.type === "upsert") console.log("Round update:", data.data); }; ``` -Watch your console as real ORE mining data streams in. - --- -## What Just Happened? - -You just connected to a live Hyperstack stack. The ORE mining stack watches the Solana blockchain, extracts round data from on-chain transactions, and pushes updates to your app via WebSocket as they happen. +## How it Works -The stack is public — no API key or account needed. Point your SDK at the WebSocket URL and start receiving data immediately. +You connected to a deployed Hyperstack stack. The ORE stack watches the Solana blockchain, extracts round data from on-chain transactions, and pushes typed updates to your app via WebSocket as they happen — no polling, no RPC calls, no indexer to run. -### The Data You're Receiving +The stack is public — just point your SDK at the WebSocket URL. + +--- + +## About Stack SDKs + +A stack SDK tells the Hyperstack client what entities and views are available, and provides the types for each. There are two ways to get one: + +**Pre-built for publicly deployed stacks (like ORE)** — We publish ready-to-use SDKs for both TypeScript and Rust: + +```bash +# TypeScript / React +npm install hyperstack-stacks +``` + +```typescript +import { ORE_STREAM_STACK } from "hyperstack-stacks/ore"; +``` + +```toml +# Rust — add to Cargo.toml +[dependencies] +hyperstack-stacks = "{{VERSION}}" +``` + +```rust +use hyperstack_stacks::ore::{OreStack, OreRound}; +``` + +**Generated from your own stack** — When you build a custom stack, use the CLI to generate an SDK for any language: + +```bash +hs sdk create typescript my-stack +hs sdk create rust my-stack +``` + +Both approaches produce the same result: a typed SDK that works identically with the Hyperstack client. + +--- + +## Available Public Stacks + +| Stack | WebSocket URL | Data | +| --------------------- | ----------------------------------- | ----------------------------- | +| **ORE Mining Rounds** | `wss://ore.stack.usehyperstack.com` | Live ORE mining round updates | + +--- + +## ORE Data Shape -Each `OreRound` entity streamed to your app has this JSON structure: +Each `OreRound` update has this structure: ```json { @@ -240,9 +263,6 @@ Each `OreRound` entity streamed to your app has this JSON structure: "results": { "top_miner": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", "top_miner_reward": 2500000000, - "rent_payer": "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH", - "slot_hash": "2drjr5L1DnBfPYrMvGnvmMVz4Xp1ZcAs6ybqEqJakFji", - "rng": 8374652918374652918, "winning_square": 18, "did_hit_motherlode": false }, @@ -250,85 +270,27 @@ Each `OreRound` entity streamed to your app has this JSON structure: "deploy_count": 1847, "total_deployed_sol": 125000000000, "checkpoint_count": 423 - }, - "round_snapshot": { - "id": 142857, - "deployed": [5000000000, 5000000000, 5000000000, "..."], - "slot_hash": [42, 156, 78, "..."], - "count": [74, 82, 68, "..."], - "expires_at": 312645000, - "motherlode": 5000000000, - "rent_payer": "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH", - "top_miner": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", - "top_miner_reward": 2500000000, - "total_deployed": 125000000000, - "total_miners": 1847, - "total_vaulted": 12500000000, - "total_winnings": 98500000000 } } ``` -| Section | Description | -| ---------------- | --------------------------------------------------------------------------------------- | -| `id` | Primary key (`round_id`) and lookup index (`round_address`) | -| `state` | Current round state from on-chain account | -| `results` | Round outcome including computed fields (`rng`, `winning_square`, `did_hit_motherlode`) | -| `metrics` | Aggregated counts and sums from instructions | -| `round_snapshot` | Full on-chain account data with pubkeys as base58 strings | +| Section | Description | +| --------- | ----------------------------------------------------------- | +| `id` | Primary key (`round_id`) and lookup index (`round_address`) | +| `state` | Current round state from on-chain account | +| `results` | Round outcome including computed fields | +| `metrics` | Aggregated counts and sums from instructions | :::tip[View the source] -The full ORE stack definition is available on GitHub: [stacks/ore/src/stack.rs](https://github.com/HyperTekOrg/hyperstack/blob/main/stacks/ore/src/stack.rs) +The full ORE stack definition is on GitHub: [stacks/ore/src/stack.rs](https://github.com/HyperTekOrg/hyperstack/blob/main/stacks/ore/src/stack.rs) ::: --- -## Understanding the Code - -### Stack SDKs - -A **stack** is both a live data feed and a typed SDK. The SDK tells the core Hyperstack client how to interact with that specific feed — what entities exist, what views are available, and the TypeScript types for each. - -You can obtain a stack SDK in two ways: - -**Option 1: Pre-built from `hyperstack-stacks`** - -For popular Solana protocols, we publish ready-to-use SDKs: - -```bash -npm install hyperstack-stacks -``` - -```typescript -import { ORE_STREAM_STACK } from "hyperstack-stacks/ore"; -``` - -**Option 2: Generate from your own stack** - -When you build a custom stack, generate an SDK for any language: - -```bash -hs sdk create typescript ore -``` - -Both approaches produce the same result: a typed SDK that works identically with the Hyperstack client. Share the generated SDK with your team or publish it — anyone with the SDK can connect to your stack's feed (assuming they're authorized). - ---- - -## Available Public Stacks - -| Stack | WebSocket URL | Data | -| --------------------- | ----------------------------------- | ----------------------------- | -| **ORE Mining Rounds** | `wss://ore.stack.usehyperstack.com` | Live ORE mining round updates | - ---- - ## Next Steps -Now that you're streaming data: - -- [How It Works](/using-stacks/how-it-works/) — Understand Stacks, Views, and live data streaming -- [React SDK](/sdks/react/) — Deep dive into React hooks and patterns +- [How It Works](/using-stacks/how-it-works/) — Understand Stacks, Views, and how the stream model works +- [React SDK](/sdks/react/) — React hooks and patterns in depth - [TypeScript SDK](/sdks/typescript/) — Use with Node.js, Vue, Svelte, or vanilla JS - [Rust SDK](/sdks/rust/) — Native Rust client -- [Build Your Own Stack](/building-stacks/workflow) — Create custom data streams for any Solana program +- [Build Your Own Stack](/building-stacks/workflow/) — Stream data from your own on-chain program diff --git a/docs/src/content/docs/using-stacks/how-it-works.mdx b/docs/src/content/docs/using-stacks/how-it-works.mdx index b41e29c..0e1e98e 100644 --- a/docs/src/content/docs/using-stacks/how-it-works.mdx +++ b/docs/src/content/docs/using-stacks/how-it-works.mdx @@ -7,6 +7,10 @@ description: Architecture, core concepts, and data flow in Hyperstack. Hyperstack is a declarative data layer for Solana. You define the data shape you need, and Hyperstack handles all the infrastructure to stream it to your app. +:::tip[Prefer AI-assisted development?] +You don't need to understand all of this to build with Hyperstack. Check out the [Build with AI](/agent-skills/overview/) path to get started with prompts instead of code. +::: + --- ## The Problem @@ -90,12 +94,15 @@ Hyperstack then: A **Stack** is a deployed data pipeline that: -1. **Subscribes** to specific Solana program events -2. **Transforms** raw transaction data into structured entities -3. **Aggregates** values over time (sums, counts, etc.) -4. **Streams** updates to connected clients as they happen +1. **Declares** one or more Solana programs it cares about — each with its own IDL +2. **Subscribes** to on-chain events across all of those programs +3. **Transforms** raw transaction data into structured entities +4. **Aggregates** values over time (sums, counts, etc.) +5. **Streams** updates to connected clients as they happen + +A stack isn't limited to a single program. You can pull data from multiple programs into a single unified set of entities — as long as you provide an IDL for each. For example, a DeFi stack might combine instructions from a DEX program, a token program, and a rewards program into one coherent stream. -Think of it as a "live query" against Solana — you define what data you want, and Hyperstack keeps it updated. +Think of it as a "live query" across Solana — you declare the programs and data shape you need, and Hyperstack keeps it updated. ### Entities diff --git a/docs/src/content/docs/using-stacks/installation.mdx b/docs/src/content/docs/using-stacks/installation.mdx index 57c41d2..ec3aa64 100644 --- a/docs/src/content/docs/using-stacks/installation.mdx +++ b/docs/src/content/docs/using-stacks/installation.mdx @@ -74,16 +74,16 @@ hyperstack-sdk = "{{VERSION}}" The Hyperstack CLI (`hs`) handles project scaffolding, deployment, and SDK generation. -**Via npm (recommended):** +**Via npm (global):** ```bash -npm install -g hyperstack +npm install -g hyperstack-cli ``` Or use without installing: ```bash -npx hyperstack --help +npx hyperstack-cli --help ``` **Via Cargo:** diff --git a/docs/src/content/docs/using-stacks/quickstart.mdx b/docs/src/content/docs/using-stacks/quickstart.mdx index ea3f13a..de3aa6e 100644 --- a/docs/src/content/docs/using-stacks/quickstart.mdx +++ b/docs/src/content/docs/using-stacks/quickstart.mdx @@ -2,17 +2,20 @@ title: Quickstart sidebar: order: 1 - badge: Start Here -description: Scaffold a new Hyperstack app in under 2 minutes. +description: Run the ORE demo and see live Solana data streaming in minutes. --- import { Tabs, TabItem } from "@astrojs/starlight/components"; import Workflow from "../../../components/Workflow.astro"; -Create a new app that streams live Solana data in under 2 minutes. The CLI scaffolds everything you need — no configuration required. +This quickstart gets you streaming live Solana data in a few minutes using the ORE demo — a real, deployed Hyperstack stack for the ORE mining program. It's the fastest way to see Hyperstack in action. -:::tip[Adding to an existing project?] -If you already have a project and want to add Hyperstack, see [Connect to a Stack](/using-stacks/connect/) instead. +:::note[What this covers] +This guide walks through the ORE demo only. It's a good starting point to understand how Hyperstack feels, but it doesn't cover building your own stacks or integrating with your own on-chain programs. For those paths, see the [Next Steps](#next-steps) section below. +::: + +:::tip[Prefer AI-assisted development?] +If you're using Cursor, Claude Code, or another AI coding tool, check out [Build with AI](/agent-skills/overview/) — paste one prompt and your AI sets everything up. ::: --- @@ -22,6 +25,23 @@ If you already have a project and want to add Hyperstack, see [Connect to a Stac Choose how you want to run the CLI: + + +Install the native binary via Cargo: + +```bash +cargo install hyperstack-cli +``` + +Then use the `hs` command: + +```bash +hs create my-app +``` + +This is the same CLI — Cargo installs it as `hs` while npm uses `hyperstack-cli`. + + No installation needed — just run: @@ -48,33 +68,36 @@ hyperstack-cli create my-app ``` - + -Install the native binary via Cargo: +--- -```bash -cargo install hyperstack-cli -``` +## Create Your App -Then use the `hs` command: + + ```bash hs create my-app ``` -This is the same CLI — Cargo installs it as `hs` while npm uses `hyperstack-cli`. - - + ---- +```bash +npx hyperstack-cli create my-app +``` -## Create Your App + + ```bash -npx hyperstack-cli create my-app +hyperstack-cli create my-app ``` + + + You'll be prompted to select a template: | Template | Description | Run Command | @@ -84,26 +107,34 @@ You'll be prompted to select a template: | `rust-ore` | Rust + Tokio client | `cargo run` | :::note[About the ORE demo] -All CLI templates use the same underlying example: **ORE mining rounds**. This demonstrates Hyperstack with a real, live Solana program. The templates differ only in language/framework — React for a web dashboard, TypeScript for a CLI tool, or Rust for a native binary. Each connects to the same public ORE stack and streams identical data. +All templates use the same example: **ORE mining rounds** — a real, live Solana program. The templates differ only in language/framework. Each connects to the same public ORE stack and streams identical data. ::: -Or specify directly: +Or specify the template directly: + + + + +```bash +hs create my-app --template rust-ore # or react-ore, typescript-ore +``` + + + ```bash -npx hyperstack-cli create my-app --template react-ore # or typescript-ore, rust-ore +npx hyperstack-cli create my-app --template react-ore # or typescript-ore, rust-ore ``` -:::tip[Pure Rust workflow] -If you prefer to avoid Node.js entirely: + + ```bash -cargo install hyperstack-cli -hs create my-app --template rust-ore -cd my-app -cargo run +hyperstack-cli create my-app --template react-ore # or typescript-ore, rust-ore ``` -::: + + That's it. You're streaming live Solana data. @@ -267,11 +298,23 @@ See [Build with AI](/agent-skills/overview/) for the full guide and prompt cookb ## Next Steps -Now that you have a working app: +Now that you've seen Hyperstack in action, where you go next depends on what you're building: + +**Using an existing on-chain program that has a Hyperstack stack?** -- [Build with AI](/agent-skills/overview/) — Let your AI agent write Hyperstack code with agent skills -- [How It Works](/using-stacks/how-it-works/) — Understand Stacks, Views, and live data streaming -- [React SDK](/sdks/react/) — Build a complete React app with custom stack definitions -- [TypeScript SDK](/sdks/typescript/) — Use Hyperstack with Node.js, Vue, Svelte, or vanilla JS +- [Connect to a Stack](/using-stacks/connect/) — Add Hyperstack to an existing project +- [React SDK](/sdks/react/) — Build a full React app against a deployed stack +- [TypeScript SDK](/sdks/typescript/) — Use Hyperstack in Node.js, Vue, Svelte, or vanilla JS - [Rust SDK](/sdks/rust/) — Native Rust client -- [Build Your Own Stack](/building-stacks/workflow) — Create custom data streams for any Solana program + +**Have your own on-chain program and want to stream its data?** + +- [Build Your Own Stack](/building-stacks/workflow/) — Create a custom data stream for any Solana program + +**Want to understand what's happening under the hood?** + +- [How It Works](/using-stacks/how-it-works/) — Stacks, Views, and how live data flows + +**Using an AI coding tool?** + +- [Build with AI](/agent-skills/overview/) — Let your agent write Hyperstack code with the right context diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index c6602e9..de4b865 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -297,6 +297,11 @@ main h3 { margin-bottom: 0.5rem; } +/* Anchor link icon on headings - add spacing */ +main .sl-anchor-link { + margin-left: 0.35em; +} + /* Paragraphs */ main p { font-size: var(--sl-text-base); diff --git a/hyperstack-macros/src/ast/types.rs b/hyperstack-macros/src/ast/types.rs index 1ef3441..8fe03be 100644 --- a/hyperstack-macros/src/ast/types.rs +++ b/hyperstack-macros/src/ast/types.rs @@ -136,9 +136,16 @@ pub enum IdlTypeSnapshot { Array(IdlArrayTypeSnapshot), Option(IdlOptionTypeSnapshot), Vec(IdlVecTypeSnapshot), + HashMap(IdlHashMapTypeSnapshot), Defined(IdlDefinedTypeSnapshot), } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct IdlHashMapTypeSnapshot { + #[serde(rename = "hashMap")] + pub hash_map: (Box, Box), +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct IdlArrayTypeSnapshot { pub array: Vec, diff --git a/hyperstack-macros/src/ast/writer.rs b/hyperstack-macros/src/ast/writer.rs index ae9f8c4..e891638 100644 --- a/hyperstack-macros/src/ast/writer.rs +++ b/hyperstack-macros/src/ast/writer.rs @@ -227,7 +227,7 @@ pub fn convert_idl_to_snapshot(idl: &idl_parser::IdlSpec) -> IdlSnapshot { }); IdlAccountSnapshot { name: acc.name.clone(), - discriminator: acc.discriminator.clone(), + discriminator: acc.get_discriminator(), docs: acc.docs.clone(), serialization, } @@ -268,7 +268,7 @@ pub fn convert_idl_to_snapshot(idl: &idl_parser::IdlSpec) -> IdlSnapshot { .iter() .map(|event| IdlEventSnapshot { name: event.name.clone(), - discriminator: event.discriminator.clone(), + discriminator: event.get_discriminator(), docs: event.docs.clone(), }) .collect(), @@ -320,6 +320,12 @@ pub fn convert_idl_type(idl_type: &idl_parser::IdlType) -> IdlTypeSnapshot { } }, }), + idl_parser::IdlType::HashMap(hm) => IdlTypeSnapshot::HashMap(IdlHashMapTypeSnapshot { + hash_map: ( + Box::new(convert_idl_type(&hm.hash_map.0)), + Box::new(convert_idl_type(&hm.hash_map.1)), + ), + }), } } diff --git a/hyperstack-macros/src/idl_codegen.rs b/hyperstack-macros/src/idl_codegen.rs index 34ee980..0d5d297 100644 --- a/hyperstack-macros/src/idl_codegen.rs +++ b/hyperstack-macros/src/idl_codegen.rs @@ -1,6 +1,23 @@ use crate::parse::idl::*; use proc_macro2::TokenStream; use quote::{format_ident, quote}; +use std::collections::HashSet; + +fn collect_account_names(accounts: &[IdlAccount]) -> HashSet { + accounts.iter().map(|a| a.name.clone()).collect() +} + +fn qualify_defined_name( + name: &str, + account_names: &HashSet, + in_accounts_module: bool, +) -> String { + if account_names.contains(name) && !in_accounts_module { + format!("accounts::{}", name) + } else { + name.to_string() + } +} fn is_bytemuck_serialization(serialization: &Option) -> bool { matches!( @@ -9,6 +26,10 @@ fn is_bytemuck_serialization(serialization: &Option) -> bool { ) } +fn is_bytemuck_unsafe(serialization: &Option) -> bool { + matches!(serialization, Some(IdlSerialization::BytemuckUnsafe)) +} + fn lookup_account_serialization<'a>( account_name: &str, types: &'a [IdlTypeDef], @@ -20,40 +41,77 @@ fn lookup_account_serialization<'a>( .unwrap_or(&None) } +fn resolve_type_string( + idl_type: &IdlType, + bytemuck: bool, + account_names: &HashSet, + in_accounts_module: bool, +) -> String { + let base = if bytemuck { + idl_type.to_rust_type_string_bytemuck() + } else { + idl_type.to_rust_type_string() + }; + match idl_type { + IdlType::Defined(def) => { + let name = match &def.defined { + IdlTypeDefinedInner::Named { name } => name.as_str(), + IdlTypeDefinedInner::Simple(s) => s.as_str(), + }; + qualify_defined_name(name, account_names, in_accounts_module) + } + IdlType::Option(opt) => { + let inner = + resolve_type_string(&opt.option, bytemuck, account_names, in_accounts_module); + format!("Option<{}>", inner) + } + IdlType::Vec(vec) => { + let inner = resolve_type_string(&vec.vec, bytemuck, account_names, in_accounts_module); + format!("Vec<{}>", inner) + } + IdlType::HashMap(hm) => { + let key = + resolve_type_string(&hm.hash_map.0, bytemuck, account_names, in_accounts_module); + let val = + resolve_type_string(&hm.hash_map.1, bytemuck, account_names, in_accounts_module); + format!("std::collections::HashMap<{}, {}>", key, val) + } + _ => base, + } +} + fn type_to_token_stream_bytemuck(idl_type: &IdlType) -> TokenStream { - let type_str = idl_type.to_rust_type_string_bytemuck(); - let tokens: TokenStream = type_str.parse().unwrap_or_else(|_| { - quote! { serde_json::Value } - }); - tokens + type_to_token_stream_resolved(idl_type, true, &HashSet::new(), true) } -fn is_pubkey_type(idl_type: &IdlType) -> bool { - matches!(idl_type, IdlType::Simple(s) if s == "pubkey" || s == "publicKey") +fn type_to_token_stream_resolved( + idl_type: &IdlType, + bytemuck: bool, + account_names: &HashSet, + in_accounts_module: bool, +) -> TokenStream { + let type_str = resolve_type_string(idl_type, bytemuck, account_names, in_accounts_module); + type_str.parse().unwrap_or_else(|_| { + quote! { hyperstack::runtime::serde_json::Value } + }) } fn generate_bytemuck_field(field: &IdlField) -> TokenStream { let field_name = format_ident!("{}", to_snake_case(&field.name)); let field_type = type_to_token_stream_bytemuck(&field.type_); - if is_pubkey_type(&field.type_) { - quote! { - #[serde(with = "hyperstack::runtime::serde_helpers::pubkey_base58")] - pub #field_name: #field_type - } - } else { - quote! { pub #field_name: #field_type } - } + quote! { pub #field_name: #field_type } } pub fn generate_sdk_types(idl: &IdlSpec, module_name: &str) -> TokenStream { - let account_types = generate_account_types(&idl.accounts, &idl.types); - let instruction_types = generate_instruction_types(&idl.instructions, &idl.types); - let custom_types = generate_custom_types(&idl.types); + let account_names = collect_account_names(&idl.accounts); + let account_types = generate_account_types(&idl.accounts, &idl.types, &account_names); + let instruction_types = + generate_instruction_types(&idl.instructions, &idl.types, &account_names); + let custom_types = generate_custom_types(&idl.types, &account_names); let module_ident = format_ident!("{}", module_name); quote! { pub mod #module_ident { - use serde::{Deserialize, Serialize}; use borsh::{BorshDeserialize, BorshSerialize}; pub mod types { @@ -76,7 +134,12 @@ pub fn generate_sdk_types(idl: &IdlSpec, module_name: &str) -> TokenStream { } } -fn generate_struct_fields(fields: &[IdlField], use_bytemuck: bool) -> Vec { +fn generate_struct_fields( + fields: &[IdlField], + use_bytemuck: bool, + account_names: &HashSet, + in_accounts_module: bool, +) -> Vec { fields .iter() .map(|field| { @@ -84,54 +147,189 @@ fn generate_struct_fields(fields: &[IdlField], use_bytemuck: bool) -> Vec TokenStream { +fn array_inner_type(idl_type: &IdlTypeArray) -> Option { + if idl_type.array.len() != 2 { + return None; + } + + match &idl_type.array[0] { + IdlTypeArrayElement::Type(type_name) => Some(IdlType::Simple(type_name.clone())), + IdlTypeArrayElement::Nested(nested) => Some(nested.clone()), + IdlTypeArrayElement::Size(_) => None, + } +} + +fn generate_json_value_for_type( + idl_type: &IdlType, + value_expr: TokenStream, + use_bytemuck: bool, +) -> TokenStream { + match idl_type { + IdlType::Simple(type_name) => match type_name.as_str() { + "u128" | "i128" => { + quote! { hyperstack::runtime::serde_json::Value::String((#value_expr).to_string()) } + } + "pubkey" | "publicKey" => { + if use_bytemuck { + quote! { + hyperstack::runtime::serde_json::Value::String( + hyperstack::runtime::bs58::encode(#value_expr).into_string() + ) + } + } else { + quote! { hyperstack::runtime::serde_json::Value::String((#value_expr).to_string()) } + } + } + "u8" | "u16" | "u32" | "u64" | "i8" | "i16" | "i32" | "i64" | "f32" | "f64" + | "bool" | "string" | "bytes" => { + quote! { hyperstack::runtime::serde_json::json!(#value_expr) } + } + _ => quote! { (#value_expr).to_json_value() }, + }, + IdlType::Defined(_) => quote! { (#value_expr).to_json_value() }, + IdlType::Option(option_type) => { + let inner_value = + generate_json_value_for_type(&option_type.option, quote! { value }, use_bytemuck); + quote! { + match (#value_expr).as_ref() { + Some(value) => #inner_value, + None => hyperstack::runtime::serde_json::Value::Null, + } + } + } + IdlType::Vec(vec_type) => { + let inner_value = + generate_json_value_for_type(&vec_type.vec, quote! { item }, use_bytemuck); + quote! { + hyperstack::runtime::serde_json::Value::Array( + (#value_expr) + .iter() + .map(|item| #inner_value) + .collect::>() + ) + } + } + IdlType::Array(array_type) => { + if let Some(inner_type) = array_inner_type(array_type) { + let inner_value = + generate_json_value_for_type(&inner_type, quote! { item }, use_bytemuck); + quote! { + hyperstack::runtime::serde_json::Value::Array( + (#value_expr) + .iter() + .map(|item| #inner_value) + .collect::>() + ) + } + } else { + quote! { hyperstack::runtime::serde_json::json!(#value_expr) } + } + } + IdlType::HashMap(hm) => { + let val_value = + generate_json_value_for_type(&hm.hash_map.1, quote! { v }, use_bytemuck); + quote! { + hyperstack::runtime::serde_json::Value::Object( + (#value_expr) + .iter() + .map(|(k, v)| (k.to_string(), #val_value)) + .collect::>() + ) + } + } + } +} + +fn generate_struct_to_json_method(fields: &[IdlField], use_bytemuck: bool) -> TokenStream { + let field_inserts = fields.iter().map(|field| { + let field_ident = format_ident!("{}", to_snake_case(&field.name)); + let field_name = field_ident.to_string(); + let field_value = + generate_json_value_for_type(&field.type_, quote! { self.#field_ident }, use_bytemuck); + + quote! { + object.insert(#field_name.to_string(), #field_value); + } + }); + + quote! { + pub fn to_json_value(&self) -> hyperstack::runtime::serde_json::Value { + let mut object = hyperstack::runtime::serde_json::Map::new(); + #(#field_inserts)* + hyperstack::runtime::serde_json::Value::Object(object) + } + } +} + +fn generate_tuple_struct_to_json_method(fields: &[IdlType], use_bytemuck: bool) -> TokenStream { + let field_values = fields.iter().enumerate().map(|(index, field_type)| { + let field_access: TokenStream = format!("self.{}", index) + .parse() + .expect("tuple field access must be valid"); + generate_json_value_for_type(field_type, field_access, use_bytemuck) + }); + + quote! { + pub fn to_json_value(&self) -> hyperstack::runtime::serde_json::Value { + hyperstack::runtime::serde_json::Value::Array(vec![#(#field_values),*]) + } + } +} + +fn generate_account_types( + accounts: &[IdlAccount], + types: &[IdlTypeDef], + account_names: &HashSet, +) -> TokenStream { let account_structs = accounts .iter() - .map(|account| generate_account_type(account, types)); + .map(|account| generate_account_type(account, types, account_names)); quote! { #(#account_structs)* } } -fn generate_account_type(account: &IdlAccount, types: &[IdlTypeDef]) -> TokenStream { +fn generate_account_type( + account: &IdlAccount, + types: &[IdlTypeDef], + account_names: &HashSet, +) -> TokenStream { let name = format_ident!("{}", account.name); let serialization = lookup_account_serialization(&account.name, types); let use_bytemuck = is_bytemuck_serialization(serialization); + let use_unsafe = is_bytemuck_unsafe(serialization); - let fields = if let Some(type_def) = &account.type_def { + let idl_fields = if let Some(type_def) = &account.type_def { match type_def { - IdlTypeDefKind::Struct { fields, .. } => generate_struct_fields(fields, use_bytemuck), + IdlTypeDefKind::Struct { fields, .. } => fields.clone(), IdlTypeDefKind::TupleStruct { .. } | IdlTypeDefKind::Enum { .. } => vec![], } } else if let Some(type_def) = types.iter().find(|t| t.name == account.name) { match &type_def.type_def { - IdlTypeDefKind::Struct { fields, .. } => generate_struct_fields(fields, use_bytemuck), + IdlTypeDefKind::Struct { fields, .. } => fields.clone(), IdlTypeDefKind::TupleStruct { .. } | IdlTypeDefKind::Enum { .. } => vec![], } } else { vec![] }; - let discriminator = &account.discriminator; + let fields = generate_struct_fields(&idl_fields, use_bytemuck, account_names, true); + let to_json_method = generate_struct_to_json_method(&idl_fields, use_bytemuck); + + let discriminator = account.get_discriminator(); let disc_array = quote! { [#(#discriminator),*] }; if use_bytemuck { - quote! { - #[derive(Debug, Copy, Clone, Serialize, Deserialize, hyperstack::runtime::bytemuck::Pod, hyperstack::runtime::bytemuck::Zeroable)] - #[bytemuck(crate = "hyperstack::runtime::bytemuck")] - #[repr(C)] - pub struct #name { - #(#fields),* - } - + let bytemuck_try_from = quote! { impl #name { pub const DISCRIMINATOR: [u8; 8] = #disc_array; @@ -149,11 +347,43 @@ fn generate_account_type(account: &IdlAccount, types: &[IdlTypeDef]) -> TokenStr } Ok(hyperstack::runtime::bytemuck::pod_read_unaligned::(&body[..struct_size])) } + + #to_json_method + } + }; + + if use_unsafe { + // BytemuckUnsafe: use unsafe impl to bypass padding checks, + // matching how the on-chain program was compiled. + quote! { + #[derive(Debug, Copy, Clone)] + #[repr(C)] + pub struct #name { + #(#fields),* + } + + unsafe impl hyperstack::runtime::bytemuck::Zeroable for #name {} + unsafe impl hyperstack::runtime::bytemuck::Pod for #name {} + + #bytemuck_try_from + } + } else { + // Bytemuck (safe): use derive macros which validate no padding at compile time. + quote! { + #[derive(Debug, Copy, Clone, hyperstack::runtime::bytemuck::Pod, hyperstack::runtime::bytemuck::Zeroable)] + #[bytemuck(crate = "hyperstack::runtime::bytemuck")] + #[repr(C)] + pub struct #name { + #(#fields),* + } + + #bytemuck_try_from } } } else { quote! { - #[derive(Debug, Clone, Serialize, Deserialize, BorshSerialize, BorshDeserialize)] + #[derive(Debug, Clone, BorshSerialize, BorshDeserialize, hyperstack::runtime::serde::Serialize, hyperstack::runtime::serde::Deserialize)] + #[serde(crate = "hyperstack::runtime::serde")] pub struct #name { #(#fields),* } @@ -169,6 +399,8 @@ fn generate_account_type(account: &IdlAccount, types: &[IdlTypeDef]) -> TokenStr borsh::BorshDeserialize::deserialize_reader(&mut reader) .map_err(|e| e.into()) } + + #to_json_method } } } @@ -177,28 +409,34 @@ fn generate_account_type(account: &IdlAccount, types: &[IdlTypeDef]) -> TokenStr fn generate_instruction_types( instructions: &[IdlInstruction], _types: &[IdlTypeDef], + account_names: &HashSet, ) -> TokenStream { - let instruction_structs = instructions.iter().map(generate_instruction_type); + let instruction_structs = instructions + .iter() + .map(|ix| generate_instruction_type(ix, account_names)); quote! { #(#instruction_structs)* } } -fn generate_instruction_type(instruction: &IdlInstruction) -> TokenStream { +fn generate_instruction_type( + instruction: &IdlInstruction, + account_names: &HashSet, +) -> TokenStream { let name = format_ident!("{}", to_pascal_case(&instruction.name)); - // Use get_discriminator() to handle both Anchor and Steel formats let discriminator = instruction.get_discriminator(); let disc_array = quote! { [#(#discriminator),*] }; let args_fields = instruction.args.iter().map(|arg| { let arg_name = format_ident!("{}", to_snake_case(&arg.name)); - let arg_type = type_to_token_stream(&arg.type_); + let arg_type = type_to_token_stream_in_module(&arg.type_, account_names, false); quote! { pub #arg_name: #arg_type } }); - let derives = quote! { #[derive(Debug, Clone, Default, Serialize, Deserialize, BorshSerialize, BorshDeserialize)] }; + let to_json_method = generate_struct_to_json_method(&instruction.args, false); + let derives = quote! { #[derive(Debug, Clone, BorshSerialize, BorshDeserialize)] }; quote! { #derives @@ -223,50 +461,88 @@ fn generate_instruction_type(instruction: &IdlInstruction) -> TokenStream { Err(e) => Err(e.into()), } } + + #to_json_method } } } -fn generate_custom_types(types: &[IdlTypeDef]) -> TokenStream { - let type_defs = types.iter().map(generate_custom_type); +fn generate_custom_types(types: &[IdlTypeDef], account_names: &HashSet) -> TokenStream { + let type_defs = types.iter().map(|t| generate_custom_type(t, account_names)); quote! { #(#type_defs)* } } -fn generate_custom_type(type_def: &IdlTypeDef) -> TokenStream { +fn generate_custom_type(type_def: &IdlTypeDef, account_names: &HashSet) -> TokenStream { let name = format_ident!("{}", type_def.name); let use_bytemuck = is_bytemuck_serialization(&type_def.serialization); + let use_unsafe = is_bytemuck_unsafe(&type_def.serialization); match &type_def.type_def { IdlTypeDefKind::Struct { kind: _, fields } => { - let struct_fields = generate_struct_fields(fields, use_bytemuck); + let struct_fields = generate_struct_fields(fields, use_bytemuck, account_names, false); + let to_json_method = generate_struct_to_json_method(fields, use_bytemuck); if use_bytemuck { - quote! { - #[derive(Debug, Copy, Clone, Serialize, Deserialize, hyperstack::runtime::bytemuck::Pod, hyperstack::runtime::bytemuck::Zeroable)] - #[bytemuck(crate = "hyperstack::runtime::bytemuck")] - #[repr(C)] - pub struct #name { - #(#struct_fields),* + if use_unsafe { + quote! { + #[derive(Debug, Copy, Clone)] + #[repr(C)] + pub struct #name { + #(#struct_fields),* + } + + unsafe impl hyperstack::runtime::bytemuck::Zeroable for #name {} + unsafe impl hyperstack::runtime::bytemuck::Pod for #name {} + + impl #name { + #to_json_method + } + } + } else { + quote! { + #[derive(Debug, Copy, Clone, hyperstack::runtime::bytemuck::Pod, hyperstack::runtime::bytemuck::Zeroable)] + #[bytemuck(crate = "hyperstack::runtime::bytemuck")] + #[repr(C)] + pub struct #name { + #(#struct_fields),* + } + + impl #name { + #to_json_method + } } } } else { quote! { - #[derive(Debug, Clone, Default, Serialize, Deserialize, BorshSerialize, BorshDeserialize)] + #[derive(Debug, Clone, BorshSerialize, BorshDeserialize, hyperstack::runtime::serde::Serialize, hyperstack::runtime::serde::Deserialize)] + #[serde(crate = "hyperstack::runtime::serde")] pub struct #name { #(#struct_fields),* } + + impl #name { + #to_json_method + } } } } IdlTypeDefKind::TupleStruct { kind: _, fields } => { - let tuple_fields = fields.iter().map(type_to_token_stream); + let tuple_fields = fields + .iter() + .map(|f| type_to_token_stream_in_module(f, account_names, false)); + let to_json_method = generate_tuple_struct_to_json_method(fields, use_bytemuck); quote! { - #[derive(Debug, Clone, Default, Serialize, Deserialize, BorshSerialize, BorshDeserialize)] + #[derive(Debug, Clone, BorshSerialize, BorshDeserialize, hyperstack::runtime::serde::Serialize, hyperstack::runtime::serde::Deserialize)] + #[serde(crate = "hyperstack::runtime::serde")] pub struct #name(#(pub #tuple_fields),*); + + impl #name { + #to_json_method + } } } IdlTypeDefKind::Enum { kind: _, variants } => { @@ -279,23 +555,45 @@ fn generate_custom_type(type_def: &IdlTypeDef) -> TokenStream { } }); + let enum_to_json_arms = variants.iter().map(|variant| { + let variant_name = format_ident!("{}", variant.name); + let variant_value = variant.name.clone(); + + quote! { + Self::#variant_name => hyperstack::runtime::serde_json::Value::String(#variant_value.to_string()) + } + }); + quote! { - #[derive(Debug, Clone, Default, Serialize, Deserialize, BorshSerialize, BorshDeserialize)] + #[derive(Debug, Clone, Default, BorshSerialize, BorshDeserialize, hyperstack::runtime::serde::Serialize, hyperstack::runtime::serde::Deserialize)] + #[serde(crate = "hyperstack::runtime::serde")] pub enum #name { #(#enum_variants),* } + + impl #name { + pub fn to_json_value(&self) -> hyperstack::runtime::serde_json::Value { + match self { + #(#enum_to_json_arms),* + } + } + } } } } } +#[allow(dead_code)] fn type_to_token_stream(idl_type: &IdlType) -> TokenStream { - let type_str = idl_type.to_rust_type_string(); - let tokens: TokenStream = type_str.parse().unwrap_or_else(|_| { - // Fallback for complex types - quote! { serde_json::Value } - }); - tokens + type_to_token_stream_resolved(idl_type, false, &HashSet::new(), true) +} + +fn type_to_token_stream_in_module( + idl_type: &IdlType, + account_names: &HashSet, + in_accounts_module: bool, +) -> TokenStream { + type_to_token_stream_resolved(idl_type, false, account_names, in_accounts_module) } #[cfg(test)] @@ -419,14 +717,14 @@ mod tests { } #[test] - fn test_bytemuck_pubkey_gets_serde_base58() { + fn test_bytemuck_pubkey_to_json_uses_bs58() { let idl = minimal_bytemuck_idl(); let output = generate_sdk_types(&idl, "generated_sdk"); let code = output.to_string(); assert!( - code.contains("pubkey_base58"), - "bytemuck pubkey fields should have serde(with = pubkey_base58) attribute, got: {}", + code.contains("bs58 :: encode"), + "bytemuck pubkey to_json_value should encode with bs58, got: {}", code ); } @@ -506,4 +804,121 @@ mod tests { let t = &idl.types[0]; assert_eq!(t.serialization, Some(IdlSerialization::BytemuckUnsafe)); } + + fn bytemuck_unsafe_idl() -> IdlSpec { + let json = r#"{ + "address": "TestUnsafeProgram111111111111111111111111", + "metadata": { + "name": "test_unsafe", + "version": "0.1.0", + "spec": "0.1.0" + }, + "instructions": [], + "accounts": [ + { + "name": "PaddedAccount", + "discriminator": [1, 2, 3, 4, 5, 6, 7, 8] + } + ], + "types": [ + { + "name": "PaddedAccount", + "serialization": "bytemuckunsafe", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "authority", "type": "pubkey" }, + { "name": "value", "type": "u64" }, + { "name": "flag", "type": "u8" } + ] + } + }, + { + "name": "SafeType", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "data", "type": "u64" }, + { "name": "padding", "type": { "array": ["u8", 8] } } + ] + } + } + ], + "events": [], + "errors": [] + }"#; + parse_idl_content(json).expect("test IDL should parse") + } + + #[test] + fn test_bytemuck_unsafe_uses_unsafe_impl_not_derive() { + let idl = bytemuck_unsafe_idl(); + let output = generate_sdk_types(&idl, "generated_sdk"); + let code = output.to_string(); + + assert!( + code.contains("unsafe impl hyperstack :: runtime :: bytemuck :: Pod for PaddedAccount"), + "bytemuckunsafe should emit unsafe impl Pod, got: {}", + code + ); + assert!( + code.contains( + "unsafe impl hyperstack :: runtime :: bytemuck :: Zeroable for PaddedAccount" + ), + "bytemuckunsafe should emit unsafe impl Zeroable, got: {}", + code + ); + } + + #[test] + fn test_bytemuck_unsafe_does_not_derive_pod() { + let idl = bytemuck_unsafe_idl(); + let output = generate_sdk_types(&idl, "generated_sdk"); + let code = output.to_string(); + + let parts: Vec<&str> = code.split("pub struct PaddedAccount").collect(); + assert!(parts.len() > 1, "PaddedAccount should exist in output"); + let before = parts[0]; + if let Some(pos) = before.rfind("derive") { + let end = (pos + 200).min(before.len()); + let derive_block = &before[pos..end]; + assert!( + !derive_block.contains("Pod"), + "bytemuckunsafe should NOT derive Pod on the struct, got: {}", + derive_block + ); + } + } + + #[test] + fn test_bytemuck_safe_still_uses_derive() { + let idl = bytemuck_unsafe_idl(); + let output = generate_sdk_types(&idl, "generated_sdk"); + let code = output.to_string(); + + let safe_section = code.split("pub struct SafeType").collect::>(); + assert!(safe_section.len() > 1, "SafeType should exist in output"); + let before_safe = safe_section[0]; + let last_chunk = &before_safe[before_safe.len().saturating_sub(300)..]; + assert!( + last_chunk.contains("Pod"), + "bytemuck (safe) should still derive Pod, got: {}", + last_chunk + ); + } + + #[test] + fn test_bytemuck_unsafe_still_has_try_from_bytes() { + let idl = bytemuck_unsafe_idl(); + let output = generate_sdk_types(&idl, "generated_sdk"); + let code = output.to_string(); + + assert!( + code.contains("pod_read_unaligned"), + "bytemuckunsafe should still use pod_read_unaligned for deserialization" + ); + } } diff --git a/hyperstack-macros/src/idl_parser_gen.rs b/hyperstack-macros/src/idl_parser_gen.rs index 79e39a5..ed8c407 100644 --- a/hyperstack-macros/src/idl_parser_gen.rs +++ b/hyperstack-macros/src/idl_parser_gen.rs @@ -24,7 +24,6 @@ pub fn generate_named_parsers( quote! { pub mod #parser_module_ident { use super::#sdk_module_ident::*; - use hyperstack::runtime::serde::{Deserialize, Serialize}; #account_parser #instruction_parser @@ -43,7 +42,6 @@ fn generate_account_parser(idl: &IdlSpec, program_id: &str) -> TokenStream { let unpack_arms = idl.accounts.iter().map(|acc| { let variant_name = format_ident!("{}", acc.name); - let _discriminator = &acc.discriminator; quote! { d if d == accounts::#variant_name::DISCRIMINATOR => { @@ -62,7 +60,7 @@ fn generate_account_parser(idl: &IdlSpec, program_id: &str) -> TokenStream { #state_enum_name::#variant_name(data) => { hyperstack::runtime::serde_json::json!({ "type": #type_name, - "data": hyperstack::runtime::serde_json::to_value(data).unwrap_or_default() + "data": data.to_json_value() }) } } @@ -82,7 +80,7 @@ fn generate_account_parser(idl: &IdlSpec, program_id: &str) -> TokenStream { quote! { #state_enum_name::#variant_name(data) => { - hyperstack::runtime::serde_json::to_value(data).unwrap_or_default() + data.to_json_value() } } }); @@ -223,7 +221,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream } else { quote! { [#discriminant_value, ..] => { - Ok(#ix_enum_name::#variant_name(instructions::#variant_name::default())) + Ok(#ix_enum_name::#variant_name(instructions::#variant_name {})) } } } @@ -248,7 +246,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream } else { quote! { [#d0, #d1, #d2, #d3, #d4, #d5, #d6, #d7, ..] => { - Ok(#ix_enum_name::#variant_name(instructions::#variant_name::default())) + Ok(#ix_enum_name::#variant_name(instructions::#variant_name {})) } } } @@ -263,7 +261,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream #ix_enum_name::#variant_name(data) => { hyperstack::runtime::serde_json::json!({ "type": #type_name, - "data": hyperstack::runtime::serde_json::to_value(data).unwrap_or_default() + "data": data.to_json_value() }) } } @@ -284,7 +282,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream quote! { #ix_enum_name::#variant_name(data) => { hyperstack::runtime::serde_json::json!({ - "data": hyperstack::runtime::serde_json::to_value(data).unwrap_or_default() + "data": data.to_json_value() }) } } @@ -299,7 +297,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream quote! { #ix_enum_name::#variant_name(data) => { let mut value = hyperstack::runtime::serde_json::json!({ - "data": hyperstack::runtime::serde_json::to_value(data).unwrap_or_default() + "data": data.to_json_value() }); if let Some(obj) = value.as_object_mut() { @@ -393,7 +391,7 @@ fn generate_instruction_parser(idl: &IdlSpec, _program_id: &str) -> TokenStream fn prefilter(&self) -> hyperstack::runtime::yellowstone_vixen_core::Prefilter { hyperstack::runtime::yellowstone_vixen_core::Prefilter::builder() - .transaction_accounts([program_id()]) + .transaction_accounts_include([program_id()]) .build() .unwrap() } diff --git a/hyperstack-macros/src/parse/idl.rs b/hyperstack-macros/src/parse/idl.rs index 14b41ed..7e1e160 100644 --- a/hyperstack-macros/src/parse/idl.rs +++ b/hyperstack-macros/src/parse/idl.rs @@ -5,9 +5,15 @@ #![allow(dead_code)] use serde::{Deserialize, Serialize}; +use sha2::{Digest, Sha256}; use std::fs; use std::path::Path; +fn anchor_discriminator(preimage: &str) -> Vec { + let hash = Sha256::digest(preimage.as_bytes()); + hash[..8].to_vec() +} + #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlSpec { #[serde(default)] @@ -67,21 +73,19 @@ pub struct IdlInstruction { } impl IdlInstruction { - /// Get the discriminator bytes, converting from Steel format if needed. - /// Steel uses a single u8 value, which we expand to [value, 0, 0, 0, 0, 0, 0, 0] pub fn get_discriminator(&self) -> Vec { if !self.discriminator.is_empty() { return self.discriminator.clone(); } - // Convert Steel discriminant to 8-byte discriminator if let Some(disc) = &self.discriminant { let value = disc.value as u8; return vec![value, 0, 0, 0, 0, 0, 0, 0]; } - // Default empty - Vec::new() + // Legacy IDLs omit discriminators — derive from Anchor convention: + // sha256("global:")[0..8] + anchor_discriminator(&format!("global:{}", self.name)) } } @@ -145,6 +149,7 @@ pub struct IdlAccountArg { #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlAccount { pub name: String, + #[serde(default)] pub discriminator: Vec, #[serde(default)] pub docs: Vec, @@ -153,6 +158,18 @@ pub struct IdlAccount { pub type_def: Option, } +impl IdlAccount { + pub fn get_discriminator(&self) -> Vec { + if !self.discriminator.is_empty() { + return self.discriminator.clone(); + } + + // Legacy IDLs omit discriminators — derive from Anchor convention: + // sha256("account:")[0..8] + anchor_discriminator(&format!("account:{}", self.name)) + } +} + #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlTypeDefStruct { pub kind: String, @@ -173,6 +190,7 @@ pub enum IdlType { Array(IdlTypeArray), Option(IdlTypeOption), Vec(IdlTypeVec), + HashMap(IdlTypeHashMap), Defined(IdlTypeDefined), } @@ -186,6 +204,13 @@ pub struct IdlTypeVec { pub vec: Box, } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct IdlTypeHashMap { + #[serde(alias = "bTreeMap")] + #[serde(rename = "hashMap")] + pub hash_map: (Box, Box), +} + #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlTypeArray { pub array: Vec, @@ -268,11 +293,21 @@ pub struct IdlEnumVariant { #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlEvent { pub name: String, + #[serde(default)] pub discriminator: Vec, #[serde(default)] pub docs: Vec, } +impl IdlEvent { + pub fn get_discriminator(&self) -> Vec { + if !self.discriminator.is_empty() { + return self.discriminator.clone(); + } + anchor_discriminator(&format!("event:{}", self.name)) + } +} + #[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdlError { pub code: u32, @@ -314,12 +349,16 @@ impl IdlSpec { instruction_name: &str, field_name: &str, ) -> Option<&'static str> { - // Normalize instruction name to snake_case for comparison - // IDL uses snake_case (e.g., "create_v2") but code uses PascalCase (e.g., "CreateV2") + // Normalize instruction name for comparison. + // IDL may use camelCase (e.g., "swapBaseIn") or snake_case (e.g., "create_v2") + // while code uses PascalCase (e.g., "SwapBaseIn", "CreateV2"). + // Try both case-insensitive match and snake_case conversion. let normalized_name = to_snake_case(instruction_name); for instruction in &self.instructions { - if instruction.name == normalized_name { + if instruction.name == normalized_name + || instruction.name.eq_ignore_ascii_case(instruction_name) + { // Check if it's an account for account in &instruction.accounts { if account.name == field_name { @@ -387,6 +426,11 @@ impl IdlType { let inner_type = vec.vec.to_rust_type_string(); format!("Vec<{}>", inner_type) } + IdlType::HashMap(hm) => { + let key_type = hm.hash_map.0.to_rust_type_string(); + let val_type = hm.hash_map.1.to_rust_type_string(); + format!("std::collections::HashMap<{}, {}>", key_type, val_type) + } } } @@ -421,6 +465,11 @@ impl IdlType { let inner_type = vec.vec.to_rust_type_string_bytemuck(); format!("Vec<{}>", inner_type) } + IdlType::HashMap(hm) => { + let key_type = hm.hash_map.0.to_rust_type_string_bytemuck(); + let val_type = hm.hash_map.1.to_rust_type_string_bytemuck(); + format!("std::collections::HashMap<{}, {}>", key_type, val_type) + } } } } @@ -495,3 +544,221 @@ pub fn to_pascal_case(s: &str) -> String { }) .collect() } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_anchor_discriminator_known_values() { + let disc = anchor_discriminator("global:initialize"); + assert_eq!(disc.len(), 8); + assert_eq!(disc, &Sha256::digest(b"global:initialize")[..8]); + } + + #[test] + fn test_anchor_account_discriminator() { + let disc = anchor_discriminator("account:LendingMarket"); + assert_eq!(disc.len(), 8); + assert_eq!(disc, &Sha256::digest(b"account:LendingMarket")[..8]); + } + + #[test] + fn test_legacy_idl_parses_without_discriminator() { + let json = r#"{ + "address": "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", + "version": "0.3.0", + "name": "raydium_amm", + "instructions": [ + { + "name": "initialize", + "accounts": [ + { "name": "tokenProgram", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "nonce", "type": "u8" } + ] + } + ], + "accounts": [ + { + "name": "TargetOrders", + "type": { + "kind": "struct", + "fields": [ + { "name": "owner", "type": { "array": ["u64", 4] } } + ] + } + } + ], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).expect("legacy IDL should parse"); + + assert_eq!(idl.instructions.len(), 1); + assert_eq!(idl.accounts.len(), 1); + assert!(idl.accounts[0].discriminator.is_empty()); + assert!(idl.instructions[0].discriminator.is_empty()); + assert!(idl.instructions[0].discriminant.is_none()); + } + + #[test] + fn test_legacy_instruction_computes_discriminator() { + let json = r#"{ + "name": "raydium_amm", + "instructions": [ + { + "name": "initialize", + "accounts": [], + "args": [] + } + ], + "accounts": [], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + let disc = idl.instructions[0].get_discriminator(); + + assert_eq!(disc.len(), 8); + let expected = anchor_discriminator("global:initialize"); + assert_eq!(disc, expected); + } + + #[test] + fn test_legacy_account_computes_discriminator() { + let json = r#"{ + "name": "test", + "instructions": [], + "accounts": [ + { + "name": "LendingMarket", + "type": { "kind": "struct", "fields": [] } + } + ], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + let disc = idl.accounts[0].get_discriminator(); + + assert_eq!(disc.len(), 8); + let expected = anchor_discriminator("account:LendingMarket"); + assert_eq!(disc, expected); + } + + #[test] + fn test_explicit_discriminator_not_overridden() { + let json = r#"{ + "name": "test", + "instructions": [ + { + "name": "transfer", + "discriminator": [1, 2, 3, 4, 5, 6, 7, 8], + "accounts": [], + "args": [] + } + ], + "accounts": [ + { + "name": "TokenAccount", + "discriminator": [10, 20, 30, 40, 50, 60, 70, 80] + } + ], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + + assert_eq!( + idl.instructions[0].get_discriminator(), + vec![1, 2, 3, 4, 5, 6, 7, 8] + ); + assert_eq!( + idl.accounts[0].get_discriminator(), + vec![10, 20, 30, 40, 50, 60, 70, 80] + ); + } + + #[test] + fn test_steel_discriminant_still_works() { + let json = r#"{ + "name": "test", + "instructions": [ + { + "name": "CreateMetadataAccount", + "accounts": [], + "args": [], + "discriminant": { "type": "u8", "value": 0 } + }, + { + "name": "UpdateMetadataAccount", + "accounts": [], + "args": [], + "discriminant": { "type": "u8", "value": 1 } + } + ], + "accounts": [], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + + assert_eq!( + idl.instructions[0].get_discriminator(), + vec![0, 0, 0, 0, 0, 0, 0, 0] + ); + assert_eq!( + idl.instructions[1].get_discriminator(), + vec![1, 0, 0, 0, 0, 0, 0, 0] + ); + } + + #[test] + fn test_legacy_event_computes_discriminator() { + let json = r#"{ + "name": "test", + "instructions": [], + "accounts": [], + "types": [], + "events": [ + { "name": "TransferEvent" } + ], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + let disc = idl.events[0].get_discriminator(); + + assert_eq!(disc.len(), 8); + let expected = anchor_discriminator("event:TransferEvent"); + assert_eq!(disc, expected); + } + + #[test] + fn test_is_mut_is_signer_aliases() { + let json = r#"{ + "name": "test", + "instructions": [ + { + "name": "do_thing", + "accounts": [ + { "name": "payer", "isMut": true, "isSigner": true }, + { "name": "dest", "writable": true, "signer": false } + ], + "args": [] + } + ], + "accounts": [], + "types": [], + "errors": [] + }"#; + let idl = parse_idl_content(json).unwrap(); + let accounts = &idl.instructions[0].accounts; + + assert!(accounts[0].is_mut); + assert!(accounts[0].is_signer); + assert!(accounts[1].is_mut); + assert!(!accounts[1].is_signer); + } +} diff --git a/hyperstack-macros/src/stream_spec/sections.rs b/hyperstack-macros/src/stream_spec/sections.rs index 5d719a1..b301ff2 100644 --- a/hyperstack-macros/src/stream_spec/sections.rs +++ b/hyperstack-macros/src/stream_spec/sections.rs @@ -1012,14 +1012,23 @@ fn analyze_idl_type_with_resolution( crate::parse::idl::IdlTypeDefinedInner::Simple(s) => s.clone(), }; - // Try to resolve this defined type from IDL (including enums) - // Convert Option<&IdlSpec> into a temporary IdlLookup slice for resolve_complex_type let temp_idl_lookup: Vec<(String, &IdlSpec)> = idl.into_iter().map(|i| (String::new(), i)).collect(); let resolved_type = resolve_complex_type(&type_name, &temp_idl_lookup); (type_name, BaseType::Object, false, false, resolved_type) } + IdlType::HashMap(hm) => { + let (val_type, base_type, _, _, resolved_type) = + analyze_idl_type_with_resolution(&hm.hash_map.1, idl); + ( + format!("HashMap<{}>", val_type), + base_type, + false, + false, + resolved_type, + ) + } } } diff --git a/hyperstack/Cargo.toml b/hyperstack/Cargo.toml index 5f85428..309ec41 100644 --- a/hyperstack/Cargo.toml +++ b/hyperstack/Cargo.toml @@ -33,7 +33,7 @@ bs58 = { version = "0.5", optional = true } tracing = { version = "0.1", optional = true } serde = { version = "1.0", features = ["derive"], optional = true } serde_json = { version = "1.0", optional = true } -bytemuck = { version = "1.21", features = ["derive"], optional = true } +bytemuck = { version = "1.21", features = ["derive", "min_const_generics"], optional = true } yellowstone-vixen = { workspace = true, optional = true } yellowstone-vixen-core = { workspace = true, optional = true } yellowstone-vixen-yellowstone-grpc-source = { workspace = true, optional = true } diff --git a/interpreter/src/ast.rs b/interpreter/src/ast.rs index 5036a9a..4432658 100644 --- a/interpreter/src/ast.rs +++ b/interpreter/src/ast.rs @@ -124,6 +124,8 @@ pub enum IdlTypeSnapshot { Option(IdlOptionTypeSnapshot), /// Vec type: { "vec": "u8" } Vec(IdlVecTypeSnapshot), + /// HashMap type: { "hashMap": ["string", "u64"] } + HashMap(IdlHashMapTypeSnapshot), /// Defined/custom type: { "defined": { "name": "MyStruct" } } Defined(IdlDefinedTypeSnapshot), } @@ -159,6 +161,13 @@ pub struct IdlVecTypeSnapshot { pub vec: Box, } +/// HashMap type representation: { "hashMap": [key_type, value_type] } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct IdlHashMapTypeSnapshot { + #[serde(rename = "hashMap")] + pub hash_map: Vec, +} + /// Defined/custom type reference #[derive(Debug, Clone, Serialize, Deserialize)] pub struct IdlDefinedTypeSnapshot { @@ -273,6 +282,19 @@ impl IdlTypeSnapshot { IdlTypeSnapshot::Vec(vec) => { format!("Vec<{}>", vec.vec.to_rust_type_string()) } + IdlTypeSnapshot::HashMap(map) => { + let key_type = map + .hash_map + .first() + .map(|t| t.to_rust_type_string()) + .unwrap_or_else(|| "String".to_string()); + let val_type = map + .hash_map + .get(1) + .map(|t| t.to_rust_type_string()) + .unwrap_or_else(|| "serde_json::Value".to_string()); + format!("std::collections::HashMap<{}, {}>", key_type, val_type) + } IdlTypeSnapshot::Defined(def) => match &def.defined { IdlDefinedInnerSnapshot::Named { name } => name.clone(), IdlDefinedInnerSnapshot::Simple(s) => s.clone(), diff --git a/stacks/README.md b/stacks/README.md index d5dbc1a..a8a476d 100644 --- a/stacks/README.md +++ b/stacks/README.md @@ -6,42 +6,42 @@ Protocol stacks and the `hyperstack-stacks` SDK package. ``` stacks/ -├── pumpfun/ # Stack definition (deployable) +├── ore/ # Stack definition (deployable) │ ├── Cargo.toml # Rust crate with #[hyperstack] macro │ ├── hyperstack.toml # CLI config (outputs to ../sdk/*) │ ├── src/spec.rs # Stack definition -│ └── idl/pump.json # Anchor IDL +│ └── idl/ore.json # Anchor IDL │ └── sdk/ # Generated SDKs (publishable) ├── typescript/ # npm: hyperstack-stacks │ ├── package.json │ └── src/ │ ├── index.ts # Re-exports all stacks - │ └── pumpfun/ # Generated by `hs sdk create typescript` + │ └── ore/ # Generated by `hs sdk create typescript` │ └── rust/ # crates.io: hyperstack-stacks ├── Cargo.toml └── src/ ├── lib.rs # Feature-gated exports - └── pumpfun/ # Generated by `hs sdk create rust` + └── ore/ # Generated by `hs sdk create rust` ``` ## Deploy a Stack ```bash -cd pumpfun +cd ore cargo build # Generates .hyperstack/*.ast.json hs up # Deploy to Hyperstack -hs sdk create typescript # Output to ../typescript/src/pumpfun/ -hs sdk create rust # Output to ../rust/src/pumpfun/ +hs sdk create typescript ore # Output to ../typescript/src/ore/ +hs sdk create rust ore # Output to ../rust/src/ore/ ``` ## Use Published Stacks ```typescript -import { PUMPFUN_STACK } from 'hyperstack-stacks/pumpfun'; +import { ORE_STREAM_STACK } from 'hyperstack-stacks/ore'; ``` ```rust -use hyperstack_stacks::pumpfun::PumpfunTokenEntity; +use hyperstack_stacks::ore::OreStreamStack; ``` diff --git a/stacks/ore/.hyperstack/OreStream.stack.json b/stacks/ore/.hyperstack/OreStream.stack.json index b54e064..c367ff1 100644 --- a/stacks/ore/.hyperstack/OreStream.stack.json +++ b/stacks/ore/.hyperstack/OreStream.stack.json @@ -3789,14 +3789,14 @@ "pda_field": { "segments": [ "accounts", - "entropyVar" + "treasury" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "round" + "roundNext" ], "offsets": null }, @@ -3808,14 +3808,14 @@ "pda_field": { "segments": [ "accounts", - "treasury" + "entropyVar" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "roundNext" + "round" ], "offsets": null }, @@ -4556,7 +4556,7 @@ "result_type": "Option < f64 >" } ], - "content_hash": "bb98d040a8cb94fca1a7641d664ed8245ec8c7cf266ace6c894cbfbf97dc0dea", + "content_hash": "fee0e768222fd6bab78adf26826ac1111fe5fd95dead39939b03b22e9e184eea", "views": [ { "id": "OreRound/latest", @@ -5146,14 +5146,14 @@ "pda_field": { "segments": [ "accounts", - "entropyVar" + "treasury" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "round" + "roundNext" ], "offsets": null }, @@ -5165,14 +5165,14 @@ "pda_field": { "segments": [ "accounts", - "treasury" + "entropyVar" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "roundNext" + "round" ], "offsets": null }, @@ -5280,7 +5280,7 @@ "result_type": "Option < f64 >" } ], - "content_hash": "66301f1e812d89849a1f719de939d80b2973335b736c6c08c1d5b7773fa023ef", + "content_hash": "c409570174a695cd8b4b2e0b8ac65181ffe477b99943e419af878d34f61cddce", "views": [] }, { @@ -6706,14 +6706,14 @@ "pda_field": { "segments": [ "accounts", - "entropyVar" + "treasury" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "round" + "roundNext" ], "offsets": null }, @@ -6725,14 +6725,14 @@ "pda_field": { "segments": [ "accounts", - "treasury" + "entropyVar" ], "offsets": null }, "seed_field": { "segments": [ "accounts", - "roundNext" + "round" ], "offsets": null }, @@ -6746,7 +6746,7 @@ "resolver_specs": [], "computed_fields": [], "computed_field_specs": [], - "content_hash": "236fccaddbe4354f0fd201accb7bc597b90894a1b517d987980178b7be75a6be", + "content_hash": "fa965125488f32c6c794a56c517d6455d2b04d90f29250d419b73efd957ea3d3", "views": [] } ], @@ -8854,5 +8854,5 @@ ] } ], - "content_hash": "d54be9ac027a6a9581305854d45da529430879dd2e0dec2786f6da636a4cadda" + "content_hash": "23b682bb628f14e33ffc389f62dc06cac3119d72ee29b59da9535e96d8acea8d" } \ No newline at end of file diff --git a/stacks/ore/Cargo.lock b/stacks/ore/Cargo.lock index 60730a9..e513f30 100644 --- a/stacks/ore/Cargo.lock +++ b/stacks/ore/Cargo.lock @@ -1138,7 +1138,7 @@ dependencies = [ [[package]] name = "hyperstack" -version = "0.5.2" +version = "0.5.3" dependencies = [ "anyhow", "bs58", @@ -1161,10 +1161,11 @@ dependencies = [ [[package]] name = "hyperstack-interpreter" -version = "0.5.2" +version = "0.5.3" dependencies = [ "bs58", "dashmap", + "futures", "hex", "hyperstack-macros", "lru", @@ -1182,7 +1183,7 @@ dependencies = [ [[package]] name = "hyperstack-macros" -version = "0.5.2" +version = "0.5.3" dependencies = [ "bs58", "hex", @@ -1196,7 +1197,7 @@ dependencies = [ [[package]] name = "hyperstack-sdk" -version = "0.5.2" +version = "0.5.3" dependencies = [ "anyhow", "flate2", @@ -1213,7 +1214,7 @@ dependencies = [ [[package]] name = "hyperstack-server" -version = "0.5.2" +version = "0.5.3" dependencies = [ "anyhow", "base64 0.22.1", diff --git a/stacks/pumpfun/.hyperstack/PumpfunStream.stack.json b/stacks/pumpfun/.hyperstack/PumpfunStream.stack.json deleted file mode 100644 index aa54f77..0000000 --- a/stacks/pumpfun/.hyperstack/PumpfunStream.stack.json +++ /dev/null @@ -1,17980 +0,0 @@ -{ - "stack_name": "PumpfunStream", - "program_ids": [ - "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - ], - "idls": [ - { - "name": "pump", - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "version": "0.1.0", - "accounts": [ - { - "name": "BondingCurve", - "discriminator": [ - 23, - 183, - 248, - 55, - 96, - 216, - 172, - 96 - ], - "docs": [] - }, - { - "name": "FeeConfig", - "discriminator": [ - 143, - 52, - 146, - 187, - 219, - 123, - 76, - 155 - ], - "docs": [] - }, - { - "name": "Global", - "discriminator": [ - 167, - 232, - 232, - 177, - 200, - 108, - 114, - 127 - ], - "docs": [] - }, - { - "name": "GlobalVolumeAccumulator", - "discriminator": [ - 202, - 42, - 246, - 43, - 142, - 190, - 30, - 255 - ], - "docs": [] - }, - { - "name": "SharingConfig", - "discriminator": [ - 216, - 74, - 9, - 0, - 56, - 140, - 93, - 75 - ], - "docs": [] - }, - { - "name": "UserVolumeAccumulator", - "discriminator": [ - 86, - 255, - 112, - 14, - 102, - 53, - 154, - 250 - ], - "docs": [] - } - ], - "instructions": [ - { - "name": "admin_set_creator", - "discriminator": [ - 69, - 25, - 171, - 142, - 57, - 239, - 13, - 4 - ], - "docs": [ - "Allows Global::admin_set_creator_authority to override the bonding curve creator" - ], - "accounts": [ - { - "name": "admin_set_creator_authority", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "admin_set_idl_authority", - "discriminator": [ - 8, - 217, - 96, - 231, - 144, - 104, - 192, - 5 - ], - "docs": [], - "accounts": [ - { - "name": "authority", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "idl_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "program_signer", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "idl_authority", - "type": "pubkey" - } - ] - }, - { - "name": "admin_update_token_incentives", - "discriminator": [ - 209, - 11, - 115, - 87, - 213, - 23, - 124, - 204 - ], - "docs": [], - "accounts": [ - { - "name": "authority", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global_incentive_token_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "day_number", - "type": "u64" - }, - { - "name": "pump_token_supply_per_day", - "type": "u64" - } - ] - }, - { - "name": "buy", - "discriminator": [ - 102, - 6, - 61, - 18, - 1, - 218, - 235, - 234 - ], - "docs": [ - "Buys tokens from a bonding curve." - ], - "accounts": [ - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_recipient", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_user", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "creator_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [] - }, - { - "name": "global_volume_accumulator", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_program", - "writable": false, - "signer": false, - "optional": false, - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ", - "docs": [] - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "max_sol_cost", - "type": "u64" - }, - { - "name": "track_volume", - "type": { - "defined": { - "name": "OptionBool" - } - } - } - ] - }, - { - "name": "buy_exact_sol_in", - "discriminator": [ - 56, - 252, - 116, - 8, - 158, - 223, - 205, - 95 - ], - "docs": [ - "Given a budget of spendable SOL, buy at least min_tokens_out tokens.", - "Fees are deducted from spendable_sol_in.", - "", - "# Quote formulas", - "Where:", - "- total_fee_bps = protocol_fee_bps + creator_fee_bps (creator_fee_bps is 0 if no creator)", - "- floor(a/b) = a / b (integer division)", - "- ceil(a/b) = (a + b - 1) / b", - "", - "SOL → tokens quote", - "To calculate tokens_out for a given spendable_sol_in:", - "1. net_sol = floor(spendable_sol_in * 10_000 / (10_000 + total_fee_bps))", - "2. fees = ceil(net_sol * protocol_fee_bps / 10_000) + ceil(net_sol * creator_fee_bps / 10_000) (creator_fee_bps is 0 if no creator)", - "3. if net_sol + fees > spendable_sol_in: net_sol = net_sol - (net_sol + fees - spendable_sol_in)", - "4. tokens_out = floor((net_sol - 1) * virtual_token_reserves / (virtual_sol_reserves + net_sol - 1))", - "", - "Reverse quote (tokens → SOL)", - "To calculate spendable_sol_in for a desired number of tokens:", - "1. net_sol = ceil(tokens * virtual_sol_reserves / (virtual_token_reserves - tokens)) + 1", - "2. spendable_sol_in = ceil(net_sol * (10_000 + total_fee_bps) / 10_000)", - "", - "Rent", - "Separately make sure the instruction's payer has enough SOL to cover rent for:", - "- creator_vault: rent.minimum_balance(0)", - "- user_volume_accumulator: rent.minimum_balance(UserVolumeAccumulator::LEN)" - ], - "accounts": [ - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_recipient", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_user", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "creator_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [] - }, - { - "name": "global_volume_accumulator", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_program", - "writable": false, - "signer": false, - "optional": false, - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ", - "docs": [] - } - ], - "args": [ - { - "name": "spendable_sol_in", - "type": "u64" - }, - { - "name": "min_tokens_out", - "type": "u64" - }, - { - "name": "track_volume", - "type": { - "defined": { - "name": "OptionBool" - } - } - } - ] - }, - { - "name": "claim_token_incentives", - "discriminator": [ - 16, - 4, - 71, - 28, - 204, - 1, - 40, - 27 - ], - "docs": [], - "accounts": [ - { - "name": "user", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_ata", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global_volume_accumulator", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global_incentive_token_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "associated_token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [] - }, - { - "name": "payer", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "close_user_volume_accumulator", - "discriminator": [ - 249, - 69, - 164, - 218, - 150, - 103, - 84, - 138 - ], - "docs": [], - "accounts": [ - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "collect_creator_fee", - "discriminator": [ - 20, - 22, - 86, - 123, - 198, - 28, - 219, - 132 - ], - "docs": [ - "Collects creator_fee from creator_vault to the coin creator account" - ], - "accounts": [ - { - "name": "creator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "creator_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "create", - "discriminator": [ - 24, - 30, - 200, - 40, - 5, - 28, - 7, - 119 - ], - "docs": [ - "Creates a new coin and bonding curve." - ], - "accounts": [ - { - "name": "mint", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mpl_token_metadata", - "writable": false, - "signer": false, - "optional": false, - "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s", - "docs": [] - }, - { - "name": "metadata", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", - "docs": [] - }, - { - "name": "associated_token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", - "docs": [] - }, - { - "name": "rent", - "writable": false, - "signer": false, - "optional": false, - "address": "SysvarRent111111111111111111111111111111111", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "create_v2", - "discriminator": [ - 214, - 144, - 76, - 236, - 95, - 139, - 49, - 180 - ], - "docs": [ - "Creates a new spl-22 coin and bonding curve." - ], - "accounts": [ - { - "name": "mint", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", - "docs": [] - }, - { - "name": "associated_token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", - "docs": [] - }, - { - "name": "mayhem_program_id", - "writable": true, - "signer": false, - "optional": false, - "address": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e", - "docs": [] - }, - { - "name": "global_params", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "sol_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mayhem_state", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mayhem_token_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - }, - { - "name": "distribute_creator_fees", - "discriminator": [ - 165, - 114, - 103, - 0, - 121, - 206, - 247, - 81 - ], - "docs": [ - "Distributes creator fees to shareholders based on their share percentages", - "The creator vault needs to have at least the minimum distributable amount to distribute fees", - "This can be checked with the get_minimum_distributable_fee instruction" - ], - "accounts": [ - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "sharing_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "creator_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [] - } - ], - "args": [] - }, - { - "name": "extend_account", - "discriminator": [ - 234, - 102, - 194, - 203, - 150, - 72, - 62, - 229 - ], - "docs": [ - "Extends the size of program-owned accounts" - ], - "accounts": [ - { - "name": "account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "get_minimum_distributable_fee", - "discriminator": [ - 117, - 225, - 127, - 202, - 134, - 95, - 68, - 35 - ], - "docs": [ - "Permissionless instruction to check the minimum required fees for distribution", - "Returns the minimum required balance from the creator_vault and whether distribution can proceed" - ], - "accounts": [ - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "sharing_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "creator_vault", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "init_user_volume_accumulator", - "discriminator": [ - 94, - 6, - 202, - 115, - 255, - 96, - 232, - 183 - ], - "docs": [], - "accounts": [ - { - "name": "payer", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "initialize", - "discriminator": [ - 175, - 175, - 109, - 31, - 13, - 152, - 155, - 237 - ], - "docs": [ - "Creates the global state." - ], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - } - ], - "args": [] - }, - { - "name": "migrate", - "discriminator": [ - 155, - 234, - 231, - 146, - 236, - 158, - 162, - 30 - ], - "docs": [ - "Migrates liquidity to pump_amm if the bonding curve is complete" - ], - "accounts": [ - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "withdraw_authority", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", - "docs": [] - }, - { - "name": "pump_amm", - "writable": false, - "signer": false, - "optional": false, - "address": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", - "docs": [] - }, - { - "name": "pool", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "pool_authority", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "pool_authority_mint_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "pool_authority_wsol_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "amm_global_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "wsol_mint", - "writable": false, - "signer": false, - "optional": false, - "address": "So11111111111111111111111111111111111111112", - "docs": [] - }, - { - "name": "lp_mint", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_pool_token_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "pool_base_token_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "pool_quote_token_account", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "token_2022_program", - "writable": false, - "signer": false, - "optional": false, - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", - "docs": [] - }, - { - "name": "associated_token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", - "docs": [] - }, - { - "name": "pump_amm_event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "migrate_bonding_curve_creator", - "discriminator": [ - 87, - 124, - 52, - 191, - 52, - 38, - 214, - 232 - ], - "docs": [], - "accounts": [ - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "sharing_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "sell", - "discriminator": [ - 51, - 230, - 133, - 164, - 1, - 127, - 131, - 173 - ], - "docs": [ - "Sells tokens into a bonding curve." - ], - "accounts": [ - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_recipient", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "associated_user", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "system_program", - "writable": false, - "signer": false, - "optional": false, - "address": "11111111111111111111111111111111", - "docs": [] - }, - { - "name": "creator_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [] - }, - { - "name": "fee_config", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "fee_program", - "writable": false, - "signer": false, - "optional": false, - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ", - "docs": [] - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "min_sol_output", - "type": "u64" - } - ] - }, - { - "name": "set_creator", - "discriminator": [ - 254, - 148, - 255, - 112, - 207, - 142, - 170, - 165 - ], - "docs": [ - "Allows Global::set_creator_authority to set the bonding curve creator from Metaplex metadata or input argument" - ], - "accounts": [ - { - "name": "set_creator_authority", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "metadata", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "set_mayhem_virtual_params", - "discriminator": [ - 61, - 169, - 188, - 191, - 153, - 149, - 42, - 97 - ], - "docs": [], - "accounts": [ - { - "name": "sol_vault_authority", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mayhem_token_vault", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "token_program", - "writable": false, - "signer": false, - "optional": false, - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "set_metaplex_creator", - "discriminator": [ - 138, - 96, - 174, - 217, - 48, - 85, - 197, - 246 - ], - "docs": [ - "Syncs the bonding curve creator with the Metaplex metadata creator if it exists" - ], - "accounts": [ - { - "name": "mint", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "metadata", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "bonding_curve", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "set_params", - "discriminator": [ - 27, - 234, - 178, - 52, - 147, - 2, - 187, - 141 - ], - "docs": [ - "Sets the global state parameters." - ], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "authority", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - } - ] - }, - { - "name": "set_reserved_fee_recipients", - "discriminator": [ - 111, - 172, - 162, - 232, - 114, - 89, - 213, - 142 - ], - "docs": [], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "authority", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "whitelist_pda", - "type": "pubkey" - } - ] - }, - { - "name": "sync_user_volume_accumulator", - "discriminator": [ - 86, - 31, - 192, - 87, - 163, - 87, - 79, - 238 - ], - "docs": [], - "accounts": [ - { - "name": "user", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "global_volume_accumulator", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "user_volume_accumulator", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - }, - { - "name": "toggle_create_v2", - "discriminator": [ - 28, - 255, - 230, - 240, - 172, - 107, - 203, - 171 - ], - "docs": [], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "authority", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ] - }, - { - "name": "toggle_mayhem_mode", - "discriminator": [ - 1, - 9, - 111, - 208, - 100, - 31, - 255, - 163 - ], - "docs": [], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "authority", - "writable": true, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ] - }, - { - "name": "update_global_authority", - "discriminator": [ - 227, - 181, - 74, - 196, - 208, - 21, - 97, - 213 - ], - "docs": [], - "accounts": [ - { - "name": "global", - "writable": true, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "authority", - "writable": false, - "signer": true, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "new_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "event_authority", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - }, - { - "name": "program", - "writable": false, - "signer": false, - "optional": false, - "address": null, - "docs": [] - } - ], - "args": [] - } - ], - "types": [ - { - "name": "AdminSetCreatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "old_creator", - "type": "pubkey" - }, - { - "name": "new_creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "AdminSetIdlAuthorityEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "idl_authority", - "type": "pubkey" - } - ] - } - }, - { - "name": "AdminUpdateTokenIncentivesEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "day_number", - "type": "u64" - }, - { - "name": "token_supply_per_day", - "type": "u64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "BondingCurve", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "complete", - "type": "bool" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "ClaimTokenIncentivesEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "amount", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - } - ] - } - }, - { - "name": "CloseUserVolumeAccumulatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "CollectCreatorFeeEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "creator_fee", - "type": "u64" - } - ] - } - }, - { - "name": "CompleteEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "CompletePumpAmmMigrationEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "mint_amount", - "type": "u64" - }, - { - "name": "sol_amount", - "type": "u64" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "pool", - "type": "pubkey" - } - ] - } - }, - { - "name": "ConfigStatus", - "docs": [], - "type": { - "kind": "enum", - "variants": [ - { - "name": "Paused" - }, - { - "name": "Active" - } - ] - } - }, - { - "name": "CreateEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "token_program", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "DistributeCreatorFeesEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "sharing_config", - "type": "pubkey" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "shareholders", - "type": { - "vec": { - "defined": { - "name": "Shareholder" - } - } - } - }, - { - "name": "distributed", - "type": "u64" - } - ] - } - }, - { - "name": "ExtendAccountEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "account", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "current_size", - "type": "u64" - }, - { - "name": "new_size", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "FeeConfig", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "bump", - "type": "u8" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "flat_fees", - "type": { - "defined": { - "name": "Fees" - } - } - }, - { - "name": "fee_tiers", - "type": { - "vec": { - "defined": { - "name": "FeeTier" - } - } - } - } - ] - } - }, - { - "name": "FeeTier", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "market_cap_lamports_threshold", - "type": "u128" - }, - { - "name": "fees", - "type": { - "defined": { - "name": "Fees" - } - } - } - ] - } - }, - { - "name": "Fees", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "lp_fee_bps", - "type": "u64" - }, - { - "name": "protocol_fee_bps", - "type": "u64" - }, - { - "name": "creator_fee_bps", - "type": "u64" - } - ] - } - }, - { - "name": "Global", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "initialized", - "type": "bool" - }, - { - "name": "authority", - "type": "pubkey" - }, - { - "name": "fee_recipient", - "type": "pubkey" - }, - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - }, - { - "name": "create_v2_enabled", - "type": "bool" - }, - { - "name": "whitelist_pda", - "type": "pubkey" - }, - { - "name": "reserved_fee_recipient", - "type": "pubkey" - }, - { - "name": "mayhem_mode_enabled", - "type": "bool" - }, - { - "name": "reserved_fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - } - ] - } - }, - { - "name": "GlobalVolumeAccumulator", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "total_token_supply", - "type": { - "array": [ - "u64", - 30 - ] - } - }, - { - "name": "sol_volumes", - "type": { - "array": [ - "u64", - 30 - ] - } - } - ] - } - }, - { - "name": "InitUserVolumeAccumulatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "payer", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "MigrateBondingCurveCreatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "sharing_config", - "type": "pubkey" - }, - { - "name": "old_creator", - "type": "pubkey" - }, - { - "name": "new_creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "MinimumDistributableFeeEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "minimum_required", - "type": "u64" - }, - { - "name": "distributable_fees", - "type": "u64" - }, - { - "name": "can_distribute", - "type": "bool" - } - ] - } - }, - { - "name": "OptionBool", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - "bool" - ] - } - }, - { - "name": "ReservedFeeRecipientsEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "reserved_fee_recipient", - "type": "pubkey" - }, - { - "name": "reserved_fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - } - ] - } - }, - { - "name": "SetCreatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "SetMetaplexCreatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "metadata", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "SetParamsEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "final_real_sol_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "fee_recipients", - "type": { - "array": [ - "pubkey", - 8 - ] - } - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - } - ] - } - }, - { - "name": "Shareholder", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "address", - "type": "pubkey" - }, - { - "name": "share_bps", - "type": "u16" - } - ] - } - }, - { - "name": "SharingConfig", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "bump", - "type": "u8" - }, - { - "name": "version", - "type": "u8" - }, - { - "name": "status", - "type": { - "defined": { - "name": "ConfigStatus" - } - } - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "admin_revoked", - "type": "bool" - }, - { - "name": "shareholders", - "type": { - "vec": { - "defined": { - "name": "Shareholder" - } - } - } - } - ] - } - }, - { - "name": "SyncUserVolumeAccumulatorEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "total_claimed_tokens_before", - "type": "u64" - }, - { - "name": "total_claimed_tokens_after", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "TradeEvent", - "docs": [ - "ix_name: \"buy\" | \"sell\" | \"buy_exact_sol_in\"" - ], - "type": { - "kind": "struct", - "fields": [ - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "sol_amount", - "type": "u64" - }, - { - "name": "token_amount", - "type": "u64" - }, - { - "name": "is_buy", - "type": "bool" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "fee_recipient", - "type": "pubkey" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "fee", - "type": "u64" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "creator_fee", - "type": "u64" - }, - { - "name": "track_volume", - "type": "bool" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - }, - { - "name": "ix_name", - "type": "string" - }, - { - "name": "mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "UpdateGlobalAuthorityEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "global", - "type": "pubkey" - }, - { - "name": "authority", - "type": "pubkey" - }, - { - "name": "new_authority", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "UpdateMayhemVirtualParamsEvent", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "new_virtual_token_reserves", - "type": "u64" - }, - { - "name": "new_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - } - ] - } - }, - { - "name": "UserVolumeAccumulator", - "docs": [], - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "needs_claim", - "type": "bool" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - }, - { - "name": "has_total_claimed_tokens", - "type": "bool" - } - ] - } - } - ], - "events": [ - { - "name": "AdminSetCreatorEvent", - "discriminator": [ - 64, - 69, - 192, - 104, - 29, - 30, - 25, - 107 - ], - "docs": [] - }, - { - "name": "AdminSetIdlAuthorityEvent", - "discriminator": [ - 245, - 59, - 70, - 34, - 75, - 185, - 109, - 92 - ], - "docs": [] - }, - { - "name": "AdminUpdateTokenIncentivesEvent", - "discriminator": [ - 147, - 250, - 108, - 120, - 247, - 29, - 67, - 222 - ], - "docs": [] - }, - { - "name": "ClaimTokenIncentivesEvent", - "discriminator": [ - 79, - 172, - 246, - 49, - 205, - 91, - 206, - 232 - ], - "docs": [] - }, - { - "name": "CloseUserVolumeAccumulatorEvent", - "discriminator": [ - 146, - 159, - 189, - 172, - 146, - 88, - 56, - 244 - ], - "docs": [] - }, - { - "name": "CollectCreatorFeeEvent", - "discriminator": [ - 122, - 2, - 127, - 1, - 14, - 191, - 12, - 175 - ], - "docs": [] - }, - { - "name": "CompleteEvent", - "discriminator": [ - 95, - 114, - 97, - 156, - 212, - 46, - 152, - 8 - ], - "docs": [] - }, - { - "name": "CompletePumpAmmMigrationEvent", - "discriminator": [ - 189, - 233, - 93, - 185, - 92, - 148, - 234, - 148 - ], - "docs": [] - }, - { - "name": "CreateEvent", - "discriminator": [ - 27, - 114, - 169, - 77, - 222, - 235, - 99, - 118 - ], - "docs": [] - }, - { - "name": "DistributeCreatorFeesEvent", - "discriminator": [ - 165, - 55, - 129, - 112, - 4, - 179, - 202, - 40 - ], - "docs": [] - }, - { - "name": "ExtendAccountEvent", - "discriminator": [ - 97, - 97, - 215, - 144, - 93, - 146, - 22, - 124 - ], - "docs": [] - }, - { - "name": "InitUserVolumeAccumulatorEvent", - "discriminator": [ - 134, - 36, - 13, - 72, - 232, - 101, - 130, - 216 - ], - "docs": [] - }, - { - "name": "MigrateBondingCurveCreatorEvent", - "discriminator": [ - 155, - 167, - 104, - 220, - 213, - 108, - 243, - 3 - ], - "docs": [] - }, - { - "name": "MinimumDistributableFeeEvent", - "discriminator": [ - 168, - 216, - 132, - 239, - 235, - 182, - 49, - 52 - ], - "docs": [] - }, - { - "name": "ReservedFeeRecipientsEvent", - "discriminator": [ - 43, - 188, - 250, - 18, - 221, - 75, - 187, - 95 - ], - "docs": [] - }, - { - "name": "SetCreatorEvent", - "discriminator": [ - 237, - 52, - 123, - 37, - 245, - 251, - 72, - 210 - ], - "docs": [] - }, - { - "name": "SetMetaplexCreatorEvent", - "discriminator": [ - 142, - 203, - 6, - 32, - 127, - 105, - 191, - 162 - ], - "docs": [] - }, - { - "name": "SetParamsEvent", - "discriminator": [ - 223, - 195, - 159, - 246, - 62, - 48, - 143, - 131 - ], - "docs": [] - }, - { - "name": "SyncUserVolumeAccumulatorEvent", - "discriminator": [ - 197, - 122, - 167, - 124, - 116, - 81, - 91, - 255 - ], - "docs": [] - }, - { - "name": "TradeEvent", - "discriminator": [ - 189, - 219, - 127, - 211, - 78, - 230, - 97, - 238 - ], - "docs": [] - }, - { - "name": "UpdateGlobalAuthorityEvent", - "discriminator": [ - 182, - 195, - 137, - 42, - 35, - 206, - 207, - 247 - ], - "docs": [] - }, - { - "name": "UpdateMayhemVirtualParamsEvent", - "discriminator": [ - 117, - 123, - 228, - 182, - 161, - 168, - 220, - 214 - ], - "docs": [] - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "discriminant_size": 8 - } - ], - "entities": [ - { - "state_name": "PumpfunToken", - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "idl": null, - "identity": { - "primary_keys": [ - "id.mint", - "id.mint" - ], - "lookup_indexes": [ - { - "field_name": "id.bonding_curve", - "temporal_field": null - } - ] - }, - "handlers": [ - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::BondingCurveState" - } - }, - "key_resolution": { - "Lookup": { - "primary_field": { - "segments": [ - "__account_address" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "id.bonding_curve", - "source": { - "FromSource": { - "path": { - "segments": [ - "__account_address" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.is_complete", - "source": { - "FromSource": { - "path": { - "segments": [ - "complete" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "reserves.virtual_token_reserves", - "source": { - "FromSource": { - "path": { - "segments": [ - "virtual_token_reserves" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "reserves.virtual_sol_reserves", - "source": { - "FromSource": { - "path": { - "segments": [ - "virtual_sol_reserves" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "reserves.real_token_reserves", - "source": { - "FromSource": { - "path": { - "segments": [ - "real_token_reserves" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "reserves.real_sol_reserves", - "source": { - "FromSource": { - "path": { - "segments": [ - "real_sol_reserves" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "reserves.token_total_supply", - "source": { - "FromSource": { - "path": { - "segments": [ - "token_total_supply" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "LastWrite" - }, - { - "target_path": "bonding_curve_snapshot", - "source": { - "AsCapture": { - "field_transforms": { - "creator": "HexEncode" - } - } - }, - "transform": null, - "population": "LastWrite" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::BuyIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "trading.total_buy_volume", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Sum" - }, - { - "target_path": "trading.total_trades", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.buy_count", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.unique_traders", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": "ToString" - } - }, - "transform": null, - "population": "UniqueCount" - }, - { - "target_path": "trading.largest_trade", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Max" - }, - { - "target_path": "trading.smallest_trade", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Min" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::BuyExactSolInIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "trading.total_buy_exact_sol_volume", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "spendable_sol_in" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Sum" - }, - { - "target_path": "trading.total_trades", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.buy_count", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.unique_traders", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": "ToString" - } - }, - "transform": null, - "population": "UniqueCount" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::CreateIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "id.mint", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.name", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "name" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.symbol", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "symbol" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.uri", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "uri" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::CreateV2IxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "id.mint", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.name", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "name" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.symbol", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "symbol" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - }, - { - "target_path": "info.uri", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "uri" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "SetOnce" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": null, - "discriminator": null, - "type_name": "pump::SellIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "trading.total_sell_volume", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Sum" - }, - { - "target_path": "trading.total_trades", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.sell_count", - "source": { - "FromSource": { - "path": { - "segments": [ - "data" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Count" - }, - { - "target_path": "trading.unique_traders", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": "ToString" - } - }, - "transform": null, - "population": "UniqueCount" - }, - { - "target_path": "trading.largest_trade", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Max" - }, - { - "target_path": "trading.smallest_trade", - "source": { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "transform": null, - "population": "Min" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": "instructions", - "discriminator": null, - "type_name": "pump::BuyIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "events.buys", - "source": { - "AsEvent": { - "fields": [ - { - "FromSource": { - "path": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - { - "FromSource": { - "path": { - "segments": [ - "data", - "max_sol_cost" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": null - } - } - ] - } - }, - "transform": null, - "population": "Append" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": "instructions", - "discriminator": null, - "type_name": "pump::BuyExactSolInIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "events.buys_exact_sol", - "source": { - "AsEvent": { - "fields": [ - { - "FromSource": { - "path": { - "segments": [ - "data", - "spendable_sol_in" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - { - "FromSource": { - "path": { - "segments": [ - "data", - "min_tokens_out" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": null - } - } - ] - } - }, - "transform": null, - "population": "Append" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": "instructions", - "discriminator": null, - "type_name": "pump::CreateIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "events.create", - "source": { - "AsEvent": { - "fields": [] - } - }, - "transform": null, - "population": "SetOnce" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": "instructions", - "discriminator": null, - "type_name": "pump::CreateV2IxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "events.create_v2", - "source": { - "AsEvent": { - "fields": [] - } - }, - "transform": null, - "population": "SetOnce" - } - ], - "conditions": [], - "emit": true - }, - { - "source": { - "Source": { - "program_id": "instructions", - "discriminator": null, - "type_name": "pump::SellIxState" - } - }, - "key_resolution": { - "Embedded": { - "primary_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - }, - "mappings": [ - { - "target_path": "events.sells", - "source": { - "AsEvent": { - "fields": [] - } - }, - "transform": null, - "population": "Append" - } - ], - "conditions": [], - "emit": true - } - ], - "sections": [ - { - "name": "id", - "fields": [ - { - "field_name": "mint", - "rust_type_name": "String", - "base_type": "String", - "is_optional": false, - "is_array": false, - "inner_type": null, - "source_path": null, - "resolved_type": null - }, - { - "field_name": "bonding_curve", - "rust_type_name": "String", - "base_type": "String", - "is_optional": false, - "is_array": false, - "inner_type": null, - "source_path": null, - "resolved_type": null - } - ], - "is_nested_struct": false, - "parent_field": null - }, - { - "name": "info", - "fields": [ - { - "field_name": "name", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "symbol", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "uri", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "is_complete", - "rust_type_name": "Option < bool >", - "base_type": "Boolean", - "is_optional": true, - "is_array": false, - "inner_type": "bool", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "resolved_image", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - } - ], - "is_nested_struct": false, - "parent_field": null - }, - { - "name": "reserves", - "fields": [ - { - "field_name": "virtual_token_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "virtual_sol_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "real_token_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "real_sol_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "token_total_supply", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "current_price_sol", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "market_cap_sol", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - } - ], - "is_nested_struct": false, - "parent_field": null - }, - { - "name": "trading", - "fields": [ - { - "field_name": "total_buy_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "total_sell_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "total_buy_exact_sol_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "total_trades", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "buy_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "sell_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "unique_traders", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "largest_trade", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "smallest_trade", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "last_trade_timestamp", - "rust_type_name": "Option < i64 >", - "base_type": "Timestamp", - "is_optional": true, - "is_array": false, - "inner_type": "i64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "last_trade_price", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "whale_trade_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "last_whale_address", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "total_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "average_trade_size", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - } - ], - "is_nested_struct": false, - "parent_field": null - }, - { - "name": "events", - "fields": [ - { - "field_name": "create", - "rust_type_name": "Option < pump_sdk :: instructions :: Create >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: instructions :: Create", - "source_path": null, - "resolved_type": { - "type_name": "create", - "fields": [ - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mpl_token_metadata", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "metadata", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "rent", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "name", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "symbol", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "uri", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator", - "field_type": "pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - { - "field_name": "create_v2", - "rust_type_name": "Option < pump_sdk :: instructions :: CreateV2 >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: instructions :: CreateV2", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "buys", - "rust_type_name": "Vec < pump_sdk :: instructions :: Buy >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: Buy", - "source_path": null, - "resolved_type": { - "type_name": "buy", - "fields": [ - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_recipient", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator_vault", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "global_volume_accumulator", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user_volume_accumulator", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_config", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "amount", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "max_sol_cost", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "track_volume", - "field_type": "OptionBool", - "base_type": "Object", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - { - "field_name": "buys_exact_sol", - "rust_type_name": "Vec < pump_sdk :: instructions :: BuyExactSolIn >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: BuyExactSolIn", - "source_path": null, - "resolved_type": null - }, - { - "field_name": "sells", - "rust_type_name": "Vec < pump_sdk :: instructions :: Sell >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: Sell", - "source_path": null, - "resolved_type": { - "type_name": "sell", - "fields": [ - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_recipient", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator_vault", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_config", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "amount", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "min_sol_output", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - } - ], - "is_nested_struct": false, - "parent_field": null - }, - { - "name": "root", - "fields": [ - { - "field_name": "bonding_curve_snapshot", - "rust_type_name": "Option < pump_sdk :: accounts :: BondingCurve >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: accounts :: BondingCurve", - "source_path": null, - "resolved_type": { - "type_name": "BondingCurve", - "fields": [ - { - "field_name": "virtual_token_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "virtual_sol_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "real_token_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "real_sol_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_total_supply", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "complete", - "field_type": "bool", - "base_type": "Boolean", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator", - "field_type": "pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "is_mayhem_mode", - "field_type": "bool", - "base_type": "Boolean", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": false, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - } - ], - "is_nested_struct": false, - "parent_field": null - } - ], - "field_mappings": { - "bonding_curve_snapshot": { - "field_name": "bonding_curve_snapshot", - "rust_type_name": "Option < pump_sdk :: accounts :: BondingCurve >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: accounts :: BondingCurve", - "source_path": null, - "resolved_type": { - "type_name": "BondingCurve", - "fields": [ - { - "field_name": "virtual_token_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "virtual_sol_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "real_token_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "real_sol_reserves", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_total_supply", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "complete", - "field_type": "bool", - "base_type": "Boolean", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator", - "field_type": "pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "is_mayhem_mode", - "field_type": "bool", - "base_type": "Boolean", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": false, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - "events.buys": { - "field_name": "buys", - "rust_type_name": "Vec < pump_sdk :: instructions :: Buy >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: Buy", - "source_path": null, - "resolved_type": { - "type_name": "buy", - "fields": [ - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_recipient", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator_vault", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "global_volume_accumulator", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user_volume_accumulator", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_config", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "amount", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "max_sol_cost", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "track_volume", - "field_type": "OptionBool", - "base_type": "Object", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - "events.buys_exact_sol": { - "field_name": "buys_exact_sol", - "rust_type_name": "Vec < pump_sdk :: instructions :: BuyExactSolIn >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: BuyExactSolIn", - "source_path": null, - "resolved_type": null - }, - "events.create": { - "field_name": "create", - "rust_type_name": "Option < pump_sdk :: instructions :: Create >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: instructions :: Create", - "source_path": null, - "resolved_type": { - "type_name": "create", - "fields": [ - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mpl_token_metadata", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "metadata", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "rent", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "name", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "symbol", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "uri", - "field_type": "string", - "base_type": "String", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator", - "field_type": "pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - "events.create_v2": { - "field_name": "create_v2", - "rust_type_name": "Option < pump_sdk :: instructions :: CreateV2 >", - "base_type": "Object", - "is_optional": true, - "is_array": false, - "inner_type": "pump_sdk :: instructions :: CreateV2", - "source_path": null, - "resolved_type": null - }, - "events.sells": { - "field_name": "sells", - "rust_type_name": "Vec < pump_sdk :: instructions :: Sell >", - "base_type": "Array", - "is_optional": false, - "is_array": true, - "inner_type": "pump_sdk :: instructions :: Sell", - "source_path": null, - "resolved_type": { - "type_name": "sell", - "fields": [ - { - "field_name": "global", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_recipient", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "mint", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_bonding_curve", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "associated_user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "user", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "system_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "creator_vault", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "token_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "event_authority", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_config", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "fee_program", - "field_type": "Pubkey", - "base_type": "Pubkey", - "is_optional": false, - "is_array": false - }, - { - "field_name": "amount", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - }, - { - "field_name": "min_sol_output", - "field_type": "u64", - "base_type": "Integer", - "is_optional": false, - "is_array": false - } - ], - "is_instruction": true, - "is_account": false, - "is_event": false, - "is_enum": false, - "enum_variants": [] - } - }, - "id.bonding_curve": { - "field_name": "bonding_curve", - "rust_type_name": "String", - "base_type": "String", - "is_optional": false, - "is_array": false, - "inner_type": null, - "source_path": null, - "resolved_type": null - }, - "id.mint": { - "field_name": "mint", - "rust_type_name": "String", - "base_type": "String", - "is_optional": false, - "is_array": false, - "inner_type": null, - "source_path": null, - "resolved_type": null - }, - "info.is_complete": { - "field_name": "is_complete", - "rust_type_name": "Option < bool >", - "base_type": "Boolean", - "is_optional": true, - "is_array": false, - "inner_type": "bool", - "source_path": null, - "resolved_type": null - }, - "info.name": { - "field_name": "name", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - "info.resolved_image": { - "field_name": "resolved_image", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - "info.symbol": { - "field_name": "symbol", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - "info.uri": { - "field_name": "uri", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - "reserves.current_price_sol": { - "field_name": "current_price_sol", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - "reserves.market_cap_sol": { - "field_name": "market_cap_sol", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - "reserves.real_sol_reserves": { - "field_name": "real_sol_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "reserves.real_token_reserves": { - "field_name": "real_token_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "reserves.token_total_supply": { - "field_name": "token_total_supply", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "reserves.virtual_sol_reserves": { - "field_name": "virtual_sol_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "reserves.virtual_token_reserves": { - "field_name": "virtual_token_reserves", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.average_trade_size": { - "field_name": "average_trade_size", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - "trading.buy_count": { - "field_name": "buy_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.largest_trade": { - "field_name": "largest_trade", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.last_trade_price": { - "field_name": "last_trade_price", - "rust_type_name": "Option < f64 >", - "base_type": "Float", - "is_optional": true, - "is_array": false, - "inner_type": "f64", - "source_path": null, - "resolved_type": null - }, - "trading.last_trade_timestamp": { - "field_name": "last_trade_timestamp", - "rust_type_name": "Option < i64 >", - "base_type": "Timestamp", - "is_optional": true, - "is_array": false, - "inner_type": "i64", - "source_path": null, - "resolved_type": null - }, - "trading.last_whale_address": { - "field_name": "last_whale_address", - "rust_type_name": "Option < String >", - "base_type": "String", - "is_optional": true, - "is_array": false, - "inner_type": "String", - "source_path": null, - "resolved_type": null - }, - "trading.sell_count": { - "field_name": "sell_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.smallest_trade": { - "field_name": "smallest_trade", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.total_buy_exact_sol_volume": { - "field_name": "total_buy_exact_sol_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.total_buy_volume": { - "field_name": "total_buy_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.total_sell_volume": { - "field_name": "total_sell_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.total_trades": { - "field_name": "total_trades", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.total_volume": { - "field_name": "total_volume", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.unique_traders": { - "field_name": "unique_traders", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - }, - "trading.whale_trade_count": { - "field_name": "whale_trade_count", - "rust_type_name": "Option < u64 >", - "base_type": "Integer", - "is_optional": true, - "is_array": false, - "inner_type": "u64", - "source_path": null, - "resolved_type": null - } - }, - "resolver_hooks": [ - { - "account_type": "pump::BondingCurveState", - "strategy": { - "PdaReverseLookup": { - "lookup_name": "default_pda_lookup", - "queue_discriminators": [ - [ - 24, - 30, - 200, - 40, - 5, - 28, - 7, - 119 - ], - [ - 102, - 6, - 61, - 18, - 1, - 218, - 235, - 234 - ], - [ - 51, - 230, - 133, - 164, - 1, - 127, - 131, - 173 - ] - ] - } - } - } - ], - "instruction_hooks": [ - { - "instruction_type": "pump::BuyExactSolInIxState", - "actions": [ - { - "RegisterPdaMapping": { - "pda_field": { - "segments": [ - "accounts", - "bonding_curve" - ], - "offsets": null - }, - "seed_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "lookup_name": "default_pda_lookup" - } - }, - { - "SetField": { - "target_field": "trading.last_trade_timestamp", - "source": { - "FromContext": { - "field": "timestamp" - } - }, - "condition": null - } - } - ], - "lookup_by": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - }, - { - "instruction_type": "pump::BuyIxState", - "actions": [ - { - "RegisterPdaMapping": { - "pda_field": { - "segments": [ - "accounts", - "bonding_curve" - ], - "offsets": null - }, - "seed_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "lookup_name": "default_pda_lookup" - } - }, - { - "SetField": { - "target_field": "trading.last_trade_timestamp", - "source": { - "FromContext": { - "field": "timestamp" - } - }, - "condition": null - } - }, - { - "SetField": { - "target_field": "trading.last_whale_address", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "condition": { - "expression": "data.amount > 1_000_000_000_000", - "parsed": { - "Comparison": { - "field": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "op": "GreaterThan", - "value": 1000000000000 - } - } - } - } - }, - { - "IncrementField": { - "target_field": "trading.whale_trade_count", - "increment_by": 1, - "condition": { - "expression": "data.amount > 1_000_000_000_000", - "parsed": { - "Comparison": { - "field": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "op": "GreaterThan", - "value": 1000000000000 - } - } - } - } - } - ], - "lookup_by": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - }, - { - "instruction_type": "pump::CreateIxState", - "actions": [ - { - "RegisterPdaMapping": { - "pda_field": { - "segments": [ - "accounts", - "bonding_curve" - ], - "offsets": null - }, - "seed_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "lookup_name": "default_pda_lookup" - } - } - ], - "lookup_by": null - }, - { - "instruction_type": "pump::CreateV2IxState", - "actions": [ - { - "RegisterPdaMapping": { - "pda_field": { - "segments": [ - "accounts", - "bonding_curve" - ], - "offsets": null - }, - "seed_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "lookup_name": "default_pda_lookup" - } - } - ], - "lookup_by": null - }, - { - "instruction_type": "pump::SellIxState", - "actions": [ - { - "RegisterPdaMapping": { - "pda_field": { - "segments": [ - "accounts", - "bonding_curve" - ], - "offsets": null - }, - "seed_field": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - }, - "lookup_name": "default_pda_lookup" - } - }, - { - "SetField": { - "target_field": "trading.last_trade_timestamp", - "source": { - "FromContext": { - "field": "timestamp" - } - }, - "condition": null - } - }, - { - "SetField": { - "target_field": "trading.last_whale_address", - "source": { - "FromSource": { - "path": { - "segments": [ - "accounts", - "user" - ], - "offsets": null - }, - "default": null, - "transform": null - } - }, - "condition": { - "expression": "data.amount > 1_000_000_000_000", - "parsed": { - "Comparison": { - "field": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "op": "GreaterThan", - "value": 1000000000000 - } - } - } - } - }, - { - "IncrementField": { - "target_field": "trading.whale_trade_count", - "increment_by": 1, - "condition": { - "expression": "data.amount > 1_000_000_000_000", - "parsed": { - "Comparison": { - "field": { - "segments": [ - "data", - "amount" - ], - "offsets": null - }, - "op": "GreaterThan", - "value": 1000000000000 - } - } - } - } - } - ], - "lookup_by": { - "segments": [ - "accounts", - "mint" - ], - "offsets": null - } - } - ], - "resolver_specs": [ - { - "resolver": { - "url": { - "url_path": "info.uri", - "method": "get", - "extract_path": "image" - } - }, - "input_path": "info.uri", - "strategy": "SetOnce", - "extracts": [ - { - "target_path": "info.resolved_image" - } - ] - } - ], - "computed_fields": [ - "trading.last_trade_price", - "trading.total_volume", - "trading.average_trade_size" - ], - "computed_field_specs": [ - { - "target_path": "trading.last_trade_price", - "expression": { - "Binary": { - "op": "Div", - "left": { - "Paren": { - "expr": { - "Cast": { - "expr": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "reserves.virtual_sol_reserves" - } - }, - "default": 0 - } - }, - "to_type": "f64" - } - } - } - }, - "right": { - "Paren": { - "expr": { - "Cast": { - "expr": { - "MethodCall": { - "expr": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "reserves.virtual_token_reserves" - } - }, - "default": 1 - } - }, - "method": "max", - "args": [ - { - "Literal": { - "value": 1 - } - } - ] - } - }, - "to_type": "f64" - } - } - } - } - } - }, - "result_type": "Option < f64 >" - }, - { - "target_path": "trading.total_volume", - "expression": { - "Binary": { - "op": "Add", - "left": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "trading.total_buy_volume" - } - }, - "default": 0 - } - }, - "right": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "trading.total_sell_volume" - } - }, - "default": 0 - } - } - } - }, - "result_type": "Option < u64 >" - }, - { - "target_path": "trading.average_trade_size", - "expression": { - "Binary": { - "op": "Div", - "left": { - "Cast": { - "expr": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "trading.total_volume" - } - }, - "default": 0 - } - }, - "to_type": "f64" - } - }, - "right": { - "Cast": { - "expr": { - "MethodCall": { - "expr": { - "UnwrapOr": { - "expr": { - "FieldRef": { - "path": "trading.total_trades" - } - }, - "default": 1 - } - }, - "method": "max", - "args": [ - { - "Literal": { - "value": 1 - } - } - ] - } - }, - "to_type": "f64" - } - } - } - }, - "result_type": "Option < f64 >" - } - ], - "content_hash": "1bc6f8116859f576b2730b2de2bf9fab4090643faa9bf7bf814d31642ff7fc38", - "views": [] - } - ], - "pdas": { - "pump": { - "amm_global_config": { - "name": "amm_global_config", - "seeds": [ - { - "type": "literal", - "value": "global_config" - } - ] - }, - "associated_bonding_curve": { - "name": "associated_bonding_curve", - "seeds": [ - { - "type": "accountRef", - "account_name": "bonding_curve" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "bonding_curve": { - "name": "bonding_curve", - "seeds": [ - { - "type": "literal", - "value": "bonding-curve" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ] - }, - "creator_vault": { - "name": "creator_vault", - "seeds": [ - { - "type": "literal", - "value": "creator-vault" - }, - { - "type": "accountRef", - "account_name": "bonding_curve.creator" - } - ] - }, - "event_authority": { - "name": "event_authority", - "seeds": [ - { - "type": "literal", - "value": "__event_authority" - } - ] - }, - "fee_config": { - "name": "fee_config", - "seeds": [ - { - "type": "literal", - "value": "fee_config" - }, - { - "type": "bytes", - "value": [ - 1, - 86, - 224, - 246, - 147, - 102, - 90, - 207, - 68, - 219, - 21, - 104, - 191, - 23, - 91, - 170, - 81, - 137, - 203, - 151, - 245, - 210, - 255, - 59, - 101, - 93, - 43, - 182, - 253, - 109, - 24, - 176 - ] - } - ] - }, - "global": { - "name": "global", - "seeds": [ - { - "type": "literal", - "value": "global" - } - ] - }, - "global_incentive_token_account": { - "name": "global_incentive_token_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "global_volume_accumulator" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "global_params": { - "name": "global_params", - "seeds": [ - { - "type": "literal", - "value": "global-params" - } - ], - "program_id": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - "global_volume_accumulator": { - "name": "global_volume_accumulator", - "seeds": [ - { - "type": "literal", - "value": "global_volume_accumulator" - } - ] - }, - "lp_mint": { - "name": "lp_mint", - "seeds": [ - { - "type": "literal", - "value": "pool_lp_mint" - }, - { - "type": "accountRef", - "account_name": "pool" - } - ] - }, - "mayhem_state": { - "name": "mayhem_state", - "seeds": [ - { - "type": "literal", - "value": "mayhem-state" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - "mayhem_token_vault": { - "name": "mayhem_token_vault", - "seeds": [ - { - "type": "accountRef", - "account_name": "sol_vault_authority" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "metadata": { - "name": "metadata", - "seeds": [ - { - "type": "literal", - "value": "metadata" - }, - { - "type": "bytes", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - }, - { - "type": "accountRef", - "account_name": "mint" - } - ] - }, - "mint_authority": { - "name": "mint_authority", - "seeds": [ - { - "type": "literal", - "value": "mint-authority" - } - ] - }, - "pool": { - "name": "pool", - "seeds": [ - { - "type": "literal", - "value": "pool" - }, - { - "type": "literal", - "value": "\u0000\u0000" - }, - { - "type": "accountRef", - "account_name": "pool_authority" - }, - { - "type": "accountRef", - "account_name": "mint" - }, - { - "type": "accountRef", - "account_name": "wsol_mint" - } - ] - }, - "pool_authority": { - "name": "pool_authority", - "seeds": [ - { - "type": "literal", - "value": "pool-authority" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ] - }, - "pool_authority_mint_account": { - "name": "pool_authority_mint_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "pool_authority" - }, - { - "type": "accountRef", - "account_name": "mint" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ] - }, - "pool_authority_wsol_account": { - "name": "pool_authority_wsol_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "pool_authority" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "wsol_mint" - } - ] - }, - "pool_base_token_account": { - "name": "pool_base_token_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "pool" - }, - { - "type": "accountRef", - "account_name": "mint" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ] - }, - "pool_quote_token_account": { - "name": "pool_quote_token_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "pool" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "wsol_mint" - } - ] - }, - "program_signer": { - "name": "program_signer", - "seeds": [] - }, - "pump_amm_event_authority": { - "name": "pump_amm_event_authority", - "seeds": [ - { - "type": "literal", - "value": "__event_authority" - } - ] - }, - "sharing_config": { - "name": "sharing_config", - "seeds": [ - { - "type": "literal", - "value": "sharing-config" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - }, - "sol_vault": { - "name": "sol_vault", - "seeds": [ - { - "type": "literal", - "value": "sol-vault" - } - ], - "program_id": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - "sol_vault_authority": { - "name": "sol_vault_authority", - "seeds": [ - { - "type": "literal", - "value": "sol-vault" - } - ], - "program_id": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - "user_ata": { - "name": "user_ata", - "seeds": [ - { - "type": "accountRef", - "account_name": "user" - }, - { - "type": "accountRef", - "account_name": "token_program" - }, - { - "type": "accountRef", - "account_name": "mint" - } - ], - "program_id": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "user_pool_token_account": { - "name": "user_pool_token_account", - "seeds": [ - { - "type": "accountRef", - "account_name": "pool_authority" - }, - { - "type": "accountRef", - "account_name": "token_2022_program" - }, - { - "type": "accountRef", - "account_name": "lp_mint" - } - ] - }, - "user_volume_accumulator": { - "name": "user_volume_accumulator", - "seeds": [ - { - "type": "literal", - "value": "user_volume_accumulator" - }, - { - "type": "accountRef", - "account_name": "user" - } - ] - } - } - }, - "instructions": [ - { - "name": "admin_set_creator", - "discriminator": [ - 69, - 25, - 171, - 142, - 57, - 239, - 13, - 4 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "admin_set_creator_authority", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "creator", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Allows Global::admin_set_creator_authority to override the bonding curve creator" - ] - }, - { - "name": "admin_set_idl_authority", - "discriminator": [ - 8, - 217, - 96, - 231, - 144, - 104, - 192, - 5 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "authority", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "idl_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "program_signer", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "program_signer" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "idl_authority", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "admin_update_token_incentives", - "discriminator": [ - 209, - 11, - 115, - 87, - 213, - 23, - 124, - 204 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "authority", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "global_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "global_incentive_token_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global_incentive_token_account" - }, - "is_optional": false - }, - { - "name": "associated_token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "day_number", - "type": "u64" - }, - { - "name": "pump_token_supply_per_day", - "type": "u64" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "buy", - "discriminator": [ - 102, - 6, - 61, - 18, - 1, - 218, - 235, - 234 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "fee_recipient", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_user", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - "is_optional": false - }, - { - "name": "global_volume_accumulator", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "fee_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "fee_config" - }, - "is_optional": false - }, - { - "name": "fee_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "max_sol_cost", - "type": "u64" - }, - { - "name": "track_volume", - "type": "OptionBool" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Buys tokens from a bonding curve." - ] - }, - { - "name": "buy_exact_sol_in", - "discriminator": [ - 56, - 252, - 116, - 8, - 158, - 223, - 205, - 95 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "fee_recipient", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_user", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - "is_optional": false - }, - { - "name": "global_volume_accumulator", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "fee_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "fee_config" - }, - "is_optional": false - }, - { - "name": "fee_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "spendable_sol_in", - "type": "u64" - }, - { - "name": "min_tokens_out", - "type": "u64" - }, - { - "name": "track_volume", - "type": "OptionBool" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Given a budget of spendable SOL, buy at least min_tokens_out tokens.", - "Fees are deducted from spendable_sol_in.", - "", - "# Quote formulas", - "Where:", - "- total_fee_bps = protocol_fee_bps + creator_fee_bps (creator_fee_bps is 0 if no creator)", - "- floor(a/b) = a / b (integer division)", - "- ceil(a/b) = (a + b - 1) / b", - "", - "SOL → tokens quote", - "To calculate tokens_out for a given spendable_sol_in:", - "1. net_sol = floor(spendable_sol_in * 10_000 / (10_000 + total_fee_bps))", - "2. fees = ceil(net_sol * protocol_fee_bps / 10_000) + ceil(net_sol * creator_fee_bps / 10_000) (creator_fee_bps is 0 if no creator)", - "3. if net_sol + fees > spendable_sol_in: net_sol = net_sol - (net_sol + fees - spendable_sol_in)", - "4. tokens_out = floor((net_sol - 1) * virtual_token_reserves / (virtual_sol_reserves + net_sol - 1))", - "", - "Reverse quote (tokens → SOL)", - "To calculate spendable_sol_in for a desired number of tokens:", - "1. net_sol = ceil(tokens * virtual_sol_reserves / (virtual_token_reserves - tokens)) + 1", - "2. spendable_sol_in = ceil(net_sol * (10_000 + total_fee_bps) / 10_000)", - "", - "Rent", - "Separately make sure the instruction's payer has enough SOL to cover rent for:", - "- creator_vault: rent.minimum_balance(0)", - "- user_volume_accumulator: rent.minimum_balance(UserVolumeAccumulator::LEN)" - ] - }, - { - "name": "claim_token_incentives", - "discriminator": [ - 16, - 4, - 71, - 28, - 204, - 1, - 40, - 27 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "user", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user_ata", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_ata" - }, - "is_optional": false - }, - { - "name": "global_volume_accumulator", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "global_incentive_token_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global_incentive_token_account" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "associated_token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - "is_optional": false - }, - { - "name": "payer", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "close_user_volume_accumulator", - "discriminator": [ - 249, - 69, - 164, - 218, - 150, - 103, - 84, - 138 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "collect_creator_fee", - "discriminator": [ - 20, - 22, - 86, - 123, - 198, - 28, - 219, - 132 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "creator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Collects creator_fee from creator_vault to the coin creator account" - ] - }, - { - "name": "create", - "discriminator": [ - 24, - 30, - 200, - 40, - 5, - 28, - 7, - 119 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "mint_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "mint_authority" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "mpl_token_metadata", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" - }, - "is_optional": false - }, - { - "name": "metadata", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "metadata" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" - }, - "is_optional": false - }, - { - "name": "associated_token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "is_optional": false - }, - { - "name": "rent", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "SysvarRent111111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "name", - "type": "String" - }, - { - "name": "symbol", - "type": "String" - }, - { - "name": "uri", - "type": "String" - }, - { - "name": "creator", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Creates a new coin and bonding curve." - ] - }, - { - "name": "create_v2", - "discriminator": [ - 214, - 144, - 76, - 236, - 95, - 139, - 49, - 180 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "mint_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "mint_authority" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - "is_optional": false - }, - { - "name": "associated_token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "is_optional": false - }, - { - "name": "mayhem_program_id", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "known", - "address": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - "is_optional": false - }, - { - "name": "global_params", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global_params" - }, - "is_optional": false - }, - { - "name": "sol_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "sol_vault" - }, - "is_optional": false - }, - { - "name": "mayhem_state", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "mayhem_state" - }, - "is_optional": false - }, - { - "name": "mayhem_token_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "name", - "type": "String" - }, - { - "name": "symbol", - "type": "String" - }, - { - "name": "uri", - "type": "String" - }, - { - "name": "creator", - "type": "solana_pubkey::Pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Creates a new spl-22 coin and bonding curve." - ] - }, - { - "name": "distribute_creator_fees", - "discriminator": [ - 165, - 114, - 103, - 0, - 121, - 206, - 247, - 81 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "sharing_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "sharing_config" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Distributes creator fees to shareholders based on their share percentages", - "The creator vault needs to have at least the minimum distributable amount to distribute fees", - "This can be checked with the get_minimum_distributable_fee instruction" - ] - }, - { - "name": "extend_account", - "discriminator": [ - 234, - 102, - 194, - 203, - 150, - 72, - 62, - 229 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Extends the size of program-owned accounts" - ] - }, - { - "name": "get_minimum_distributable_fee", - "discriminator": [ - 117, - 225, - 127, - 202, - 134, - 95, - 68, - 35 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "sharing_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "sharing_config" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Permissionless instruction to check the minimum required fees for distribution", - "Returns the minimum required balance from the creator_vault and whether distribution can proceed" - ] - }, - { - "name": "init_user_volume_accumulator", - "discriminator": [ - 94, - 6, - 202, - 115, - 255, - 96, - 232, - 183 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "payer", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "initialize", - "discriminator": [ - 175, - 175, - 109, - 31, - 13, - 152, - 155, - 237 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Creates the global state." - ] - }, - { - "name": "migrate", - "discriminator": [ - 155, - 234, - 231, - 146, - 236, - 158, - 162, - 30 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "withdraw_authority", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" - }, - "is_optional": false - }, - { - "name": "pump_amm", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA" - }, - "is_optional": false - }, - { - "name": "pool", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool" - }, - "is_optional": false - }, - { - "name": "pool_authority", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool_authority" - }, - "is_optional": false - }, - { - "name": "pool_authority_mint_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool_authority_mint_account" - }, - "is_optional": false - }, - { - "name": "pool_authority_wsol_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool_authority_wsol_account" - }, - "is_optional": false - }, - { - "name": "amm_global_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "amm_global_config" - }, - "is_optional": false - }, - { - "name": "wsol_mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "So11111111111111111111111111111111111111112" - }, - "is_optional": false - }, - { - "name": "lp_mint", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "lp_mint" - }, - "is_optional": false - }, - { - "name": "user_pool_token_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_pool_token_account" - }, - "is_optional": false - }, - { - "name": "pool_base_token_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool_base_token_account" - }, - "is_optional": false - }, - { - "name": "pool_quote_token_account", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "pool_quote_token_account" - }, - "is_optional": false - }, - { - "name": "token_2022_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - "is_optional": false - }, - { - "name": "associated_token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - "is_optional": false - }, - { - "name": "pump_amm_event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "pump_amm_event_authority" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Migrates liquidity to pump_amm if the bonding curve is complete" - ] - }, - { - "name": "migrate_bonding_curve_creator", - "discriminator": [ - 87, - 124, - 52, - 191, - 52, - 38, - 214, - 232 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "sharing_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "sharing_config" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "sell", - "discriminator": [ - 51, - 230, - 133, - 164, - 1, - 127, - 131, - 173 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "fee_recipient", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "associated_bonding_curve" - }, - "is_optional": false - }, - { - "name": "associated_user", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "user", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "system_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "11111111111111111111111111111111" - }, - "is_optional": false - }, - { - "name": "creator_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "creator_vault" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - "is_optional": false - }, - { - "name": "fee_config", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "fee_config" - }, - "is_optional": false - }, - { - "name": "fee_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "min_sol_output", - "type": "u64" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Sells tokens into a bonding curve." - ] - }, - { - "name": "set_creator", - "discriminator": [ - 254, - 148, - 255, - 112, - 207, - 142, - 170, - 165 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "set_creator_authority", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "metadata", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "metadata" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "creator", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Allows Global::set_creator_authority to set the bonding curve creator from Metaplex metadata or input argument" - ] - }, - { - "name": "set_mayhem_virtual_params", - "discriminator": [ - 61, - 169, - 188, - 191, - 153, - 149, - 42, - 97 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "sol_vault_authority", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "sol_vault_authority" - }, - "is_optional": false - }, - { - "name": "mayhem_token_vault", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "mayhem_token_vault" - }, - "is_optional": false - }, - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "global", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "token_program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "known", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "set_metaplex_creator", - "discriminator": [ - 138, - 96, - 174, - 217, - 48, - 85, - 197, - 246 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "mint", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "metadata", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "metadata" - }, - "is_optional": false - }, - { - "name": "bonding_curve", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "bonding_curve" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Syncs the bonding curve creator with the Metaplex metadata creator if it exists" - ] - }, - { - "name": "set_params", - "discriminator": [ - 27, - 234, - 178, - 52, - 147, - 2, - 187, - 141 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "authority", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "solana_pubkey::Pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "set_creator_authority", - "type": "solana_pubkey::Pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "docs": [ - "Sets the global state parameters." - ] - }, - { - "name": "set_reserved_fee_recipients", - "discriminator": [ - 111, - 172, - 162, - 232, - 114, - 89, - 213, - 142 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "authority", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "whitelist_pda", - "type": "solana_pubkey::Pubkey" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "sync_user_volume_accumulator", - "discriminator": [ - 86, - 31, - 192, - 87, - 163, - 87, - 79, - 238 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "user", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "global_volume_accumulator", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "global_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "user_volume_accumulator", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "user_volume_accumulator" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "toggle_create_v2", - "discriminator": [ - 28, - 255, - 230, - 240, - 172, - 107, - 203, - 171 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "authority", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "toggle_mayhem_mode", - "discriminator": [ - 1, - 9, - 111, - 208, - 100, - 31, - 255, - 163 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "authority", - "is_signer": true, - "is_writable": true, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "update_global_authority", - "discriminator": [ - 227, - 181, - 74, - 196, - 208, - 21, - 97, - 213 - ], - "discriminator_size": 8, - "accounts": [ - { - "name": "global", - "is_signer": false, - "is_writable": true, - "resolution": { - "category": "pdaRef", - "pda_name": "global" - }, - "is_optional": false - }, - { - "name": "authority", - "is_signer": true, - "is_writable": false, - "resolution": { - "category": "signer" - }, - "is_optional": false - }, - { - "name": "new_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - }, - { - "name": "event_authority", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "pdaRef", - "pda_name": "event_authority" - }, - "is_optional": false - }, - { - "name": "program", - "is_signer": false, - "is_writable": false, - "resolution": { - "category": "userProvided" - }, - "is_optional": false - } - ], - "args": [], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "program_id": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - } - ], - "content_hash": "f7a952f5de70efe998814a8d532f022a21724f1ca47d5dcc1d72ffdcc99a6578" -} \ No newline at end of file diff --git a/stacks/pumpfun/Cargo.lock b/stacks/pumpfun/Cargo.lock deleted file mode 100644 index 8b8b35d..0000000 --- a/stacks/pumpfun/Cargo.lock +++ /dev/null @@ -1,3981 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom 0.2.17", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - -[[package]] -name = "anyhow" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "autotools" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" -dependencies = [ - "cc", -] - -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core 0.4.5", - "bytes", - "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit 0.7.3", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 1.0.2", - "tower 0.5.3", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" -dependencies = [ - "axum-core 0.5.6", - "bytes", - "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit 0.8.4", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "serde_core", - "sync_wrapper 1.0.2", - "tower 0.5.3", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" -dependencies = [ - "bytes", - "futures-core", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "borsh" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" -dependencies = [ - "borsh-derive 0.10.4", - "hashbrown 0.12.3", -] - -[[package]] -name = "borsh" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" -dependencies = [ - "borsh-derive 1.6.0", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "borsh-derive" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" -dependencies = [ - "once_cell", - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" - -[[package]] -name = "bytemuck" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" - -[[package]] -name = "cc" -version = "1.2.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "clap" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", - "terminal_size", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "clap_lex" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.12", -] - -[[package]] -name = "data-encoding" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "dispose" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425462ba555fb628fbb7d9750d52f01fc9132d855996f34f02b7164b1b62860f" -dependencies = [ - "dispose-derive", -] - -[[package]] -name = "dispose-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c32e3e8ab1b6ee2e06418f40f94f315d82b35157eb1d2322a6e20a4b15106b84" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "find-msvc-tools" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" - -[[package]] -name = "five8" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" -dependencies = [ - "five8_core", -] - -[[package]] -name = "five8_const" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" -dependencies = [ - "five8_core", -] - -[[package]] -name = "five8_core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi", - "wasip2", - "wasm-bindgen", -] - -[[package]] -name = "h2" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.13.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.4.0", - "indexmap 2.13.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.4.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http 1.4.0", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.10", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" -dependencies = [ - "atomic-waker", - "bytes", - "futures-channel", - "futures-core", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "pin-utils", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http 1.4.0", - "hyper 1.8.1", - "hyper-util", - "rustls 0.23.36", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.4", - "tower-service", - "webpki-roots 1.0.5", -] - -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper 1.8.1", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "hyper 1.8.1", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite", - "socket2 0.6.1", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "hyperstack" -version = "0.5.3" -dependencies = [ - "anyhow", - "bs58", - "bytemuck", - "dotenvy", - "hyperstack-interpreter", - "hyperstack-macros", - "hyperstack-sdk", - "hyperstack-server", - "reqwest 0.11.27", - "serde", - "serde_json", - "smallvec", - "tokio", - "tracing", - "yellowstone-vixen", - "yellowstone-vixen-core", - "yellowstone-vixen-yellowstone-grpc-source", -] - -[[package]] -name = "hyperstack-interpreter" -version = "0.5.3" -dependencies = [ - "bs58", - "dashmap", - "futures", - "hex", - "hyperstack-macros", - "lru", - "prost 0.13.5", - "prost-reflect", - "prost-types 0.13.5", - "reqwest 0.12.28", - "serde", - "serde_json", - "sha2", - "solana-pubkey", - "tonic 0.12.3", - "tracing", -] - -[[package]] -name = "hyperstack-macros" -version = "0.5.3" -dependencies = [ - "bs58", - "hex", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "syn 2.0.114", -] - -[[package]] -name = "hyperstack-sdk" -version = "0.5.3" -dependencies = [ - "anyhow", - "flate2", - "futures-util", - "pin-project-lite", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tokio-tungstenite 0.21.0", - "tracing", -] - -[[package]] -name = "hyperstack-server" -version = "0.5.3" -dependencies = [ - "anyhow", - "base64 0.22.1", - "bytes", - "dashmap", - "flate2", - "futures-util", - "hex", - "http-body-util", - "hyper 1.8.1", - "hyper-util", - "hyperstack-interpreter", - "lru", - "serde", - "serde_json", - "smallvec", - "thiserror 1.0.69", - "tokio", - "tokio-tungstenite 0.28.0", - "tokio-util", - "tracing", - "tracing-subscriber", - "uuid", - "yellowstone-vixen", - "yellowstone-vixen-core", - "yellowstone-vixen-proto", - "yellowstone-vixen-yellowstone-grpc-source", -] - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.180" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "matchit" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "openssl-probe" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.12", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap 2.13.0", -] - -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap 2.13.0", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.114", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro2" -version = "1.0.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", -] - -[[package]] -name = "prost" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" -dependencies = [ - "bytes", - "prost-derive 0.14.3", -] - -[[package]] -name = "prost-build" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" -dependencies = [ - "heck", - "itertools", - "log", - "multimap", - "once_cell", - "petgraph 0.7.1", - "prettyplease", - "prost 0.13.5", - "prost-types 0.13.5", - "regex", - "syn 2.0.114", - "tempfile", -] - -[[package]] -name = "prost-build" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" -dependencies = [ - "heck", - "itertools", - "log", - "multimap", - "petgraph 0.8.3", - "prettyplease", - "prost 0.14.3", - "prost-types 0.14.3", - "pulldown-cmark", - "pulldown-cmark-to-cmark", - "regex", - "syn 2.0.114", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "prost-derive" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "prost-reflect" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89455ef41ed200cafc47c76c552ee7792370ac420497e551f16123a9135f76e" -dependencies = [ - "prost 0.14.3", - "prost-types 0.14.3", -] - -[[package]] -name = "prost-types" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" -dependencies = [ - "prost 0.13.5", -] - -[[package]] -name = "prost-types" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" -dependencies = [ - "prost 0.14.3", -] - -[[package]] -name = "protobuf-src" -version = "1.1.0+21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" -dependencies = [ - "autotools", -] - -[[package]] -name = "pulldown-cmark" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" -dependencies = [ - "bitflags 2.10.0", - "memchr", - "unicase", -] - -[[package]] -name = "pulldown-cmark-to-cmark" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" -dependencies = [ - "pulldown-cmark", -] - -[[package]] -name = "pumpfun-stack" -version = "0.1.0" -dependencies = [ - "borsh 1.6.0", - "hyperstack", - "serde", - "solana-pubkey", -] - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls 0.23.36", - "socket2 0.5.10", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash", - "rustls 0.23.36", - "rustls-pki-types", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.5.10", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "quote" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "regex" -version = "1.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.8.1", - "hyper-rustls 0.27.7", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls 0.23.36", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio", - "tokio-rustls 0.26.4", - "tower 0.5.3", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 1.0.5", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustix" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls" -version = "0.23.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki 0.103.9", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ryu" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" - -[[package]] -name = "schannel" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "security-framework" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "solana-atomic-u64" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" -dependencies = [ - "parking_lot 0.12.5", -] - -[[package]] -name = "solana-decode-error" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" -dependencies = [ - "num-traits", -] - -[[package]] -name = "solana-define-syscall" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" - -[[package]] -name = "solana-hash" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" -dependencies = [ - "five8", - "js-sys", - "solana-atomic-u64", - "solana-sanitize", - "wasm-bindgen", -] - -[[package]] -name = "solana-pubkey" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" -dependencies = [ - "borsh 0.10.4", - "borsh 1.6.0", - "five8", - "five8_const", - "getrandom 0.2.17", - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", -] - -[[package]] -name = "solana-sanitize" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" - -[[package]] -name = "solana-sha256-hasher" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" -dependencies = [ - "sha2", - "solana-define-syscall", - "solana-hash", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tempfile" -version = "3.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" -dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "terminal_size" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" -dependencies = [ - "rustix", - "windows-sys 0.60.2", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" -dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot 0.12.5", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.6.1", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls 0.23.36", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" -dependencies = [ - "futures-util", - "log", - "rustls 0.22.4", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.25.0", - "tungstenite 0.21.0", - "webpki-roots 0.26.11", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.28.0", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.23.10+spec-1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" -dependencies = [ - "indexmap 2.13.0", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.6+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" -dependencies = [ - "winnow", -] - -[[package]] -name = "tonic" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" -dependencies = [ - "async-stream", - "async-trait", - "axum 0.7.9", - "base64 0.22.1", - "bytes", - "flate2", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.8.1", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost 0.13.5", - "socket2 0.5.10", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", - "zstd", -] - -[[package]] -name = "tonic" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" -dependencies = [ - "async-trait", - "axum 0.8.8", - "base64 0.22.1", - "bytes", - "flate2", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.8.1", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "rustls-native-certs", - "socket2 0.6.1", - "sync_wrapper 1.0.2", - "tokio", - "tokio-rustls 0.26.4", - "tokio-stream", - "tower 0.5.3", - "tower-layer", - "tower-service", - "tracing", - "zstd", -] - -[[package]] -name = "tonic-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build 0.13.5", - "prost-types 0.13.5", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tonic-build" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" -dependencies = [ - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tonic-health" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a82868bf299e0a1d2e8dce0dc33a46c02d6f045b2c1f1d6cc8dc3d0bf1812ef" -dependencies = [ - "prost 0.14.3", - "tokio", - "tokio-stream", - "tonic 0.14.2", - "tonic-prost", -] - -[[package]] -name = "tonic-prost" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" -dependencies = [ - "bytes", - "prost 0.14.3", - "tonic 0.14.2", -] - -[[package]] -name = "tonic-prost-build" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build 0.14.3", - "prost-types 0.14.3", - "quote", - "syn 2.0.114", - "tempfile", - "tonic-build 0.14.2", -] - -[[package]] -name = "tonic-reflection" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" -dependencies = [ - "prost 0.13.5", - "prost-types 0.13.5", - "tokio", - "tokio-stream", - "tonic 0.12.3", -] - -[[package]] -name = "topograph" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4ea92bd6b8d73d7987848398691db79e81e6f77f1f56e959ebcee077adebf3" -dependencies = [ - "crossbeam", - "dispose", - "futures-util", - "log", - "num_cpus", - "parking_lot 0.11.2", - "pin-project", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 2.13.0", - "pin-project-lite", - "slab", - "sync_wrapper 1.0.2", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" -dependencies = [ - "bitflags 2.10.0", - "bytes", - "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "iri-string", - "pin-project-lite", - "tower 0.5.3", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-serde" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.4.0", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.22.4", - "rustls-pki-types", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" -dependencies = [ - "bytes", - "data-encoding", - "http 1.4.0", - "httparse", - "log", - "rand 0.9.2", - "sha1", - "thiserror 2.0.18", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" -dependencies = [ - "getrandom 0.3.4", - "js-sys", - "serde_core", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" -dependencies = [ - "cfg-if", - "futures-util", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.114", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "web-sys" -version = "0.3.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.5", -] - -[[package]] -name = "webpki-roots" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" - -[[package]] -name = "writeable" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - -[[package]] -name = "yellowstone-grpc-client" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a9ba079420757406d603cd5f27b8c6f6e94c415c30a43b19ef4a0c4a5ff0d1" -dependencies = [ - "bytes", - "futures", - "thiserror 1.0.69", - "tonic 0.14.2", - "tonic-health", - "yellowstone-grpc-proto", -] - -[[package]] -name = "yellowstone-grpc-proto" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbba21b6046eff1c9be2366a70d7264763b10004306e874b54409503a39e5f1e" -dependencies = [ - "anyhow", - "prost 0.14.3", - "prost-types 0.14.3", - "protobuf-src", - "tonic 0.14.2", - "tonic-build 0.14.2", - "tonic-prost", - "tonic-prost-build", -] - -[[package]] -name = "yellowstone-vixen" -version = "0.6.0-alpha.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336589be67d11e88654aedc107a95f3682cbad8f12bde7becb3d356c655dc7df" -dependencies = [ - "async-trait", - "clap", - "futures-channel", - "futures-util", - "serde", - "smallvec", - "thiserror 1.0.69", - "tokio", - "topograph", - "tracing", - "yellowstone-grpc-client", - "yellowstone-grpc-proto", - "yellowstone-vixen-core", -] - -[[package]] -name = "yellowstone-vixen-core" -version = "0.6.0-alpha.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2760099b3e0810026ec77bb886bbe62bffa70819eea4defb62d480366d828b" -dependencies = [ - "borsh 1.6.0", - "bs58", - "clap", - "serde", - "thiserror 1.0.69", - "yellowstone-grpc-proto", -] - -[[package]] -name = "yellowstone-vixen-proto" -version = "0.6.0-alpha.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf77c701ee80620b7f625dacda0b12573c6cb351f6144f55a193093f1cfee6" -dependencies = [ - "prost 0.13.5", - "prost-types 0.13.5", - "protobuf-src", - "tonic 0.12.3", - "tonic-build 0.12.3", - "tonic-reflection", -] - -[[package]] -name = "yellowstone-vixen-yellowstone-grpc-source" -version = "0.6.0-alpha.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55e258404c8e93f9a4eccc5af74cf4795f06de230d73ce99a8a7b31d649124a" -dependencies = [ - "async-trait", - "clap", - "futures-util", - "serde", - "tokio", - "tracing", - "yellowstone-grpc-client", - "yellowstone-grpc-proto", - "yellowstone-vixen", - "yellowstone-vixen-core", -] - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zmij" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65" - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/stacks/pumpfun/Cargo.toml b/stacks/pumpfun/Cargo.toml deleted file mode 100644 index 14a2b12..0000000 --- a/stacks/pumpfun/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "pumpfun-stack" -version = "0.1.0" -edition = "2021" -publish = false - -[lib] -path = "src/lib.rs" - -[dependencies] -hyperstack = { path = "../../hyperstack", features = ["full"] } - -# Required for user struct definitions and IDL-generated types -serde = { version = "1.0", features = ["derive"] } -borsh = { version = "1.5", features = ["derive"] } -solana-pubkey = { version = "2.2", features = ["serde", "borsh"] } diff --git a/stacks/pumpfun/hyperstack.toml b/stacks/pumpfun/hyperstack.toml deleted file mode 100644 index 22643de..0000000 --- a/stacks/pumpfun/hyperstack.toml +++ /dev/null @@ -1,10 +0,0 @@ -[project] -name = "pumpfun" - -[[stacks]] -name = "pumpfun" -stack = "PumpfunStream" -url = "wss://pumpfun.stack.usehyperstack.com" -typescript_output_file = "../sdk/typescript/src/pumpfun/index.ts" -rust_output_crate = "../sdk/rust/src/pumpfun" -rust_module = true diff --git a/stacks/pumpfun/idl/pump.json b/stacks/pumpfun/idl/pump.json deleted file mode 100644 index 5aff348..0000000 --- a/stacks/pumpfun/idl/pump.json +++ /dev/null @@ -1,6836 +0,0 @@ -{ - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", - "metadata": { - "name": "pump", - "version": "0.1.0", - "spec": "0.1.0", - "description": "Created with Anchor" - }, - "instructions": [ - { - "name": "admin_set_creator", - "docs": [ - "Allows Global::admin_set_creator_authority to override the bonding curve creator" - ], - "discriminator": [ - 69, - 25, - 171, - 142, - 57, - 239, - 13, - 4 - ], - "accounts": [ - { - "name": "admin_set_creator_authority", - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "mint" - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "admin_set_idl_authority", - "discriminator": [ - 8, - 217, - 96, - 231, - 144, - 104, - 192, - 5 - ], - "accounts": [ - { - "name": "authority", - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "idl_account", - "writable": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "program_signer", - "pda": { - "seeds": [] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "idl_authority", - "type": "pubkey" - } - ] - }, - { - "name": "admin_update_token_incentives", - "discriminator": [ - 209, - 11, - 115, - 87, - 213, - 23, - 124, - 204 - ], - "accounts": [ - { - "name": "authority", - "writable": true, - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "global_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - } - ] - } - }, - { - "name": "mint" - }, - { - "name": "global_incentive_token_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "global_volume_accumulator" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "associated_token_program", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "day_number", - "type": "u64" - }, - { - "name": "pump_token_supply_per_day", - "type": "u64" - } - ] - }, - { - "name": "buy", - "docs": [ - "Buys tokens from a bonding curve." - ], - "discriminator": [ - 102, - 6, - 61, - 18, - 1, - 218, - 235, - 234 - ], - "accounts": [ - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "fee_recipient", - "writable": true - }, - { - "name": "mint" - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "associated_user", - "writable": true - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program" - }, - { - "name": "creator_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "bonding_curve.creator", - "account": "BondingCurve" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "global_volume_accumulator", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - } - ] - } - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "fee_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 102, - 101, - 101, - 95, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "const", - "value": [ - 1, - 86, - 224, - 246, - 147, - 102, - 90, - 207, - 68, - 219, - 21, - 104, - 191, - 23, - 91, - 170, - 81, - 137, - 203, - 151, - 245, - 210, - 255, - 59, - 101, - 93, - 43, - 182, - 253, - 109, - 24, - 176 - ] - } - ], - "program": { - "kind": "account", - "path": "fee_program" - } - } - }, - { - "name": "fee_program", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "max_sol_cost", - "type": "u64" - }, - { - "name": "track_volume", - "type": { - "defined": { - "name": "OptionBool" - } - } - } - ] - }, - { - "name": "buy_exact_sol_in", - "docs": [ - "Given a budget of spendable SOL, buy at least min_tokens_out tokens.", - "Fees are deducted from spendable_sol_in.", - "", - "# Quote formulas", - "Where:", - "- total_fee_bps = protocol_fee_bps + creator_fee_bps (creator_fee_bps is 0 if no creator)", - "- floor(a/b) = a / b (integer division)", - "- ceil(a/b) = (a + b - 1) / b", - "", - "SOL → tokens quote", - "To calculate tokens_out for a given spendable_sol_in:", - "1. net_sol = floor(spendable_sol_in * 10_000 / (10_000 + total_fee_bps))", - "2. fees = ceil(net_sol * protocol_fee_bps / 10_000) + ceil(net_sol * creator_fee_bps / 10_000) (creator_fee_bps is 0 if no creator)", - "3. if net_sol + fees > spendable_sol_in: net_sol = net_sol - (net_sol + fees - spendable_sol_in)", - "4. tokens_out = floor((net_sol - 1) * virtual_token_reserves / (virtual_sol_reserves + net_sol - 1))", - "", - "Reverse quote (tokens → SOL)", - "To calculate spendable_sol_in for a desired number of tokens:", - "1. net_sol = ceil(tokens * virtual_sol_reserves / (virtual_token_reserves - tokens)) + 1", - "2. spendable_sol_in = ceil(net_sol * (10_000 + total_fee_bps) / 10_000)", - "", - "Rent", - "Separately make sure the instruction's payer has enough SOL to cover rent for:", - "- creator_vault: rent.minimum_balance(0)", - "- user_volume_accumulator: rent.minimum_balance(UserVolumeAccumulator::LEN)" - ], - "discriminator": [ - 56, - 252, - 116, - 8, - 158, - 223, - 205, - 95 - ], - "accounts": [ - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "fee_recipient", - "writable": true - }, - { - "name": "mint" - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "associated_user", - "writable": true - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program" - }, - { - "name": "creator_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "bonding_curve.creator", - "account": "BondingCurve" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "global_volume_accumulator", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - } - ] - } - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "fee_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 102, - 101, - 101, - 95, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "const", - "value": [ - 1, - 86, - 224, - 246, - 147, - 102, - 90, - 207, - 68, - 219, - 21, - 104, - 191, - 23, - 91, - 170, - 81, - 137, - 203, - 151, - 245, - 210, - 255, - 59, - 101, - 93, - 43, - 182, - 253, - 109, - 24, - 176 - ] - } - ], - "program": { - "kind": "account", - "path": "fee_program" - } - } - }, - { - "name": "fee_program", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - } - ], - "args": [ - { - "name": "spendable_sol_in", - "type": "u64" - }, - { - "name": "min_tokens_out", - "type": "u64" - }, - { - "name": "track_volume", - "type": { - "defined": { - "name": "OptionBool" - } - } - } - ] - }, - { - "name": "claim_token_incentives", - "discriminator": [ - 16, - 4, - 71, - 28, - 204, - 1, - 40, - 27 - ], - "accounts": [ - { - "name": "user" - }, - { - "name": "user_ata", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "user" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "global_volume_accumulator", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - } - ] - } - }, - { - "name": "global_incentive_token_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "global_volume_accumulator" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "mint", - "relations": [ - "global_volume_accumulator" - ] - }, - { - "name": "token_program" - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "associated_token_program", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "payer", - "writable": true, - "signer": true - } - ], - "args": [] - }, - { - "name": "close_user_volume_accumulator", - "discriminator": [ - 249, - 69, - 164, - 218, - 150, - 103, - 84, - 138 - ], - "accounts": [ - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "collect_creator_fee", - "docs": [ - "Collects creator_fee from creator_vault to the coin creator account" - ], - "discriminator": [ - 20, - 22, - 86, - 123, - 198, - 28, - 219, - 132 - ], - "accounts": [ - { - "name": "creator", - "writable": true - }, - { - "name": "creator_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "creator" - } - ] - } - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "create", - "docs": [ - "Creates a new coin and bonding curve." - ], - "discriminator": [ - 24, - 30, - 200, - 40, - 5, - 28, - 7, - 119 - ], - "accounts": [ - { - "name": "mint", - "writable": true, - "signer": true - }, - { - "name": "mint_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 105, - 110, - 116, - 45, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "const", - "value": [ - 6, - 221, - 246, - 225, - 215, - 101, - 161, - 147, - 217, - 203, - 225, - 70, - 206, - 235, - 121, - 172, - 28, - 180, - 133, - 237, - 95, - 91, - 55, - 145, - 58, - 140, - 245, - 133, - 126, - 255, - 0, - 169 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "mpl_token_metadata", - "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" - }, - { - "name": "metadata", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 101, - 116, - 97, - 100, - 97, - 116, - 97 - ] - }, - { - "kind": "const", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "account", - "path": "mpl_token_metadata" - } - } - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program", - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" - }, - { - "name": "associated_token_program", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - { - "name": "rent", - "address": "SysvarRent111111111111111111111111111111111" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "create_v2", - "docs": [ - "Creates a new spl-22 coin and bonding curve." - ], - "discriminator": [ - 214, - 144, - 76, - 236, - 95, - 139, - 49, - 180 - ], - "accounts": [ - { - "name": "mint", - "writable": true, - "signer": true - }, - { - "name": "mint_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 105, - 110, - 116, - 45, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - { - "name": "associated_token_program", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - { - "name": "mayhem_program_id", - "writable": true, - "address": "MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e" - }, - { - "name": "global_params", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 45, - 112, - 97, - 114, - 97, - 109, - 115 - ] - } - ], - "program": { - "kind": "const", - "value": [ - 5, - 42, - 229, - 215, - 167, - 218, - 167, - 36, - 166, - 234, - 176, - 167, - 41, - 84, - 145, - 133, - 90, - 212, - 160, - 103, - 22, - 96, - 103, - 76, - 78, - 3, - 69, - 89, - 128, - 61, - 101, - 163 - ] - } - } - }, - { - "name": "sol_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 115, - 111, - 108, - 45, - 118, - 97, - 117, - 108, - 116 - ] - } - ], - "program": { - "kind": "const", - "value": [ - 5, - 42, - 229, - 215, - 167, - 218, - 167, - 36, - 166, - 234, - 176, - 167, - 41, - 84, - 145, - 133, - 90, - 212, - 160, - 103, - 22, - 96, - 103, - 76, - 78, - 3, - 69, - 89, - 128, - 61, - 101, - 163 - ] - } - } - }, - { - "name": "mayhem_state", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 97, - 121, - 104, - 101, - 109, - 45, - 115, - 116, - 97, - 116, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 5, - 42, - 229, - 215, - 167, - 218, - 167, - 36, - 166, - 234, - 176, - 167, - 41, - 84, - 145, - 133, - 90, - 212, - 160, - 103, - 22, - 96, - 103, - 76, - 78, - 3, - 69, - 89, - 128, - 61, - 101, - 163 - ] - } - } - }, - { - "name": "mayhem_token_vault", - "writable": true - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - }, - { - "name": "distribute_creator_fees", - "docs": [ - "Distributes creator fees to shareholders based on their share percentages", - "The creator vault needs to have at least the minimum distributable amount to distribute fees", - "This can be checked with the get_minimum_distributable_fee instruction" - ], - "discriminator": [ - 165, - 114, - 103, - 0, - 121, - 206, - 247, - 81 - ], - "accounts": [ - { - "name": "mint", - "relations": [ - "sharing_config" - ] - }, - { - "name": "bonding_curve", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "sharing_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 115, - 104, - 97, - 114, - 105, - 110, - 103, - 45, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 12, - 53, - 255, - 169, - 5, - 90, - 142, - 86, - 141, - 168, - 247, - 188, - 7, - 86, - 21, - 39, - 76, - 241, - 201, - 44, - 164, - 31, - 64, - 0, - 156, - 81, - 106, - 164, - 20, - 194, - 124, - 112 - ] - } - } - }, - { - "name": "creator_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "bonding_curve.creator", - "account": "BondingCurve" - } - ] - } - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - } - ], - "args": [], - "returns": { - "defined": { - "name": "DistributeCreatorFeesEvent" - } - } - }, - { - "name": "extend_account", - "docs": [ - "Extends the size of program-owned accounts" - ], - "discriminator": [ - 234, - 102, - 194, - 203, - 150, - 72, - 62, - 229 - ], - "accounts": [ - { - "name": "account", - "writable": true - }, - { - "name": "user", - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "get_minimum_distributable_fee", - "docs": [ - "Permissionless instruction to check the minimum required fees for distribution", - "Returns the minimum required balance from the creator_vault and whether distribution can proceed" - ], - "discriminator": [ - 117, - 225, - 127, - 202, - 134, - 95, - 68, - 35 - ], - "accounts": [ - { - "name": "mint", - "relations": [ - "sharing_config" - ] - }, - { - "name": "bonding_curve", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "sharing_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 115, - 104, - 97, - 114, - 105, - 110, - 103, - 45, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 12, - 53, - 255, - 169, - 5, - 90, - 142, - 86, - 141, - 168, - 247, - 188, - 7, - 86, - 21, - 39, - 76, - 241, - 201, - 44, - 164, - 31, - 64, - 0, - 156, - 81, - 106, - 164, - 20, - 194, - 124, - 112 - ] - } - } - }, - { - "name": "creator_vault", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "bonding_curve.creator", - "account": "BondingCurve" - } - ] - } - } - ], - "args": [], - "returns": { - "defined": { - "name": "MinimumDistributableFeeEvent" - } - } - }, - { - "name": "init_user_volume_accumulator", - "discriminator": [ - 94, - 6, - 202, - 115, - 255, - 96, - 232, - 183 - ], - "accounts": [ - { - "name": "payer", - "writable": true, - "signer": true - }, - { - "name": "user" - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "initialize", - "docs": [ - "Creates the global state." - ], - "discriminator": [ - 175, - 175, - 109, - 31, - 13, - 152, - 155, - 237 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - } - ], - "args": [] - }, - { - "name": "migrate", - "docs": [ - "Migrates liquidity to pump_amm if the bonding curve is complete" - ], - "discriminator": [ - 155, - 234, - 231, - 146, - 236, - 158, - 162, - 30 - ], - "accounts": [ - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "withdraw_authority", - "writable": true, - "relations": [ - "global" - ] - }, - { - "name": "mint" - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "account", - "path": "mint" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "user", - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "token_program", - "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" - }, - { - "name": "pump_amm", - "address": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA" - }, - { - "name": "pool", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 112, - 111, - 111, - 108 - ] - }, - { - "kind": "const", - "value": [ - 0, - 0 - ] - }, - { - "kind": "account", - "path": "pool_authority" - }, - { - "kind": "account", - "path": "mint" - }, - { - "kind": "account", - "path": "wsol_mint" - } - ], - "program": { - "kind": "account", - "path": "pump_amm" - } - } - }, - { - "name": "pool_authority", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 112, - 111, - 111, - 108, - 45, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "pool_authority_mint_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "pool_authority" - }, - { - "kind": "account", - "path": "mint" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "account", - "path": "associated_token_program" - } - } - }, - { - "name": "pool_authority_wsol_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "pool_authority" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "wsol_mint" - } - ], - "program": { - "kind": "account", - "path": "associated_token_program" - } - } - }, - { - "name": "amm_global_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 99, - 111, - 110, - 102, - 105, - 103 - ] - } - ], - "program": { - "kind": "account", - "path": "pump_amm" - } - } - }, - { - "name": "wsol_mint", - "address": "So11111111111111111111111111111111111111112" - }, - { - "name": "lp_mint", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 112, - 111, - 111, - 108, - 95, - 108, - 112, - 95, - 109, - 105, - 110, - 116 - ] - }, - { - "kind": "account", - "path": "pool" - } - ], - "program": { - "kind": "account", - "path": "pump_amm" - } - } - }, - { - "name": "user_pool_token_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "pool_authority" - }, - { - "kind": "account", - "path": "token_2022_program" - }, - { - "kind": "account", - "path": "lp_mint" - } - ], - "program": { - "kind": "account", - "path": "associated_token_program" - } - } - }, - { - "name": "pool_base_token_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "pool" - }, - { - "kind": "account", - "path": "mint" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "account", - "path": "associated_token_program" - } - } - }, - { - "name": "pool_quote_token_account", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "pool" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "wsol_mint" - } - ], - "program": { - "kind": "account", - "path": "associated_token_program" - } - } - }, - { - "name": "token_2022_program", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - { - "name": "associated_token_program", - "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" - }, - { - "name": "pump_amm_event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ], - "program": { - "kind": "account", - "path": "pump_amm" - } - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "migrate_bonding_curve_creator", - "discriminator": [ - 87, - 124, - 52, - 191, - 52, - 38, - 214, - 232 - ], - "accounts": [ - { - "name": "mint", - "relations": [ - "sharing_config" - ] - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "sharing_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 115, - 104, - 97, - 114, - 105, - 110, - 103, - 45, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 12, - 53, - 255, - 169, - 5, - 90, - 142, - 86, - 141, - 168, - 247, - 188, - 7, - 86, - 21, - 39, - 76, - 241, - 201, - 44, - 164, - 31, - 64, - 0, - 156, - 81, - 106, - 164, - 20, - 194, - 124, - 112 - ] - } - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "sell", - "docs": [ - "Sells tokens into a bonding curve." - ], - "discriminator": [ - 51, - 230, - 133, - 164, - 1, - 127, - 131, - 173 - ], - "accounts": [ - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "fee_recipient", - "writable": true - }, - { - "name": "mint" - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "associated_bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "bonding_curve" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "associated_user", - "writable": true - }, - { - "name": "user", - "writable": true, - "signer": true - }, - { - "name": "system_program", - "address": "11111111111111111111111111111111" - }, - { - "name": "creator_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 45, - 118, - 97, - 117, - 108, - 116 - ] - }, - { - "kind": "account", - "path": "bonding_curve.creator", - "account": "BondingCurve" - } - ] - } - }, - { - "name": "token_program" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program", - "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P" - }, - { - "name": "fee_config", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 102, - 101, - 101, - 95, - 99, - 111, - 110, - 102, - 105, - 103 - ] - }, - { - "kind": "const", - "value": [ - 1, - 86, - 224, - 246, - 147, - 102, - 90, - 207, - 68, - 219, - 21, - 104, - 191, - 23, - 91, - 170, - 81, - 137, - 203, - 151, - 245, - 210, - 255, - 59, - 101, - 93, - 43, - 182, - 253, - 109, - 24, - 176 - ] - } - ], - "program": { - "kind": "account", - "path": "fee_program" - } - } - }, - { - "name": "fee_program", - "address": "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ" - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "min_sol_output", - "type": "u64" - } - ] - }, - { - "name": "set_creator", - "docs": [ - "Allows Global::set_creator_authority to set the bonding curve creator from Metaplex metadata or input argument" - ], - "discriminator": [ - 254, - 148, - 255, - 112, - 207, - 142, - 170, - 165 - ], - "accounts": [ - { - "name": "set_creator_authority", - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "mint" - }, - { - "name": "metadata", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 101, - 116, - 97, - 100, - 97, - 116, - 97 - ] - }, - { - "kind": "const", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - } - } - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "creator", - "type": "pubkey" - } - ] - }, - { - "name": "set_mayhem_virtual_params", - "discriminator": [ - 61, - 169, - 188, - 191, - 153, - 149, - 42, - 97 - ], - "accounts": [ - { - "name": "sol_vault_authority", - "writable": true, - "signer": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 115, - 111, - 108, - 45, - 118, - 97, - 117, - 108, - 116 - ] - } - ], - "program": { - "kind": "const", - "value": [ - 5, - 42, - 229, - 215, - 167, - 218, - 167, - 36, - 166, - 234, - 176, - 167, - 41, - 84, - 145, - 133, - 90, - 212, - 160, - 103, - 22, - 96, - 103, - 76, - 78, - 3, - 69, - 89, - 128, - 61, - 101, - 163 - ] - } - } - }, - { - "name": "mayhem_token_vault", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "account", - "path": "sol_vault_authority" - }, - { - "kind": "account", - "path": "token_program" - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 140, - 151, - 37, - 143, - 78, - 36, - 137, - 241, - 187, - 61, - 16, - 41, - 20, - 142, - 13, - 131, - 11, - 90, - 19, - 153, - 218, - 255, - 16, - 132, - 4, - 142, - 123, - 216, - 219, - 233, - 248, - 89 - ] - } - } - }, - { - "name": "mint" - }, - { - "name": "global", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "token_program", - "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "set_metaplex_creator", - "docs": [ - "Syncs the bonding curve creator with the Metaplex metadata creator if it exists" - ], - "discriminator": [ - 138, - 96, - 174, - 217, - 48, - 85, - 197, - 246 - ], - "accounts": [ - { - "name": "mint" - }, - { - "name": "metadata", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 109, - 101, - 116, - 97, - 100, - 97, - 116, - 97 - ] - }, - { - "kind": "const", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - }, - { - "kind": "account", - "path": "mint" - } - ], - "program": { - "kind": "const", - "value": [ - 11, - 112, - 101, - 177, - 227, - 209, - 124, - 69, - 56, - 157, - 82, - 127, - 107, - 4, - 195, - 205, - 88, - 184, - 108, - 115, - 26, - 160, - 253, - 181, - 73, - 182, - 209, - 188, - 3, - 248, - 41, - 70 - ] - } - } - }, - { - "name": "bonding_curve", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 98, - 111, - 110, - 100, - 105, - 110, - 103, - 45, - 99, - 117, - 114, - 118, - 101 - ] - }, - { - "kind": "account", - "path": "mint" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "set_params", - "docs": [ - "Sets the global state parameters." - ], - "discriminator": [ - 27, - 234, - 178, - 52, - 147, - 2, - 187, - 141 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "authority", - "writable": true, - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - } - ] - }, - { - "name": "set_reserved_fee_recipients", - "discriminator": [ - 111, - 172, - 162, - 232, - 114, - 89, - 213, - 142 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "authority", - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "whitelist_pda", - "type": "pubkey" - } - ] - }, - { - "name": "sync_user_volume_accumulator", - "discriminator": [ - 86, - 31, - 192, - 87, - 163, - 87, - 79, - 238 - ], - "accounts": [ - { - "name": "user" - }, - { - "name": "global_volume_accumulator", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - } - ] - } - }, - { - "name": "user_volume_accumulator", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 117, - 115, - 101, - 114, - 95, - 118, - 111, - 108, - 117, - 109, - 101, - 95, - 97, - 99, - 99, - 117, - 109, - 117, - 108, - 97, - 116, - 111, - 114 - ] - }, - { - "kind": "account", - "path": "user" - } - ] - } - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - }, - { - "name": "toggle_create_v2", - "discriminator": [ - 28, - 255, - 230, - 240, - 172, - 107, - 203, - 171 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "authority", - "writable": true, - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ] - }, - { - "name": "toggle_mayhem_mode", - "discriminator": [ - 1, - 9, - 111, - 208, - 100, - 31, - 255, - 163 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "authority", - "writable": true, - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [ - { - "name": "enabled", - "type": "bool" - } - ] - }, - { - "name": "update_global_authority", - "discriminator": [ - 227, - 181, - 74, - 196, - 208, - 21, - 97, - 213 - ], - "accounts": [ - { - "name": "global", - "writable": true, - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 103, - 108, - 111, - 98, - 97, - 108 - ] - } - ] - } - }, - { - "name": "authority", - "signer": true, - "relations": [ - "global" - ] - }, - { - "name": "new_authority" - }, - { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, - 95, - 101, - 118, - 101, - 110, - 116, - 95, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121 - ] - } - ] - } - }, - { - "name": "program" - } - ], - "args": [] - } - ], - "accounts": [ - { - "name": "BondingCurve", - "discriminator": [ - 23, - 183, - 248, - 55, - 96, - 216, - 172, - 96 - ] - }, - { - "name": "FeeConfig", - "discriminator": [ - 143, - 52, - 146, - 187, - 219, - 123, - 76, - 155 - ] - }, - { - "name": "Global", - "discriminator": [ - 167, - 232, - 232, - 177, - 200, - 108, - 114, - 127 - ] - }, - { - "name": "GlobalVolumeAccumulator", - "discriminator": [ - 202, - 42, - 246, - 43, - 142, - 190, - 30, - 255 - ] - }, - { - "name": "SharingConfig", - "discriminator": [ - 216, - 74, - 9, - 0, - 56, - 140, - 93, - 75 - ] - }, - { - "name": "UserVolumeAccumulator", - "discriminator": [ - 86, - 255, - 112, - 14, - 102, - 53, - 154, - 250 - ] - } - ], - "events": [ - { - "name": "AdminSetCreatorEvent", - "discriminator": [ - 64, - 69, - 192, - 104, - 29, - 30, - 25, - 107 - ] - }, - { - "name": "AdminSetIdlAuthorityEvent", - "discriminator": [ - 245, - 59, - 70, - 34, - 75, - 185, - 109, - 92 - ] - }, - { - "name": "AdminUpdateTokenIncentivesEvent", - "discriminator": [ - 147, - 250, - 108, - 120, - 247, - 29, - 67, - 222 - ] - }, - { - "name": "ClaimTokenIncentivesEvent", - "discriminator": [ - 79, - 172, - 246, - 49, - 205, - 91, - 206, - 232 - ] - }, - { - "name": "CloseUserVolumeAccumulatorEvent", - "discriminator": [ - 146, - 159, - 189, - 172, - 146, - 88, - 56, - 244 - ] - }, - { - "name": "CollectCreatorFeeEvent", - "discriminator": [ - 122, - 2, - 127, - 1, - 14, - 191, - 12, - 175 - ] - }, - { - "name": "CompleteEvent", - "discriminator": [ - 95, - 114, - 97, - 156, - 212, - 46, - 152, - 8 - ] - }, - { - "name": "CompletePumpAmmMigrationEvent", - "discriminator": [ - 189, - 233, - 93, - 185, - 92, - 148, - 234, - 148 - ] - }, - { - "name": "CreateEvent", - "discriminator": [ - 27, - 114, - 169, - 77, - 222, - 235, - 99, - 118 - ] - }, - { - "name": "DistributeCreatorFeesEvent", - "discriminator": [ - 165, - 55, - 129, - 112, - 4, - 179, - 202, - 40 - ] - }, - { - "name": "ExtendAccountEvent", - "discriminator": [ - 97, - 97, - 215, - 144, - 93, - 146, - 22, - 124 - ] - }, - { - "name": "InitUserVolumeAccumulatorEvent", - "discriminator": [ - 134, - 36, - 13, - 72, - 232, - 101, - 130, - 216 - ] - }, - { - "name": "MigrateBondingCurveCreatorEvent", - "discriminator": [ - 155, - 167, - 104, - 220, - 213, - 108, - 243, - 3 - ] - }, - { - "name": "MinimumDistributableFeeEvent", - "discriminator": [ - 168, - 216, - 132, - 239, - 235, - 182, - 49, - 52 - ] - }, - { - "name": "ReservedFeeRecipientsEvent", - "discriminator": [ - 43, - 188, - 250, - 18, - 221, - 75, - 187, - 95 - ] - }, - { - "name": "SetCreatorEvent", - "discriminator": [ - 237, - 52, - 123, - 37, - 245, - 251, - 72, - 210 - ] - }, - { - "name": "SetMetaplexCreatorEvent", - "discriminator": [ - 142, - 203, - 6, - 32, - 127, - 105, - 191, - 162 - ] - }, - { - "name": "SetParamsEvent", - "discriminator": [ - 223, - 195, - 159, - 246, - 62, - 48, - 143, - 131 - ] - }, - { - "name": "SyncUserVolumeAccumulatorEvent", - "discriminator": [ - 197, - 122, - 167, - 124, - 116, - 81, - 91, - 255 - ] - }, - { - "name": "TradeEvent", - "discriminator": [ - 189, - 219, - 127, - 211, - 78, - 230, - 97, - 238 - ] - }, - { - "name": "UpdateGlobalAuthorityEvent", - "discriminator": [ - 182, - 195, - 137, - 42, - 35, - 206, - 207, - 247 - ] - }, - { - "name": "UpdateMayhemVirtualParamsEvent", - "discriminator": [ - 117, - 123, - 228, - 182, - 161, - 168, - 220, - 214 - ] - } - ], - "errors": [ - { - "code": 6000, - "name": "NotAuthorized", - "msg": "The given account is not authorized to execute this instruction." - }, - { - "code": 6001, - "name": "AlreadyInitialized", - "msg": "The program is already initialized." - }, - { - "code": 6002, - "name": "TooMuchSolRequired", - "msg": "slippage: Too much SOL required to buy the given amount of tokens." - }, - { - "code": 6003, - "name": "TooLittleSolReceived", - "msg": "slippage: Too little SOL received to sell the given amount of tokens." - }, - { - "code": 6004, - "name": "MintDoesNotMatchBondingCurve", - "msg": "The mint does not match the bonding curve." - }, - { - "code": 6005, - "name": "BondingCurveComplete", - "msg": "The bonding curve has completed and liquidity migrated to raydium." - }, - { - "code": 6006, - "name": "BondingCurveNotComplete", - "msg": "The bonding curve has not completed." - }, - { - "code": 6007, - "name": "NotInitialized", - "msg": "The program is not initialized." - }, - { - "code": 6008, - "name": "WithdrawTooFrequent", - "msg": "Withdraw too frequent" - }, - { - "code": 6009, - "name": "NewSizeShouldBeGreaterThanCurrentSize", - "msg": "new_size should be > current_size" - }, - { - "code": 6010, - "name": "AccountTypeNotSupported", - "msg": "Account type not supported" - }, - { - "code": 6011, - "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply", - "msg": "initial_real_token_reserves should be less than token_total_supply" - }, - { - "code": 6012, - "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves", - "msg": "initial_virtual_token_reserves should be greater than initial_real_token_reserves" - }, - { - "code": 6013, - "name": "FeeBasisPointsGreaterThanMaximum", - "msg": "fee_basis_points greater than maximum" - }, - { - "code": 6014, - "name": "AllZerosWithdrawAuthority", - "msg": "Withdraw authority cannot be set to System Program ID" - }, - { - "code": 6015, - "name": "PoolMigrationFeeShouldBeLessThanFinalRealSolReserves", - "msg": "pool_migration_fee should be less than final_real_sol_reserves" - }, - { - "code": 6016, - "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees", - "msg": "pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES" - }, - { - "code": 6017, - "name": "DisabledWithdraw", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6018, - "name": "DisabledMigrate", - "msg": "Migrate instruction is disabled" - }, - { - "code": 6019, - "name": "InvalidCreator", - "msg": "Invalid creator pubkey" - }, - { - "code": 6020, - "name": "BuyZeroAmount", - "msg": "Buy zero amount" - }, - { - "code": 6021, - "name": "NotEnoughTokensToBuy", - "msg": "Not enough tokens to buy" - }, - { - "code": 6022, - "name": "SellZeroAmount", - "msg": "Sell zero amount" - }, - { - "code": 6023, - "name": "NotEnoughTokensToSell", - "msg": "Not enough tokens to sell" - }, - { - "code": 6024, - "name": "Overflow", - "msg": "Overflow" - }, - { - "code": 6025, - "name": "Truncation", - "msg": "Truncation" - }, - { - "code": 6026, - "name": "DivisionByZero", - "msg": "Division by zero" - }, - { - "code": 6027, - "name": "NotEnoughRemainingAccounts", - "msg": "Not enough remaining accounts" - }, - { - "code": 6028, - "name": "AllFeeRecipientsShouldBeNonZero", - "msg": "All fee recipients should be non-zero" - }, - { - "code": 6029, - "name": "UnsortedNotUniqueFeeRecipients", - "msg": "Unsorted or not unique fee recipients" - }, - { - "code": 6030, - "name": "CreatorShouldNotBeZero", - "msg": "Creator should not be zero" - }, - { - "code": 6031, - "name": "StartTimeInThePast" - }, - { - "code": 6032, - "name": "EndTimeInThePast" - }, - { - "code": 6033, - "name": "EndTimeBeforeStartTime" - }, - { - "code": 6034, - "name": "TimeRangeTooLarge" - }, - { - "code": 6035, - "name": "EndTimeBeforeCurrentDay" - }, - { - "code": 6036, - "name": "SupplyUpdateForFinishedRange" - }, - { - "code": 6037, - "name": "DayIndexAfterEndIndex" - }, - { - "code": 6038, - "name": "DayInActiveRange" - }, - { - "code": 6039, - "name": "InvalidIncentiveMint" - }, - { - "code": 6040, - "name": "BuyNotEnoughSolToCoverRent", - "msg": "Buy: Not enough SOL to cover for rent exemption." - }, - { - "code": 6041, - "name": "BuyNotEnoughSolToCoverFees", - "msg": "Buy: Not enough SOL to cover for fees." - }, - { - "code": 6042, - "name": "BuySlippageBelowMinTokensOut", - "msg": "Slippage: Would buy less tokens than expected min_tokens_out" - }, - { - "code": 6043, - "name": "NameTooLong" - }, - { - "code": 6044, - "name": "SymbolTooLong" - }, - { - "code": 6045, - "name": "UriTooLong" - }, - { - "code": 6046, - "name": "CreateV2Disabled" - }, - { - "code": 6047, - "name": "CpitializeMayhemFailed" - }, - { - "code": 6048, - "name": "MayhemModeDisabled" - }, - { - "code": 6049, - "name": "CreatorMigratedToSharingConfig", - "msg": "creator has been migrated to sharing config, use pump_fees::reset_fee_sharing_config instead" - }, - { - "code": 6050, - "name": "UnableToDistributeCreatorVaultMigratedToSharingConfig", - "msg": "creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead" - }, - { - "code": 6051, - "name": "SharingConfigNotActive", - "msg": "Sharing config is not active" - }, - { - "code": 6052, - "name": "UnableToDistributeCreatorFeesToExecutableRecipient", - "msg": "The recipient account is executable, so it cannot receive lamports, remove it from the team first" - }, - { - "code": 6053, - "name": "BondingCurveAndSharingConfigCreatorMismatch", - "msg": "Bonding curve creator does not match sharing config" - }, - { - "code": 6054, - "name": "ShareholdersAndRemainingAccountsMismatch", - "msg": "Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order" - }, - { - "code": 6055, - "name": "InvalidShareBps", - "msg": "Share bps must be greater than 0" - } - ], - "types": [ - { - "name": "AdminSetCreatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "old_creator", - "type": "pubkey" - }, - { - "name": "new_creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "AdminSetIdlAuthorityEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "idl_authority", - "type": "pubkey" - } - ] - } - }, - { - "name": "AdminUpdateTokenIncentivesEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "day_number", - "type": "u64" - }, - { - "name": "token_supply_per_day", - "type": "u64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "BondingCurve", - "type": { - "kind": "struct", - "fields": [ - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "complete", - "type": "bool" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "ClaimTokenIncentivesEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "amount", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - } - ] - } - }, - { - "name": "CloseUserVolumeAccumulatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "CollectCreatorFeeEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "creator_fee", - "type": "u64" - } - ] - } - }, - { - "name": "CompleteEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "CompletePumpAmmMigrationEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "mint_amount", - "type": "u64" - }, - { - "name": "sol_amount", - "type": "u64" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "pool", - "type": "pubkey" - } - ] - } - }, - { - "name": "ConfigStatus", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Paused" - }, - { - "name": "Active" - } - ] - } - }, - { - "name": "CreateEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "uri", - "type": "string" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "token_program", - "type": "pubkey" - }, - { - "name": "is_mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "DistributeCreatorFeesEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "sharing_config", - "type": "pubkey" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "shareholders", - "type": { - "vec": { - "defined": { - "name": "Shareholder" - } - } - } - }, - { - "name": "distributed", - "type": "u64" - } - ] - } - }, - { - "name": "ExtendAccountEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "account", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "current_size", - "type": "u64" - }, - { - "name": "new_size", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "FeeConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "bump", - "type": "u8" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "flat_fees", - "type": { - "defined": { - "name": "Fees" - } - } - }, - { - "name": "fee_tiers", - "type": { - "vec": { - "defined": { - "name": "FeeTier" - } - } - } - } - ] - } - }, - { - "name": "FeeTier", - "type": { - "kind": "struct", - "fields": [ - { - "name": "market_cap_lamports_threshold", - "type": "u128" - }, - { - "name": "fees", - "type": { - "defined": { - "name": "Fees" - } - } - } - ] - } - }, - { - "name": "Fees", - "type": { - "kind": "struct", - "fields": [ - { - "name": "lp_fee_bps", - "type": "u64" - }, - { - "name": "protocol_fee_bps", - "type": "u64" - }, - { - "name": "creator_fee_bps", - "type": "u64" - } - ] - } - }, - { - "name": "Global", - "type": { - "kind": "struct", - "fields": [ - { - "name": "initialized", - "docs": [ - "Unused" - ], - "type": "bool" - }, - { - "name": "authority", - "type": "pubkey" - }, - { - "name": "fee_recipient", - "type": "pubkey" - }, - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "docs": [ - "Unused" - ], - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - }, - { - "name": "create_v2_enabled", - "type": "bool" - }, - { - "name": "whitelist_pda", - "type": "pubkey" - }, - { - "name": "reserved_fee_recipient", - "type": "pubkey" - }, - { - "name": "mayhem_mode_enabled", - "type": "bool" - }, - { - "name": "reserved_fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - } - ] - } - }, - { - "name": "GlobalVolumeAccumulator", - "type": { - "kind": "struct", - "fields": [ - { - "name": "start_time", - "type": "i64" - }, - { - "name": "end_time", - "type": "i64" - }, - { - "name": "seconds_in_a_day", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "total_token_supply", - "type": { - "array": [ - "u64", - 30 - ] - } - }, - { - "name": "sol_volumes", - "type": { - "array": [ - "u64", - 30 - ] - } - } - ] - } - }, - { - "name": "InitUserVolumeAccumulatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "payer", - "type": "pubkey" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "MigrateBondingCurveCreatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "sharing_config", - "type": "pubkey" - }, - { - "name": "old_creator", - "type": "pubkey" - }, - { - "name": "new_creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "MinimumDistributableFeeEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "minimum_required", - "type": "u64" - }, - { - "name": "distributable_fees", - "type": "u64" - }, - { - "name": "can_distribute", - "type": "bool" - } - ] - } - }, - { - "name": "OptionBool", - "type": { - "kind": "struct", - "fields": [ - "bool" - ] - } - }, - { - "name": "ReservedFeeRecipientsEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "reserved_fee_recipient", - "type": "pubkey" - }, - { - "name": "reserved_fee_recipients", - "type": { - "array": [ - "pubkey", - 7 - ] - } - } - ] - } - }, - { - "name": "SetCreatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "SetMetaplexCreatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "bonding_curve", - "type": "pubkey" - }, - { - "name": "metadata", - "type": "pubkey" - }, - { - "name": "creator", - "type": "pubkey" - } - ] - } - }, - { - "name": "SetParamsEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "initial_virtual_token_reserves", - "type": "u64" - }, - { - "name": "initial_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "initial_real_token_reserves", - "type": "u64" - }, - { - "name": "final_real_sol_reserves", - "type": "u64" - }, - { - "name": "token_total_supply", - "type": "u64" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "withdraw_authority", - "type": "pubkey" - }, - { - "name": "enable_migrate", - "type": "bool" - }, - { - "name": "pool_migration_fee", - "type": "u64" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "fee_recipients", - "type": { - "array": [ - "pubkey", - 8 - ] - } - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "set_creator_authority", - "type": "pubkey" - }, - { - "name": "admin_set_creator_authority", - "type": "pubkey" - } - ] - } - }, - { - "name": "Shareholder", - "type": { - "kind": "struct", - "fields": [ - { - "name": "address", - "type": "pubkey" - }, - { - "name": "share_bps", - "type": "u16" - } - ] - } - }, - { - "name": "SharingConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "bump", - "type": "u8" - }, - { - "name": "version", - "type": "u8" - }, - { - "name": "status", - "type": { - "defined": { - "name": "ConfigStatus" - } - } - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "admin", - "type": "pubkey" - }, - { - "name": "admin_revoked", - "type": "bool" - }, - { - "name": "shareholders", - "type": { - "vec": { - "defined": { - "name": "Shareholder" - } - } - } - } - ] - } - }, - { - "name": "SyncUserVolumeAccumulatorEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "total_claimed_tokens_before", - "type": "u64" - }, - { - "name": "total_claimed_tokens_after", - "type": "u64" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "TradeEvent", - "docs": [ - "ix_name: \"buy\" | \"sell\" | \"buy_exact_sol_in\"" - ], - "type": { - "kind": "struct", - "fields": [ - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "sol_amount", - "type": "u64" - }, - { - "name": "token_amount", - "type": "u64" - }, - { - "name": "is_buy", - "type": "bool" - }, - { - "name": "user", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "fee_recipient", - "type": "pubkey" - }, - { - "name": "fee_basis_points", - "type": "u64" - }, - { - "name": "fee", - "type": "u64" - }, - { - "name": "creator", - "type": "pubkey" - }, - { - "name": "creator_fee_basis_points", - "type": "u64" - }, - { - "name": "creator_fee", - "type": "u64" - }, - { - "name": "track_volume", - "type": "bool" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - }, - { - "name": "ix_name", - "type": "string" - }, - { - "name": "mayhem_mode", - "type": "bool" - } - ] - } - }, - { - "name": "UpdateGlobalAuthorityEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "global", - "type": "pubkey" - }, - { - "name": "authority", - "type": "pubkey" - }, - { - "name": "new_authority", - "type": "pubkey" - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "UpdateMayhemVirtualParamsEvent", - "type": { - "kind": "struct", - "fields": [ - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "virtual_token_reserves", - "type": "u64" - }, - { - "name": "virtual_sol_reserves", - "type": "u64" - }, - { - "name": "new_virtual_token_reserves", - "type": "u64" - }, - { - "name": "new_virtual_sol_reserves", - "type": "u64" - }, - { - "name": "real_token_reserves", - "type": "u64" - }, - { - "name": "real_sol_reserves", - "type": "u64" - } - ] - } - }, - { - "name": "UserVolumeAccumulator", - "type": { - "kind": "struct", - "fields": [ - { - "name": "user", - "type": "pubkey" - }, - { - "name": "needs_claim", - "type": "bool" - }, - { - "name": "total_unclaimed_tokens", - "type": "u64" - }, - { - "name": "total_claimed_tokens", - "type": "u64" - }, - { - "name": "current_sol_volume", - "type": "u64" - }, - { - "name": "last_update_timestamp", - "type": "i64" - }, - { - "name": "has_total_claimed_tokens", - "type": "bool" - } - ] - } - } - ] -} diff --git a/stacks/pumpfun/src/lib.rs b/stacks/pumpfun/src/lib.rs deleted file mode 100644 index 46bf5a0..0000000 --- a/stacks/pumpfun/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -mod stack; - -pub use stack::pumpfun_stream::*; diff --git a/stacks/pumpfun/src/stack.rs b/stacks/pumpfun/src/stack.rs deleted file mode 100644 index b7490a0..0000000 --- a/stacks/pumpfun/src/stack.rs +++ /dev/null @@ -1,255 +0,0 @@ -use hyperstack::macros::hyperstack; - -#[hyperstack(idl = "idl/pump.json")] -pub mod pumpfun_stream { - use hyperstack::macros::Stream; - use serde::{Deserialize, Serialize}; - - // Entity definition using IDL-generated types - #[entity(name = "PumpfunToken")] - pub struct PumpfunToken { - pub id: TokenId, - pub info: TokenInfo, - pub reserves: ReserveState, - pub trading: TradingMetrics, - pub events: TokenEvents, - - // Snapshot the entire bonding curve account state with field transformations - // The resolver (resolve_bonding_curve_key) handles the lookup from bonding_curve address to mint - // - // Field Transformations: - // - creator: HexEncode - Converts the 32-byte pubkey array to a readable hex string - // - // Available Transformations: - // - HexEncode: Converts byte arrays to hex strings - // - HexDecode: Converts hex strings to byte arrays - // - ToString: Converts any value to string representation - // - ToNumber: Converts string representations to numbers - #[snapshot(strategy = LastWrite, transforms = [(creator, HexEncode)])] - pub bonding_curve_snapshot: Option, - } - - #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenId { - #[from_instruction([pump_sdk::instructions::Create::mint, pump_sdk::instructions::CreateV2::mint], primary_key, strategy = SetOnce)] - pub mint: String, - - #[map(pump_sdk::accounts::BondingCurve::__account_address, lookup_index( - register_from = [ - (pump_sdk::instructions::Create, accounts::bonding_curve, accounts::mint), - (pump_sdk::instructions::CreateV2, accounts::bonding_curve, accounts::mint), - (pump_sdk::instructions::Buy, accounts::bonding_curve, accounts::mint), - (pump_sdk::instructions::BuyExactSolIn, accounts::bonding_curve, accounts::mint), - (pump_sdk::instructions::Sell, accounts::bonding_curve, accounts::mint) - ] - ), strategy = SetOnce)] - pub bonding_curve: String, - } - - #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenInfo { - #[from_instruction([pump_sdk::instructions::Create::name, pump_sdk::instructions::CreateV2::name], strategy = SetOnce)] - pub name: Option, - - #[from_instruction([pump_sdk::instructions::Create::symbol, pump_sdk::instructions::CreateV2::symbol], strategy = SetOnce)] - pub symbol: Option, - - #[from_instruction([pump_sdk::instructions::Create::uri, pump_sdk::instructions::CreateV2::uri], strategy = SetOnce)] - pub uri: Option, - - #[map(pump_sdk::accounts::BondingCurve::complete, strategy = LastWrite)] - pub is_complete: Option, - - // URL resolver: fetch and extract image from metadata URI - #[resolve(url = info.uri, extract = "image")] - pub resolved_image: Option, - } - - // ReserveState section: All fields come from BondingCurve account updates - // The resolver system (see resolve_bonding_curve_key below) handles mapping - // the BondingCurve PDA address back to the mint primary key - #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct ReserveState { - #[map(pump_sdk::accounts::BondingCurve::virtual_token_reserves, strategy = LastWrite)] - pub virtual_token_reserves: Option, - - #[map(pump_sdk::accounts::BondingCurve::virtual_sol_reserves, strategy = LastWrite)] - pub virtual_sol_reserves: Option, - - #[map(pump_sdk::accounts::BondingCurve::real_token_reserves, strategy = LastWrite)] - pub real_token_reserves: Option, - - #[map(pump_sdk::accounts::BondingCurve::real_sol_reserves, strategy = LastWrite)] - pub real_sol_reserves: Option, - - #[map(pump_sdk::accounts::BondingCurve::token_total_supply, strategy = LastWrite)] - pub token_total_supply: Option, - - pub current_price_sol: Option, - pub market_cap_sol: Option, - } - - #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TradingMetrics { - #[aggregate(from = pump_sdk::instructions::Buy, field = amount, strategy = Sum, lookup_by = accounts::mint)] - pub total_buy_volume: Option, - - #[aggregate(from = pump_sdk::instructions::Sell, field = amount, strategy = Sum, lookup_by = accounts::mint)] - pub total_sell_volume: Option, - - #[aggregate(from = pump_sdk::instructions::BuyExactSolIn, field = spendable_sol_in, strategy = Sum, lookup_by = accounts::mint)] - pub total_buy_exact_sol_volume: Option, - - #[aggregate(from = [pump_sdk::instructions::Buy, pump_sdk::instructions::BuyExactSolIn, pump_sdk::instructions::Sell], strategy = Count, lookup_by = accounts::mint)] - pub total_trades: Option, - - #[aggregate(from = [pump_sdk::instructions::Buy, pump_sdk::instructions::BuyExactSolIn], strategy = Count, lookup_by = accounts::mint)] - pub buy_count: Option, - - #[aggregate(from = pump_sdk::instructions::Sell, strategy = Count, lookup_by = accounts::mint)] - pub sell_count: Option, - - #[aggregate( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::BuyExactSolIn, pump_sdk::instructions::Sell], - field = user, - strategy = UniqueCount, - transform = ToString, - lookup_by = accounts::mint - )] - pub unique_traders: Option, - - #[aggregate( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::Sell], - field = amount, - strategy = Max, - lookup_by = accounts::mint - )] - pub largest_trade: Option, - - #[aggregate( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::Sell], - field = amount, - strategy = Min, - lookup_by = accounts::mint - )] - pub smallest_trade: Option, - - #[derive_from( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::BuyExactSolIn, pump_sdk::instructions::Sell], - field = __timestamp, - lookup_by = accounts::mint - )] - pub last_trade_timestamp: Option, - - #[computed((reserves.virtual_sol_reserves.unwrap_or(0) as f64) / (reserves.virtual_token_reserves.unwrap_or(1).max(1) as f64))] - pub last_trade_price: Option, - - #[aggregate( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::Sell], - field = amount, - strategy = Count, - lookup_by = accounts::mint, - condition = "data.amount > 1_000_000_000_000" - )] - pub whale_trade_count: Option, - - #[derive_from( - from = [pump_sdk::instructions::Buy, pump_sdk::instructions::Sell], - field = accounts::user, - lookup_by = accounts::mint, - condition = "data.amount > 1_000_000_000_000" - )] - pub last_whale_address: Option, - - #[computed(total_buy_volume.unwrap_or(0) + total_sell_volume.unwrap_or(0))] - pub total_volume: Option, - - #[computed(total_volume.unwrap_or(0) as f64 / total_trades.unwrap_or(1).max(1) as f64)] - pub average_trade_size: Option, - } - - // - // ======================================================================== - // Token Events Section - Demonstrates New Type-Safe Event Macro - // ======================================================================== - // - // IMPORTANT: Event Runtime Types - // ------------------------------- - // Events are wrapped in `transform::EventWrapper` at runtime, which includes: - // - `timestamp`: i64 - Unix timestamp when the event was processed - // - `data`: T - The actual event data (instruction or filtered fields) - // - `slot`: Option - Blockchain slot number (from UpdateContext) - // - `signature`: Option - Transaction signature (from UpdateContext) - // - // For example: - // - `pub buys: Vec` in spec - // - Runtime type: `Vec>` - // - Output: `[{ timestamp: 123, data: { amount: 100, ... }, slot: 456, signature: "..." }]` - // - // This ensures: - // 1. Type-safe event data based on your spec - // 2. Consistent metadata (timestamp, slot, signature) for all events - // 3. Clean separation between event data and context - // - // ======================================================================== - // Token Snapshots Section - Demonstrates New Type-Safe Snapshot Macro - // ======================================================================== - // - // IMPORTANT: Snapshot Macro for Account Snapshots - // ----------------------------------------------- - // The #[snapshot] macro allows capturing entire account states at a point in time. - // Unlike #[event] (for instructions), #[snapshot] is specifically for accounts. - // - // Key differences from #[event]: - // - No `Append` strategy: Only `SetOnce` or `LastWrite` allowed - // - Captures the entire account, not individual fields - // - Used for account snapshots, not instruction events - // - Supports field-level transformations (e.g., HexEncode for pubkeys) - // - // Snapshotted Data: - // - Automatically filters out internal metadata fields (__account_address, __update_context, etc.) - // - Applies field transformations specified in the macro - // - Can be wrapped in transform::SnapshotWrapper for consistent metadata (timestamp, slot, signature) - // - // Example Output (with transforms): - // { - // "bonding_curve_snapshot": { - // "complete": false, - // "creator": "FpP8mKVXCJjrKEoZ9gGJ...", // <- HexEncoded instead of raw bytes - // "real_sol_reserves": 38799829630, - // "real_token_reserves": 187979068742904, - // "token_total_supply": 1000000000000000, - // "virtual_sol_reserves": 68799829630, - // "virtual_token_reserves": 467879068742904 - // } - // } - - #[derive(Debug, Clone, Serialize, Deserialize, Stream)] - pub struct TokenEvents { - #[event(strategy = SetOnce, lookup_by = accounts::mint)] - pub create: Option, - - #[event(strategy = SetOnce, lookup_by = accounts::mint)] - pub create_v2: Option, - - #[event( - strategy = Append, - lookup_by = accounts::mint, - fields = [data::amount, data::max_sol_cost, accounts::user] - )] - pub buys: Vec, - - #[event( - strategy = Append, - lookup_by = accounts::mint, - fields = [data::spendable_sol_in, data::min_tokens_out, accounts::user] - )] - pub buys_exact_sol: Vec, - - #[event( - strategy = Append, - lookup_by = accounts::mint - )] - pub sells: Vec, - } -} diff --git a/stacks/sdk/rust/Cargo.toml b/stacks/sdk/rust/Cargo.toml index e068a31..6630049 100644 --- a/stacks/sdk/rust/Cargo.toml +++ b/stacks/sdk/rust/Cargo.toml @@ -12,10 +12,9 @@ keywords = ["hyperstack", "solana", "blockchain", "streaming"] categories = ["api-bindings", "web-programming"] [features] -default = ["pumpfun"] -pumpfun = [] +default = ["ore"] ore = [] -full = ["pumpfun", "ore"] +full = ["ore"] [dependencies] hyperstack-sdk = { version = "0.5.3", path = "../../../rust/hyperstack-sdk" } diff --git a/stacks/sdk/rust/src/lib.rs b/stacks/sdk/rust/src/lib.rs index f14a49d..21cec34 100644 --- a/stacks/sdk/rust/src/lib.rs +++ b/stacks/sdk/rust/src/lib.rs @@ -1,5 +1,2 @@ -#[cfg(feature = "pumpfun")] -pub mod pumpfun; - #[cfg(feature = "ore")] pub mod ore; diff --git a/stacks/sdk/rust/src/pumpfun/entity.rs b/stacks/sdk/rust/src/pumpfun/entity.rs deleted file mode 100644 index 0caede7..0000000 --- a/stacks/sdk/rust/src/pumpfun/entity.rs +++ /dev/null @@ -1,47 +0,0 @@ -use super::types::{PumpfunToken}; -use hyperstack_sdk::{Stack, StateView, ViewBuilder, ViewHandle, Views}; - -pub struct PumpfunStreamStack; - -impl Stack for PumpfunStreamStack { - type Views = PumpfunStreamStackViews; - - fn name() -> &'static str { - "pumpfun-stream" - } - - fn url() -> &'static str { - "wss://pumpfun.stack.usehyperstack.com" - } -} - -pub struct PumpfunStreamStackViews { - pub pumpfun_token: PumpfunTokenEntityViews, -} - -impl Views for PumpfunStreamStackViews { - fn from_builder(builder: ViewBuilder) -> Self { - Self { - pumpfun_token: PumpfunTokenEntityViews { builder }, - } - } -} - -pub struct PumpfunTokenEntityViews { - builder: ViewBuilder, -} - -impl PumpfunTokenEntityViews { - pub fn state(&self) -> StateView { - StateView::new( - self.builder.connection().clone(), - self.builder.store().clone(), - "PumpfunToken/state".to_string(), - self.builder.initial_data_timeout(), - ) - } - - pub fn list(&self) -> ViewHandle { - self.builder.view("PumpfunToken/list") - } -} \ No newline at end of file diff --git a/stacks/sdk/rust/src/pumpfun/mod.rs b/stacks/sdk/rust/src/pumpfun/mod.rs deleted file mode 100644 index 18c0a74..0000000 --- a/stacks/sdk/rust/src/pumpfun/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod entity; -mod types; - -pub use entity::{PumpfunStreamStack, PumpfunStreamStackViews, PumpfunTokenEntityViews}; -pub use types::*; - -pub use hyperstack_sdk::{ConnectionState, HyperStack, Stack, Update, Views}; diff --git a/stacks/sdk/rust/src/pumpfun/types.rs b/stacks/sdk/rust/src/pumpfun/types.rs deleted file mode 100644 index 8680a63..0000000 --- a/stacks/sdk/rust/src/pumpfun/types.rs +++ /dev/null @@ -1,266 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunTokenId { - #[serde(default)] - pub mint: Option, - #[serde(default)] - pub bonding_curve: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunTokenInfo { - #[serde(default)] - pub name: Option>, - #[serde(default)] - pub symbol: Option>, - #[serde(default)] - pub uri: Option>, - #[serde(default)] - pub is_complete: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunTokenReserves { - #[serde(default)] - pub virtual_token_reserves: Option>, - #[serde(default)] - pub virtual_sol_reserves: Option>, - #[serde(default)] - pub real_token_reserves: Option>, - #[serde(default)] - pub real_sol_reserves: Option>, - #[serde(default)] - pub token_total_supply: Option>, - #[serde(default)] - pub current_price_sol: Option>, - #[serde(default)] - pub market_cap_sol: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunTokenTrading { - #[serde(default)] - pub total_buy_volume: Option>, - #[serde(default)] - pub total_sell_volume: Option>, - #[serde(default)] - pub total_buy_exact_sol_volume: Option>, - #[serde(default)] - pub total_trades: Option>, - #[serde(default)] - pub buy_count: Option>, - #[serde(default)] - pub sell_count: Option>, - #[serde(default)] - pub unique_traders: Option>, - #[serde(default)] - pub largest_trade: Option>, - #[serde(default)] - pub smallest_trade: Option>, - #[serde(default)] - pub last_trade_timestamp: Option>, - #[serde(default)] - pub last_trade_price: Option>, - #[serde(default)] - pub whale_trade_count: Option>, - #[serde(default)] - pub last_whale_address: Option>, - #[serde(default)] - pub total_volume: Option>, - #[serde(default)] - pub average_trade_size: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunTokenEvents { - #[serde(default)] - pub create: Option>, - #[serde(default)] - pub create_v2: Option>, - #[serde(default)] - pub buys: Option>, - #[serde(default)] - pub buys_exact_sol: Option>, - #[serde(default)] - pub sells: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct PumpfunToken { - #[serde(default)] - pub id: PumpfunTokenId, - #[serde(default)] - pub info: PumpfunTokenInfo, - #[serde(default)] - pub reserves: PumpfunTokenReserves, - #[serde(default)] - pub trading: PumpfunTokenTrading, - #[serde(default)] - pub events: PumpfunTokenEvents, - #[serde(default)] - pub bonding_curve_snapshot: Option>, -} - - - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct Create { - #[serde(default)] - pub mint: Option, - #[serde(default)] - pub mint_authority: Option, - #[serde(default)] - pub bonding_curve: Option, - #[serde(default)] - pub associated_bonding_curve: Option, - #[serde(default)] - pub global: Option, - #[serde(default)] - pub mpl_token_metadata: Option, - #[serde(default)] - pub metadata: Option, - #[serde(default)] - pub user: Option, - #[serde(default)] - pub system_program: Option, - #[serde(default)] - pub token_program: Option, - #[serde(default)] - pub associated_token_program: Option, - #[serde(default)] - pub rent: Option, - #[serde(default)] - pub event_authority: Option, - #[serde(default)] - pub program: Option, - #[serde(default)] - pub name: Option, - #[serde(default)] - pub symbol: Option, - #[serde(default)] - pub uri: Option, - #[serde(default)] - pub creator: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct Buy { - #[serde(default)] - pub global: Option, - #[serde(default)] - pub fee_recipient: Option, - #[serde(default)] - pub mint: Option, - #[serde(default)] - pub bonding_curve: Option, - #[serde(default)] - pub associated_bonding_curve: Option, - #[serde(default)] - pub associated_user: Option, - #[serde(default)] - pub user: Option, - #[serde(default)] - pub system_program: Option, - #[serde(default)] - pub token_program: Option, - #[serde(default)] - pub creator_vault: Option, - #[serde(default)] - pub event_authority: Option, - #[serde(default)] - pub program: Option, - #[serde(default)] - pub global_volume_accumulator: Option, - #[serde(default)] - pub user_volume_accumulator: Option, - #[serde(default)] - pub fee_config: Option, - #[serde(default)] - pub fee_program: Option, - #[serde(default)] - pub amount: Option, - #[serde(default)] - pub max_sol_cost: Option, - #[serde(default)] - pub track_volume: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct Sell { - #[serde(default)] - pub global: Option, - #[serde(default)] - pub fee_recipient: Option, - #[serde(default)] - pub mint: Option, - #[serde(default)] - pub bonding_curve: Option, - #[serde(default)] - pub associated_bonding_curve: Option, - #[serde(default)] - pub associated_user: Option, - #[serde(default)] - pub user: Option, - #[serde(default)] - pub system_program: Option, - #[serde(default)] - pub creator_vault: Option, - #[serde(default)] - pub token_program: Option, - #[serde(default)] - pub event_authority: Option, - #[serde(default)] - pub program: Option, - #[serde(default)] - pub fee_config: Option, - #[serde(default)] - pub fee_program: Option, - #[serde(default)] - pub amount: Option, - #[serde(default)] - pub min_sol_output: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct BondingCurve { - #[serde(default)] - pub virtual_token_reserves: Option, - #[serde(default)] - pub virtual_sol_reserves: Option, - #[serde(default)] - pub real_token_reserves: Option, - #[serde(default)] - pub real_sol_reserves: Option, - #[serde(default)] - pub token_total_supply: Option, - #[serde(default)] - pub complete: Option, - #[serde(default)] - pub creator: Option, - #[serde(default)] - pub is_mayhem_mode: Option, -} - - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct EventWrapper { - #[serde(default)] - pub timestamp: i64, - pub data: T, - #[serde(default)] - pub slot: Option, - #[serde(default)] - pub signature: Option, -} - -impl Default for EventWrapper { - fn default() -> Self { - Self { - timestamp: 0, - data: T::default(), - slot: None, - signature: None, - } - } -} diff --git a/stacks/sdk/typescript/package-lock.json b/stacks/sdk/typescript/package-lock.json index 80c98e8..8533087 100644 --- a/stacks/sdk/typescript/package-lock.json +++ b/stacks/sdk/typescript/package-lock.json @@ -17,8 +17,8 @@ "typescript": "^5.0.0" }, "peerDependencies": { - "hyperstack-react": ">=0.4.0", - "hyperstack-typescript": ">=0.4.0" + "hyperstack-react": ">=0.5.3", + "hyperstack-typescript": ">=0.5.3" }, "peerDependenciesMeta": { "hyperstack-react": { @@ -537,9 +537,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", - "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", "cpu": [ "arm" ], @@ -551,9 +551,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", - "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", "cpu": [ "arm64" ], @@ -565,9 +565,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", - "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", "cpu": [ "arm64" ], @@ -579,9 +579,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", - "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", "cpu": [ "x64" ], @@ -593,9 +593,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", - "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", "cpu": [ "arm64" ], @@ -607,9 +607,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", - "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", "cpu": [ "x64" ], @@ -621,9 +621,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", - "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", "cpu": [ "arm" ], @@ -635,9 +635,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", - "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", "cpu": [ "arm" ], @@ -649,9 +649,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", - "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", "cpu": [ "arm64" ], @@ -663,9 +663,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", - "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", "cpu": [ "arm64" ], @@ -677,9 +677,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", - "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", "cpu": [ "loong64" ], @@ -691,9 +691,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", - "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", "cpu": [ "loong64" ], @@ -705,9 +705,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", - "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", "cpu": [ "ppc64" ], @@ -719,9 +719,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", - "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", "cpu": [ "ppc64" ], @@ -733,9 +733,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", - "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", "cpu": [ "riscv64" ], @@ -747,9 +747,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", - "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", "cpu": [ "riscv64" ], @@ -761,9 +761,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", - "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", "cpu": [ "s390x" ], @@ -775,9 +775,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], @@ -789,9 +789,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", "cpu": [ "x64" ], @@ -803,9 +803,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", - "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", "cpu": [ "x64" ], @@ -817,9 +817,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", - "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", "cpu": [ "arm64" ], @@ -831,9 +831,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", - "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", "cpu": [ "arm64" ], @@ -845,9 +845,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", - "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", "cpu": [ "ia32" ], @@ -859,9 +859,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", - "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", "cpu": [ "x64" ], @@ -873,9 +873,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", - "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", "cpu": [ "x64" ], @@ -894,9 +894,9 @@ "license": "MIT" }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -1300,9 +1300,9 @@ } }, "node_modules/rollup": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", "dependencies": { @@ -1316,31 +1316,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.1", - "@rollup/rollup-android-arm64": "4.57.1", - "@rollup/rollup-darwin-arm64": "4.57.1", - "@rollup/rollup-darwin-x64": "4.57.1", - "@rollup/rollup-freebsd-arm64": "4.57.1", - "@rollup/rollup-freebsd-x64": "4.57.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", - "@rollup/rollup-linux-arm-musleabihf": "4.57.1", - "@rollup/rollup-linux-arm64-gnu": "4.57.1", - "@rollup/rollup-linux-arm64-musl": "4.57.1", - "@rollup/rollup-linux-loong64-gnu": "4.57.1", - "@rollup/rollup-linux-loong64-musl": "4.57.1", - "@rollup/rollup-linux-ppc64-gnu": "4.57.1", - "@rollup/rollup-linux-ppc64-musl": "4.57.1", - "@rollup/rollup-linux-riscv64-gnu": "4.57.1", - "@rollup/rollup-linux-riscv64-musl": "4.57.1", - "@rollup/rollup-linux-s390x-gnu": "4.57.1", - "@rollup/rollup-linux-x64-gnu": "4.57.1", - "@rollup/rollup-linux-x64-musl": "4.57.1", - "@rollup/rollup-openbsd-x64": "4.57.1", - "@rollup/rollup-openharmony-arm64": "4.57.1", - "@rollup/rollup-win32-arm64-msvc": "4.57.1", - "@rollup/rollup-win32-ia32-msvc": "4.57.1", - "@rollup/rollup-win32-x64-gnu": "4.57.1", - "@rollup/rollup-win32-x64-msvc": "4.57.1", + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" } }, diff --git a/stacks/sdk/typescript/package.json b/stacks/sdk/typescript/package.json index d5d991e..8fe527c 100644 --- a/stacks/sdk/typescript/package.json +++ b/stacks/sdk/typescript/package.json @@ -12,11 +12,6 @@ "import": "./dist/index.js", "require": "./dist/index.cjs" }, - "./pumpfun": { - "types": "./dist/pumpfun/index.d.ts", - "import": "./dist/pumpfun/index.js", - "require": "./dist/pumpfun/index.cjs" - }, "./ore": { "types": "./dist/ore/index.d.ts", "import": "./dist/ore/index.js", @@ -56,8 +51,7 @@ "hyperstack", "solana", "blockchain", - "streaming", - "pumpfun" + "streaming" ], "author": "HyperTek", "license": "MIT", diff --git a/stacks/sdk/typescript/src/index.ts b/stacks/sdk/typescript/src/index.ts index 7b3a9c0..6d1a404 100644 --- a/stacks/sdk/typescript/src/index.ts +++ b/stacks/sdk/typescript/src/index.ts @@ -1,24 +1,4 @@ // Re-export stack definitions and entity types (excluding internal ViewDef helpers) -export { - PUMPFUN_STREAM_STACK, - type PumpfunStreamStack, - type PumpfunStreamEntity, - type PumpfunToken, - type PumpfunTokenEvents, - type PumpfunTokenId, - type PumpfunTokenInfo, - type PumpfunTokenReserves, - type PumpfunTokenTrading, - type BondingCurve, - type Buy, - type Sell, - type Create, - type BuysEvent, - type CreateEvent, - type SellsEvent, - type EventWrapper, -} from './pumpfun'; - export { ORE_STREAM_STACK, type OreStreamStack, diff --git a/stacks/sdk/typescript/src/pumpfun/index.ts b/stacks/sdk/typescript/src/pumpfun/index.ts deleted file mode 100644 index 695d17a..0000000 --- a/stacks/sdk/typescript/src/pumpfun/index.ts +++ /dev/null @@ -1,431 +0,0 @@ -import { z } from 'zod'; -import { pda, literal, account, arg, bytes } from 'hyperstack-typescript'; - -export interface PumpfunTokenEvents { - buys?: EventWrapper[] | null; - buys_exact_sol?: any[] | null; - create?: Create | null; - create_v2?: Record | null; - sells?: EventWrapper[] | null; -} - -export interface PumpfunTokenId { - bonding_curve?: string | null; - mint?: string | null; -} - -export interface PumpfunTokenInfo { - is_complete?: boolean | null; - name?: string | null; - resolved_image?: string | null; - symbol?: string | null; - uri?: string | null; -} - -export interface PumpfunTokenReserves { - current_price_sol?: number | null; - market_cap_sol?: number | null; - real_sol_reserves?: number | null; - real_token_reserves?: number | null; - token_total_supply?: number | null; - virtual_sol_reserves?: number | null; - virtual_token_reserves?: number | null; -} - -export interface PumpfunTokenTrading { - average_trade_size?: number | null; - buy_count?: number | null; - largest_trade?: number | null; - last_trade_price?: number | null; - last_trade_timestamp?: number | null; - last_whale_address?: string | null; - sell_count?: number | null; - smallest_trade?: number | null; - total_buy_exact_sol_volume?: number | null; - total_buy_volume?: number | null; - total_sell_volume?: number | null; - total_trades?: number | null; - total_volume?: number | null; - unique_traders?: number | null; - whale_trade_count?: number | null; -} - -export interface PumpfunToken { - events?: PumpfunTokenEvents; - id?: PumpfunTokenId; - info?: PumpfunTokenInfo; - reserves?: PumpfunTokenReserves; - trading?: PumpfunTokenTrading; - bonding_curve_snapshot?: BondingCurve | null; -} - -export interface Create { - mint?: string; - mint_authority?: string; - bonding_curve?: string; - associated_bonding_curve?: string; - global?: string; - mpl_token_metadata?: string; - metadata?: string; - user?: string; - system_program?: string; - token_program?: string; - associated_token_program?: string; - rent?: string; - event_authority?: string; - program?: string; - name?: string; - symbol?: string; - uri?: string; - creator?: string; -} - -export interface Buy { - global?: string; - fee_recipient?: string; - mint?: string; - bonding_curve?: string; - associated_bonding_curve?: string; - associated_user?: string; - user?: string; - system_program?: string; - token_program?: string; - creator_vault?: string; - event_authority?: string; - program?: string; - global_volume_accumulator?: string; - user_volume_accumulator?: string; - fee_config?: string; - fee_program?: string; - amount?: number; - max_sol_cost?: number; - track_volume?: Record; -} - -export interface Sell { - global?: string; - fee_recipient?: string; - mint?: string; - bonding_curve?: string; - associated_bonding_curve?: string; - associated_user?: string; - user?: string; - system_program?: string; - creator_vault?: string; - token_program?: string; - event_authority?: string; - program?: string; - fee_config?: string; - fee_program?: string; - amount?: number; - min_sol_output?: number; -} - -export interface BondingCurve { - virtual_token_reserves?: number; - virtual_sol_reserves?: number; - real_token_reserves?: number; - real_sol_reserves?: number; - token_total_supply?: number; - complete?: boolean; - creator?: string; - is_mayhem_mode?: boolean; -} - -export interface BuysEvent { - amount: number; - max_sol_cost: number; -} - -export interface BuysExactSolEvent { - spendable_sol_in: number; - min_tokens_out: number; -} - -export interface CreateEvent {} - -export interface CreateV2Event {} - -export interface SellsEvent {} - -export type ConfigStatus = "Paused" | "Active"; - -/** - * Wrapper for event data that includes context metadata. - * Events are automatically wrapped in this structure at runtime. - */ -export interface EventWrapper { - /** Unix timestamp when the event was processed */ - timestamp: number; - /** The event-specific data */ - data: T; - /** Optional blockchain slot number */ - slot?: number; - /** Optional transaction signature */ - signature?: string; -} - -export const EventWrapperSchema = (data: T) => z.object({ - timestamp: z.number(), - data, - slot: z.number().optional(), - signature: z.string().optional(), -}); - -export const CreateSchema = z.object({ - mint: z.string().optional(), - mint_authority: z.string().optional(), - bonding_curve: z.string().optional(), - associated_bonding_curve: z.string().optional(), - global: z.string().optional(), - mpl_token_metadata: z.string().optional(), - metadata: z.string().optional(), - user: z.string().optional(), - system_program: z.string().optional(), - token_program: z.string().optional(), - associated_token_program: z.string().optional(), - rent: z.string().optional(), - event_authority: z.string().optional(), - program: z.string().optional(), - name: z.string().optional(), - symbol: z.string().optional(), - uri: z.string().optional(), - creator: z.string().optional(), -}); - -export const BuySchema = z.object({ - global: z.string().optional(), - fee_recipient: z.string().optional(), - mint: z.string().optional(), - bonding_curve: z.string().optional(), - associated_bonding_curve: z.string().optional(), - associated_user: z.string().optional(), - user: z.string().optional(), - system_program: z.string().optional(), - token_program: z.string().optional(), - creator_vault: z.string().optional(), - event_authority: z.string().optional(), - program: z.string().optional(), - global_volume_accumulator: z.string().optional(), - user_volume_accumulator: z.string().optional(), - fee_config: z.string().optional(), - fee_program: z.string().optional(), - amount: z.number().optional(), - max_sol_cost: z.number().optional(), - track_volume: z.record(z.any()).optional(), -}); - -export const SellSchema = z.object({ - global: z.string().optional(), - fee_recipient: z.string().optional(), - mint: z.string().optional(), - bonding_curve: z.string().optional(), - associated_bonding_curve: z.string().optional(), - associated_user: z.string().optional(), - user: z.string().optional(), - system_program: z.string().optional(), - creator_vault: z.string().optional(), - token_program: z.string().optional(), - event_authority: z.string().optional(), - program: z.string().optional(), - fee_config: z.string().optional(), - fee_program: z.string().optional(), - amount: z.number().optional(), - min_sol_output: z.number().optional(), -}); - -export const BondingCurveSchema = z.object({ - virtual_token_reserves: z.number().optional(), - virtual_sol_reserves: z.number().optional(), - real_token_reserves: z.number().optional(), - real_sol_reserves: z.number().optional(), - token_total_supply: z.number().optional(), - complete: z.boolean().optional(), - creator: z.string().optional(), - is_mayhem_mode: z.boolean().optional(), -}); - -export const BuysEventSchema = z.object({ - amount: z.number(), - max_sol_cost: z.number(), -}); - -export const BuysExactSolEventSchema = z.object({ - spendable_sol_in: z.number(), - min_tokens_out: z.number(), -}); - -export const CreateEventSchema = z.object({}); - -export const CreateV2EventSchema = z.object({}); - -export const SellsEventSchema = z.object({}); - -export const ConfigStatusSchema = z.enum(["Paused", "Active"]); - -export const PumpfunTokenEventsSchema = z.object({ - buys: z.array(EventWrapperSchema(BuySchema)).nullable().optional(), - buys_exact_sol: z.array(z.any()).nullable().optional(), - create: CreateSchema.nullable().optional(), - create_v2: z.record(z.any()).nullable().optional(), - sells: z.array(EventWrapperSchema(SellSchema)).nullable().optional(), -}); - -export const PumpfunTokenIdSchema = z.object({ - bonding_curve: z.string().nullable().optional(), - mint: z.string().nullable().optional(), -}); - -export const PumpfunTokenInfoSchema = z.object({ - is_complete: z.boolean().nullable().optional(), - name: z.string().nullable().optional(), - resolved_image: z.string().nullable().optional(), - symbol: z.string().nullable().optional(), - uri: z.string().nullable().optional(), -}); - -export const PumpfunTokenReservesSchema = z.object({ - current_price_sol: z.number().nullable().optional(), - market_cap_sol: z.number().nullable().optional(), - real_sol_reserves: z.number().nullable().optional(), - real_token_reserves: z.number().nullable().optional(), - token_total_supply: z.number().nullable().optional(), - virtual_sol_reserves: z.number().nullable().optional(), - virtual_token_reserves: z.number().nullable().optional(), -}); - -export const PumpfunTokenTradingSchema = z.object({ - average_trade_size: z.number().nullable().optional(), - buy_count: z.number().nullable().optional(), - largest_trade: z.number().nullable().optional(), - last_trade_price: z.number().nullable().optional(), - last_trade_timestamp: z.number().nullable().optional(), - last_whale_address: z.string().nullable().optional(), - sell_count: z.number().nullable().optional(), - smallest_trade: z.number().nullable().optional(), - total_buy_exact_sol_volume: z.number().nullable().optional(), - total_buy_volume: z.number().nullable().optional(), - total_sell_volume: z.number().nullable().optional(), - total_trades: z.number().nullable().optional(), - total_volume: z.number().nullable().optional(), - unique_traders: z.number().nullable().optional(), - whale_trade_count: z.number().nullable().optional(), -}); - -export const PumpfunTokenSchema = z.object({ - events: PumpfunTokenEventsSchema.optional(), - id: PumpfunTokenIdSchema.optional(), - info: PumpfunTokenInfoSchema.optional(), - reserves: PumpfunTokenReservesSchema.optional(), - trading: PumpfunTokenTradingSchema.optional(), - bonding_curve_snapshot: BondingCurveSchema.nullable().optional(), -}); - -export const PumpfunTokenCompletedSchema = z.object({ - events: PumpfunTokenEventsSchema, - id: PumpfunTokenIdSchema, - info: PumpfunTokenInfoSchema, - reserves: PumpfunTokenReservesSchema, - trading: PumpfunTokenTradingSchema, - bonding_curve_snapshot: BondingCurveSchema, -}); - -// ============================================================================ -// View Definition Types (framework-agnostic) -// ============================================================================ - -/** View definition with embedded entity type */ -export interface ViewDef { - readonly mode: TMode; - readonly view: string; - /** Phantom field for type inference - not present at runtime */ - readonly _entity?: T; -} - -/** Helper to create typed state view definitions (keyed lookups) */ -function stateView(view: string): ViewDef { - return { mode: 'state', view } as const; -} - -/** Helper to create typed list view definitions (collections) */ -function listView(view: string): ViewDef { - return { mode: 'list', view } as const; -} - -// ============================================================================ -// Stack Definition -// ============================================================================ - -/** Stack definition for PumpfunStream with 1 entities */ -export const PUMPFUN_STREAM_STACK = { - name: 'pumpfun-stream', - url: 'wss://pumpfun.stack.usehyperstack.com', - views: { - PumpfunToken: { - state: stateView('PumpfunToken/state'), - list: listView('PumpfunToken/list'), - }, - }, - schemas: { - BondingCurve: BondingCurveSchema, - Buy: BuySchema, - BuysEvent: BuysEventSchema, - BuysExactSolEvent: BuysExactSolEventSchema, - ConfigStatus: ConfigStatusSchema, - CreateEvent: CreateEventSchema, - Create: CreateSchema, - CreateV2Event: CreateV2EventSchema, - EventWrapper: EventWrapperSchema, - PumpfunTokenCompleted: PumpfunTokenCompletedSchema, - PumpfunTokenEvents: PumpfunTokenEventsSchema, - PumpfunTokenId: PumpfunTokenIdSchema, - PumpfunTokenInfo: PumpfunTokenInfoSchema, - PumpfunTokenReserves: PumpfunTokenReservesSchema, - PumpfunToken: PumpfunTokenSchema, - PumpfunTokenTrading: PumpfunTokenTradingSchema, - Sell: SellSchema, - SellsEvent: SellsEventSchema, - }, - pdas: { - pump: { - amm_global_config: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('global_config')), - associated_bonding_curve: pda('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', account('bonding_curve'), account('token_program'), account('mint')), - bonding_curve: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('bonding-curve'), account('mint')), - creator_vault: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('creator-vault'), account('bonding_curve.creator')), - event_authority: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('__event_authority')), - fee_config: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('fee_config'), bytes(new Uint8Array([1, 86, 224, 246, 147, 102, 90, 207, 68, 219, 21, 104, 191, 23, 91, 170, 81, 137, 203, 151, 245, 210, 255, 59, 101, 93, 43, 182, 253, 109, 24, 176]))), - global: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('global')), - global_incentive_token_account: pda('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', account('global_volume_accumulator'), account('token_program'), account('mint')), - global_params: pda('MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e', literal('global-params')), - global_volume_accumulator: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('global_volume_accumulator')), - lp_mint: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('pool_lp_mint'), account('pool')), - mayhem_state: pda('MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e', literal('mayhem-state'), account('mint')), - mayhem_token_vault: pda('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', account('sol_vault_authority'), account('token_program'), account('mint')), - metadata: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('metadata'), bytes(new Uint8Array([11, 112, 101, 177, 227, 209, 124, 69, 56, 157, 82, 127, 107, 4, 195, 205, 88, 184, 108, 115, 26, 160, 253, 181, 73, 182, 209, 188, 3, 248, 41, 70])), account('mint')), - mint_authority: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('mint-authority')), - pool: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('pool'), literal(''), account('pool_authority'), account('mint'), account('wsol_mint')), - pool_authority: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('pool-authority'), account('mint')), - pool_authority_mint_account: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', account('pool_authority'), account('mint'), account('mint')), - pool_authority_wsol_account: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', account('pool_authority'), account('token_program'), account('wsol_mint')), - pool_base_token_account: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', account('pool'), account('mint'), account('mint')), - pool_quote_token_account: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', account('pool'), account('token_program'), account('wsol_mint')), - program_signer: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', ), - pump_amm_event_authority: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('__event_authority')), - sharing_config: pda('pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ', literal('sharing-config'), account('mint')), - sol_vault: pda('MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e', literal('sol-vault')), - sol_vault_authority: pda('MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e', literal('sol-vault')), - user_ata: pda('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', account('user'), account('token_program'), account('mint')), - user_pool_token_account: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', account('pool_authority'), account('token_2022_program'), account('lp_mint')), - user_volume_accumulator: pda('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', literal('user_volume_accumulator'), account('user')), - }, - }, -} as const; - -/** Type alias for the stack */ -export type PumpfunStreamStack = typeof PUMPFUN_STREAM_STACK; - -/** Entity types in this stack */ -export type PumpfunStreamEntity = PumpfunToken; - -/** Default export for convenience */ -export default PUMPFUN_STREAM_STACK; \ No newline at end of file diff --git a/stacks/sdk/typescript/tsup.config.ts b/stacks/sdk/typescript/tsup.config.ts index 7879f4d..a1d6c20 100644 --- a/stacks/sdk/typescript/tsup.config.ts +++ b/stacks/sdk/typescript/tsup.config.ts @@ -3,7 +3,6 @@ import { defineConfig } from 'tsup'; export default defineConfig({ entry: { index: 'src/index.ts', - 'pumpfun/index': 'src/pumpfun/index.ts', 'ore/index': 'src/ore/index.ts', }, format: ['cjs', 'esm'],