diff --git a/scripts/README.md b/scripts/README.md index 28f5a94..29b02b1 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -12,36 +12,36 @@ bun install ### Bridge Operations -- `bun cli sol onchain bridge wrap-token` - Create wrapped version of Base token on Solana -- `bun cli sol onchain bridge bridge-sol` - Bridge SOL from Solana to Base -- `bun cli sol onchain bridge bridge-spl` - Bridge SPL tokens from Solana to Base -- `bun cli sol onchain bridge bridge-wrapped-token` - Bridge wrapped tokens back to Base -- `bun cli sol onchain bridge bridge-call` - Bridge a call from Solana to Base -- `bun cli sol onchain bridge prove-message` - Prove message from Base and relay to Solana -- `bun cli sol onchain bridge relay-message` - Relay message from Base +- `bun cli sol bridge wrap-token` - Create wrapped version of Base token on Solana +- `bun cli sol bridge bridge-sol` - Bridge SOL from Solana to Base +- `bun cli sol bridge bridge-spl` - Bridge SPL tokens from Solana to Base +- `bun cli sol bridge bridge-wrapped-token` - Bridge wrapped tokens back to Base +- `bun cli sol bridge bridge-call` - Bridge a call from Solana to Base +- `bun cli sol bridge prove-message` - Prove message from Base and relay to Solana +- `bun cli sol bridge relay-message` - Relay message from Base ### Program Management -- `bun cli sol program build` - Build Solana program -- `bun cli sol program deploy` - Deploy Solana program -- `bun cli sol program generate-idl` - Generate program IDL -- `bun cli sol program generate-client` - Generate TypeScript client +- `bun cli sol build` - Build Solana program +- `bun cli sol deploy` - Deploy Solana program +- `bun cli sol generate-idl` - Generate programIDL +- `bun cli sol generate-client` - Generate TypeScript client ### SPL Token Operations -- `bun cli sol onchain spl create-mint` - Create new SPL token mint -- `bun cli sol onchain spl create-ata` - Create Associated Token Account -- `bun cli sol onchain spl mint` - Mint SPL tokens +- `bun cli sol spl create-mint` - Create new SPL token mint +- `bun cli sol spl create-ata` - Create Associated Token Account +- `bun cli sol spl mint` - Mint SPL tokens ### Utilities - `bun cli sol generate-keypair` - Generate new Solana keypair -- `bun cli utils pubkey-to-bytes32` - Convert Solana pubkey to bytes32 +- `bun cli sol pubkey-to-bytes32` - Convert Solana pubkey to bytes32 ## Non-Interactive Mode All commands support non-interactive execution by providing required arguments: ```bash -bun cli sol onchain bridge bridge-sol --cluster devnet --release prod --to 0x1234567890123456789012345678901234567890 --amount 10 --payer-kp config +bun cli sol bridge bridge-sol --deploy-env testnet-prod --to 0x1234567890123456789012345678901234567890 --amount 10 --payer-kp config --pay-for-relay ``` diff --git a/scripts/bun.lock b/scripts/bun.lock index 4f9b88a..bfbd8b0 100644 --- a/scripts/bun.lock +++ b/scripts/bun.lock @@ -4,7 +4,6 @@ "": { "name": "scripts", "devDependencies": { - "@base/bridge": "file:../clients/ts", "@clack/prompts": "0.11.0", "@codama/nodes-from-anchor": "1.2.9", "@codama/renderers-js": "1.4.3", @@ -30,8 +29,6 @@ "@babel/runtime": ["@babel/runtime@7.28.3", "", {}, "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA=="], - "@base/bridge": ["@base/bridge@file:../clients/ts", { "devDependencies": { "@types/bun": "latest", "typescript": "5.9.3" }, "peerDependencies": { "@solana/kit": "4.0.0" } }], - "@clack/core": ["@clack/core@0.5.0", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow=="], "@clack/prompts": ["@clack/prompts@0.11.0", "", { "dependencies": { "@clack/core": "0.5.0", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw=="], @@ -332,10 +329,6 @@ "zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - "@base/bridge/@types/bun": ["@types/bun@1.3.0", "", { "dependencies": { "bun-types": "1.3.0" } }, "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA=="], - - "@base/bridge/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "@scure/bip32/@noble/curves": ["@noble/curves@1.9.6", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA=="], "@solana/accounts/@solana/codecs-core": ["@solana/codecs-core@4.0.0", "", { "dependencies": { "@solana/errors": "4.0.0" }, "peerDependencies": { "typescript": ">=5.3.3" } }, "sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw=="], @@ -404,8 +397,6 @@ "rpc-websockets/@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], - "@base/bridge/@types/bun/bun-types": ["bun-types@1.3.0", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ=="], - "@solana/codecs-core/@solana/errors/commander": ["commander@14.0.0", "", {}, "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA=="], "@solana/codecs-data-structures/@solana/errors/commander": ["commander@14.0.0", "", {}, "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA=="], diff --git a/scripts/package.json b/scripts/package.json index 928593b..6e78fac 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -4,7 +4,8 @@ "type": "module", "private": true, "scripts": { - "cli": "bun run src/bin.ts" + "cli": "bun run src/bin.ts", + "postinstall": "cd ../clients/ts && bun install && bun run build" }, "devDependencies": { "@codama/nodes-from-anchor": "1.2.9", @@ -20,8 +21,7 @@ "@types/bun": "latest", "viem": "2.38.0", "zod": "4.1.12", - "@clack/prompts": "0.11.0", - "@base/bridge": "file:../clients/ts" + "@clack/prompts": "0.11.0" }, "peerDependencies": { "typescript": "5.9.3" diff --git a/scripts/src/commands/sol/bridge/sol-vault.command.ts b/scripts/src/commands/sol/bridge/sol-vault.command.ts index ca5cfa7..0360838 100644 --- a/scripts/src/commands/sol/bridge/sol-vault.command.ts +++ b/scripts/src/commands/sol/bridge/sol-vault.command.ts @@ -1,7 +1,6 @@ import { Command } from "commander"; import { - getOrPromptEvmAddress, getOrPromptSolanaAddress, validateAndExecute, } from "@internal/utils/cli"; @@ -9,7 +8,6 @@ import { argsSchema, handleSolVault } from "./sol-vault.handler"; type CommanderOptions = { bridgeProgram?: string; - remoteToken?: string; }; async function collectInteractiveOptions( @@ -22,18 +20,12 @@ async function collectInteractiveOptions( "Enter bridge program address (Solana address)" ); - opts.remoteToken = await getOrPromptEvmAddress( - opts.remoteToken, - "Enter remote token address (Base EVM address)" - ); - return opts; } export const solVaultCommand = new Command("sol-vault") - .description("Display SOL vault PDA for a given remote token") + .description("Display SOL vault PDA") .option("--bridge-program
", "Bridge program address on Solana") - .option("--remote-token ", "Remote token address on Base") .action(async (options) => { const opts = await collectInteractiveOptions(options); await validateAndExecute(argsSchema, opts, handleSolVault); diff --git a/scripts/src/commands/sol/bridge/sol-vault.handler.ts b/scripts/src/commands/sol/bridge/sol-vault.handler.ts index 328d31b..6e35919 100644 --- a/scripts/src/commands/sol/bridge/sol-vault.handler.ts +++ b/scripts/src/commands/sol/bridge/sol-vault.handler.ts @@ -1,5 +1,4 @@ import { z } from "zod"; -import { isAddress as isEvmAddress, type Address as EvmAddress } from "viem"; import { address as solanaAddress, isAddress as isSolanaAddress, @@ -15,12 +14,6 @@ export const argsSchema = z.object({ message: "Value must be a valid Solana address", }) .transform((value) => solanaAddress(value)), - remoteToken: z - .string() - .refine((value) => isEvmAddress(value), { - message: "Invalid Base/Ethereum address format", - }) - .transform((value) => value as EvmAddress), }); type Args = z.infer