@ledgerhq/coin-stellar
Version:
Ledger Stellar Coin integration
64 lines • 2.81 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBridges = void 0;
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
const estimateMaxSpendable_1 = require("./estimateMaxSpendable");
const getTransactionStatus_1 = require("./getTransactionStatus");
const prepareTransaction_1 = require("./prepareTransaction");
const createTransaction_1 = require("./createTransaction");
const signOperation_1 = require("./signOperation");
const broadcast_1 = require("./broadcast");
const getAddressWrapper_1 = __importDefault(require("@ledgerhq/coin-framework/bridge/getAddressWrapper"));
const signer_1 = __importDefault(require("../signer"));
const synchronization_1 = require("./synchronization");
const config_1 = __importDefault(require("../config"));
const PRELOAD_MAX_AGE = 30 * 60 * 1000; // 30 minutes
function buildCurrencyBridge(signerContext) {
const getAddress = (0, signer_1.default)(signerContext);
const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
getAccountShape: synchronization_1.getAccountShape,
getAddressFn: getAddress,
});
function getPreloadStrategy() {
return {
preloadMaxAge: PRELOAD_MAX_AGE,
};
}
return {
getPreloadStrategy,
preload: async () => { },
hydrate: () => { },
scanAccounts,
};
}
function buildAccountBridge(signerContext) {
const getAddress = (0, signer_1.default)(signerContext);
const receive = (0, jsHelpers_1.makeAccountBridgeReceive)((0, getAddressWrapper_1.default)(getAddress));
const signOperation = (0, signOperation_1.buildSignOperation)(signerContext);
const sync = (0, jsHelpers_1.makeSync)({ getAccountShape: synchronization_1.getAccountShape });
const accountBridge = {
createTransaction: createTransaction_1.createTransaction,
updateTransaction: jsHelpers_1.updateTransaction,
prepareTransaction: prepareTransaction_1.prepareTransaction,
estimateMaxSpendable: estimateMaxSpendable_1.estimateMaxSpendable,
getTransactionStatus: getTransactionStatus_1.getTransactionStatus,
sync,
receive,
signOperation,
broadcast: broadcast_1.broadcast,
getSerializedAddressParameters: jsHelpers_1.getSerializedAddressParameters,
};
return accountBridge;
}
function createBridges(signerContext, coinConfig) {
config_1.default.setCoinConfig(coinConfig);
return {
currencyBridge: buildCurrencyBridge(signerContext),
accountBridge: buildAccountBridge(signerContext),
};
}
exports.createBridges = createBridges;
//# sourceMappingURL=index.js.map