@ledgerhq/coin-canton
Version:
38 lines • 1.5 kB
JavaScript
import coinConfig from "../config";
import { broadcast, combine, craftTransaction, estimateFees, getBalance, getNextValidSequence, lastBlock, listOperations, } from "../common-logic";
import BigNumber from "bignumber.js";
export function createApi(config) {
coinConfig.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
return {
broadcast,
combine,
craftTransaction: craft,
estimateFees: estimate,
getBalance,
lastBlock,
listOperations,
getBlock(_height) {
throw new Error("getBlock is not supported");
},
getBlockInfo(_height) {
throw new Error("getBlockInfo is not supported");
},
};
}
async function craft(transactionIntent) {
const nextSequenceNumber = await getNextValidSequence(transactionIntent.sender);
const tx = await craftTransaction({ address: transactionIntent.sender, nextSequenceNumber }, {
recipient: transactionIntent.recipient,
amount: new BigNumber(transactionIntent.amount.toString()),
});
return tx.serializedTransaction;
}
async function estimate(transactionIntent) {
const { serializedTransaction } = await craftTransaction({ address: transactionIntent.sender }, {
recipient: transactionIntent.recipient,
amount: new BigNumber(transactionIntent.amount.toString()),
});
const value = await estimateFees(serializedTransaction);
return { value };
}
//# sourceMappingURL=index.js.map