@ledgerhq/coin-algorand
Version:
Ledger Algorand Coin integration
40 lines (36 loc) • 1.21 kB
text/typescript
import algosdk, { base64ToBytes, makePaymentTxnWithSuggestedParamsFromObject } from "algosdk";
import { broadcast } from "./broadcast";
import coinConfig from "./config";
import { getTransactionParams } from "./network";
describe("Broadcast", () => {
beforeAll(() => {
coinConfig.setCoinConfig(
() =>
({
status: { type: "active" },
node: "https://algorand.coin.ledger.com/ps2/v2",
}) as any,
);
});
it("throws on insufficient funds", async () => {
const sender = algosdk.generateAccount();
const receiver = algosdk.generateAccount();
const params = await getTransactionParams();
const tx = makePaymentTxnWithSuggestedParamsFromObject({
sender: sender.addr,
receiver: receiver.addr,
amount: 1,
suggestedParams: {
...params,
firstValid: params.lastRound,
lastValid: params.lastRound + 1000,
genesisHash: base64ToBytes(params.genesisHash),
},
});
const signed = tx.signTxn(sender.sk);
const hex = Buffer.from(signed).toString("hex");
await expect(broadcast({ signedOperation: { signature: hex } } as any)).rejects.toThrow(
/overspend/,
);
});
});