@ledgerhq/coin-canton
Version:
22 lines • 1.08 kB
JavaScript
import { signTransaction } from "../common-logic/transaction/sign";
import { prepareTransferInstruction, submitTransferInstruction } from "../network/gateway";
import { validateTopology } from "./getTransactionStatus";
import { isCantonAccount } from "./serialization";
export const buildTransferInstruction = (signerContext) => async (currency, deviceId, account, partyId, contractId, type, reason) => {
if (isCantonAccount(account)) {
const topologyError = await validateTopology(account);
if (topologyError) {
throw topologyError;
}
}
const preparedTransaction = await prepareTransferInstruction(currency, partyId, {
type,
contract_id: contractId,
...(reason ? { reason } : {}),
});
const { signature } = await signerContext(deviceId, async (signer) => {
return await signTransaction(signer, account.freshAddressPath, preparedTransaction);
});
await submitTransferInstruction(currency, partyId, preparedTransaction.serialized, signature);
};
//# sourceMappingURL=acceptOffer.js.map