import { Turnkey } from "@turnkey/sdk-server";
import {
SigningStargateClient,
GasPrice,
calculateFee,
} from "@cosmjs/stargate";
import { coins } from "@cosmjs/amino";
// Import the initializeSeiSigner function from wallet.ts
import { initializeSeiSigner } from "./wallet";
// Initialize the Turnkey client
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPrivateKey: process.env.API_PRIVATE_KEY,
apiPublicKey: process.env.API_PUBLIC_KEY,
defaultOrganizationId: process.env.ORGANIZATION_ID,
});
const signer = await initializeSeiSigner(turnkeyClient);
// Connect to Sei network - use the appropriate endpoint for mainnet/testnet
const rpcEndpoint = "https://sei-rpc.polkachu.com"; // Example RPC endpoint
const client = await SigningStargateClient.connectWithSigner(
rpcEndpoint,
signer,
{
gasPrice: GasPrice.fromString("0.01usei"),
}
);
const recipient = "sei1recipient..."; // Recipient address
const amount = coins(1000000, "usei"); // 1 SEI
const fee = calculateFee(200000, GasPrice.fromString("0.01usei"));
const result = await client.sendTokens(
signer.address,
recipient,
amount,
fee,
"Sent via Turnkey"
);
console.log("Transaction hash:", result.transactionHash);