28 lines
976 B
TypeScript
28 lines
976 B
TypeScript
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<SmartUpdown> {
|
|
const provider = new AnchorProvider(
|
|
connection,
|
|
new Wallet(admin),
|
|
{ commitment: "confirmed", preflightCommitment: "confirmed" }
|
|
);
|
|
// IDL.address задаёт programId в рантайме.
|
|
return new Program<SmartUpdown>(idl as unknown as SmartUpdown, provider);
|
|
}
|
|
|
|
export function makeConnection(rpcUrl: string): Connection {
|
|
return new Connection(rpcUrl, "confirmed");
|
|
}
|