@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
45 lines (41 loc) • 986 B
text/typescript
import type { AccountLike } from "@ledgerhq/types-live";
import BigNumber from "bignumber.js";
import invariant from "invariant";
import type { Transaction } from "./types";
const options = [
{
name: "fee",
type: String,
desc: "how much fee",
},
{
name: "tag",
type: Number,
desc: "ripple tag",
},
];
function inferTransactions(
transactions: Array<{
account: AccountLike;
transaction: Transaction;
}>,
opts: { tag?: number | null | undefined; fee?: string },
{
inferAmount,
}: { inferAmount: (account: AccountLike, fee?: string) => BigNumber | null | undefined },
): Transaction[] {
return transactions.flatMap(({ transaction, account }) => {
invariant(transaction.family === "xrp", "XRP family");
return {
...transaction,
fees: inferAmount(account, opts.fee || "0.001xrp"),
tag: opts.tag,
};
});
}
export default function makeCliTools() {
return {
options,
inferTransactions,
};
}