import { coins, SigningStargateClient, StdFee } from "@cosmjs/stargate";
import { createTransportAndApp, getAddresses, SeiLedgerOfflineAminoSigner } from "@sei-js/ledger";
const testApp = async () => {
const validatorAddress = "seivaloper1sq7x0r2mf3gvwr2l9amtlye0yd3c6dqa4th95v";
const rpcUrl = "https://rpc-testnet.sei-apis.com/";
const memo = "Delegation";
const path = "m/44'/60'/0'/0/0";
// Create connection to Ledger device
const { app } = await createTransportAndApp();
// Get addresses from Ledger
const { nativeAddress } = await getAddresses(app, path);
// Create signer instance
const ledgerSigner = new SeiLedgerOfflineAminoSigner(app, path);
// Connect to Sei network
const signingStargateClient = await SigningStargateClient.connectWithSigner(
rpcUrl,
ledgerSigner
);
// Create delegation message
const msgDelegate = {
typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
value: {
delegatorAddress: nativeAddress.address,
validatorAddress: validatorAddress,
amount: coins(500, "usei"),
},
};
// Set transaction fee
const fee: StdFee = {
amount: [{ denom: "usei", amount: "20000" }],
gas: "200000",
};
// Sign and broadcast transaction
const result = await signingStargateClient.signAndBroadcast(
nativeAddress.address,
[msgDelegate],
fee,
memo
);
console.log("Broadcast result:", result);
};
testApp();