import { DeBridgeSolanaClient } from "@debridge-finance/solana-contracts-client";
import { AnchorProvider, Program, Wallet as AnchorWallet } from "@coral-xyz/anchor";
import { Connection, clusterApiUrl } from "@solana/web3.js";
import { crypto, helpers, WRAPPED_SOL_MINT } from "@debridge-finance/solana-utils";
const connection = new Connection(clusterApiUrl("mainnet-beta"));
const example = new Program(
ExampleIDL,
"3botMWU4s1Lcs4Q2wQBkZqsCW1vc3N9H9tY9SZYVs5vZ",
new AnchorProvider(connection, {} as unknown as AnchorWallet, {}),
);
const deBridge = new DeBridgeSolanaClient(connection, undefined, {
programId: "DEbrdGj3HsRsAzx6uH4MKyREKxVAfBydijLUF3ygsFfh",
settingsProgramId: "DeSetTwWhjZq6Pz9Kfdo1KoS5NqtsM6G8ERbX4SSCSft",
});
const chainTo = 137;
const receiver = "0xbd1e72155Ce24E57D0A026e0F7420D6559A7e651";
const amount = 1000;
const tokenMint = WRAPPED_SOL_MINT;
const builder = example.methods.sendViaDebridge(
amount,
Array.from(crypto.normalizeChainId(chainTo)),
helpers.hexToBuffer(receiver),
false,
);
const context = await deBridge.buildSendContext(
sender,
null,
tokenMint,
receiver,
chainTo,
false,
receiver,
);
builder.remainingAccounts([...context.asAccountMeta, { isWritable: false, isSigner: false, pubkey: deBridge.program.programId }]);
const tx = await builder.transaction();