@ledgerhq/coin-canton
Version:
86 lines (83 loc) • 2.88 kB
text/typescript
import {
CoinModuleApi,
Balance,
Block,
BlockInfo,
CraftedTransaction,
Cursor,
FeeEstimation,
ListOperationsOptions,
Operation,
Page,
Reward,
Stake,
TransactionIntent,
TransactionValidation,
Validator,
} from "@ledgerhq/coin-module-framework/api/index";
import { craftTransactionData } from "@ledgerhq/coin-module-framework/logic/craftTransactionData";
import { validateAddress } from "../bridge/validateAddress";
import { combine } from "../common-logic/transaction/combine";
import coinConfig, { type CantonCoinConfig } from "../config";
export function createApi(config: CantonCoinConfig): CoinModuleApi {
coinConfig.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
return {
async call() {
throw new Error("call is not supported");
},
broadcast: (_tx: string): Promise<string> => {
throw new Error("broadcast is not supported");
},
combine,
craftTransaction(_transactionIntent: TransactionIntent, _customFees?: FeeEstimation) {
throw new Error("craftTransaction is not supported");
},
craftRawTransaction: (
_transaction: string,
_sender: string,
_publicKey: string,
_sequence: bigint,
): Promise<CraftedTransaction> => {
throw new Error("craftRawTransaction is not supported");
},
estimateFees(_transactionIntent: TransactionIntent): Promise<FeeEstimation> {
throw new Error("estimateFees is not supported");
},
getBalance(_address: string): Promise<Balance[]> {
throw new Error("getBalance is not supported");
},
lastBlock(): Promise<BlockInfo> {
throw new Error("listOperations is not supported");
},
listOperations(_address: string, _options: ListOperationsOptions): Promise<Page<Operation>> {
throw new Error("listOperations is not supported");
},
getBlock(_height): Promise<Block> {
throw new Error("getBlock is not supported");
},
getBlockInfo(_height: number): Promise<BlockInfo> {
throw new Error("getBlockInfo is not supported");
},
getStakes(_address: string, _cursor?: Cursor): Promise<Page<Stake>> {
throw new Error("getStakes is not supported");
},
getRewards(_address: string, _cursor?: Cursor): Promise<Page<Reward>> {
throw new Error("getRewards is not supported");
},
getValidators(_cursor?: Cursor): Promise<Page<Validator>> {
throw new Error("getValidators is not supported");
},
validateIntent: async (
_transactionIntent: TransactionIntent,
_balances: Balance[],
_customFees?: FeeEstimation,
): Promise<TransactionValidation> => {
throw new Error("validateIntent is not supported");
},
getNextSequence: async (_address: string) => {
throw new Error("getNextSequence is not supported");
},
validateAddress,
craftTransactionData,
};
}