import { Connection } from "@solana/web3.js"; import { AnchorProvider, Program, Wallet } from "@anchor-lang/core"; import { Keypair } from "@solana/web3.js"; import idl from "../idl/smart_updown.json"; import type { SmartUpdown } from "../idl/smart_updown"; /** * Создаёт готовый клиент программы: Connection + AnchorProvider (подпись админа- * релеера) + типизированный Program, собранный из IDL. */ export function makeProgram( connection: Connection, admin: Keypair ): Program { const provider = new AnchorProvider( connection, new Wallet(admin), { commitment: "confirmed", preflightCommitment: "confirmed" } ); // IDL.address задаёт programId в рантайме. return new Program(idl as unknown as SmartUpdown, provider); } export function makeConnection(rpcUrl: string): Connection { return new Connection(rpcUrl, "confirmed"); }