@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
36 lines (29 loc) • 1.5 kB
text/typescript
import type { ConcordiumSigner } from "@ledgerhq/coin-concordium";
import { createBridges } from "@ledgerhq/coin-concordium/bridge/index";
import concordiumResolver from "@ledgerhq/coin-concordium/signer";
import type { ConcordiumCoinConfig } from "@ledgerhq/coin-concordium/config";
import { ConcordiumAccount, Transaction, TransactionStatus } from "@ledgerhq/coin-concordium/types";
import makeCliTools from "@ledgerhq/coin-concordium/test/cli";
import Concordium from "@ledgerhq/hw-app-concordium";
import Transport from "@ledgerhq/hw-transport";
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
import type { Bridge } from "@ledgerhq/types-live";
import { CreateSigner, createResolver, executeWithSigner } from "../../bridge/setup";
import { getCurrencyConfiguration } from "../../config";
import type { Resolver } from "../../hw/getAddress/types";
const createSigner: CreateSigner<ConcordiumSigner> = (transport: Transport): ConcordiumSigner => {
return new Concordium(transport);
};
const getCurrencyConfig = (currency?: CryptoCurrency) => {
if (!currency) {
throw new Error("currency not defined");
}
return getCurrencyConfiguration<ConcordiumCoinConfig>(currency);
};
const bridge: Bridge<Transaction, ConcordiumAccount, TransactionStatus> = createBridges(
executeWithSigner(createSigner),
getCurrencyConfig,
);
const resolver: Resolver = createResolver(createSigner, concordiumResolver);
const cliTools = makeCliTools();
export { bridge, cliTools, resolver };