UNPKG

@vechain/connex

Version:

Standard interface to connect DApp with VeChain and user

104 lines 8.69 kB
import { Framework, newVendor } from '@vechain/connex-framework'; import { genesisBlocks } from './config'; import { createFull, createNoVendor, LazyDriver } from './driver'; import { createSync, createSync2 } from './signer'; /** convert options.network to Connex.Thor.Block */ function normalizeNetwork(n) { n = n || 'main'; if (typeof n === 'string') { const gb = genesisBlocks[n]; if (!gb) { throw new Error('invalid network'); } return gb; } else { return n; } } /** convert network name to genesis id */ function normalizeGenesisId(id) { id = id || 'main'; if (/^0x[0-9a-f]{64}$/.test(id)) { return id; } const gb = genesisBlocks[id]; if (gb) { return gb.id; } throw new Error('invalid genesis id'); } /** convert options.signer to a signer creation function */ function normalizeSigner(genesisId, signer) { switch (signer.toLocaleLowerCase()) { case 'sync': if (!window.connex) { throw new Error('Sync not found'); } if (window.connex.thor.genesis.id !== genesisId) { throw new Error('Network mismatch'); } return createSync; case 'sync2': return createSync2; default: throw new Error('unsupported signer'); } } /** Thor class which can work stand alone to provide reading-services only */ class ThorClass { constructor(opts) { const genesis = normalizeNetwork(opts.network); const driver = createNoVendor(opts.node, genesis); const framework = new Framework(driver); return { get genesis() { return framework.thor.genesis; }, get status() { return framework.thor.status; }, get ticker() { return framework.thor.ticker.bind(framework.thor); }, get account() { return framework.thor.account.bind(framework.thor); }, get block() { return framework.thor.block.bind(framework.thor); }, get transaction() { return framework.thor.transaction.bind(framework.thor); }, get filter() { return framework.thor.filter.bind(framework.thor); }, get explain() { return framework.thor.explain.bind(framework.thor); }, get fees() { return { get history() { return framework.thor.fees.history.bind(framework.thor.fees); }, get priorityFee() { return framework.thor.fees.priorityFee.bind(framework.thor.fees); }, }; }, }; } } /** Vendor class which can work standalone to provides signing-services only */ class VendorClass { constructor(genesisId, signer = 'sync2') { genesisId = normalizeGenesisId(genesisId); const newSigner = normalizeSigner(genesisId, signer); const driver = new LazyDriver(newSigner(genesisId)); const vendor = newVendor(driver); return { get sign() { return vendor.sign.bind(vendor); } }; } } /** Connex class */ class ConnexClass { constructor(opts) { var _a; const genesis = normalizeNetwork(opts.network); const newSigner = normalizeSigner(genesis.id, (_a = opts.signer) !== null && _a !== void 0 ? _a : 'sync2'); const driver = createFull(opts.node, genesis, newSigner); const framework = new Framework(driver); return { get thor() { return framework.thor; }, get vendor() { return framework.vendor; } }; } } ConnexClass.Thor = ThorClass; ConnexClass.Vendor = VendorClass; export default ConnexClass; export { ConnexClass as Connex }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRSxPQUFPLEVBQVcsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVM1RCxtREFBbUQ7QUFDbkQsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFxQjtJQUMzQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtJQUNmLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN0QyxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sQ0FBQyxDQUFBO0lBQ1osQ0FBQztBQUNMLENBQUM7QUFFRCx5Q0FBeUM7QUFDekMsU0FBUyxrQkFBa0IsQ0FBQyxFQUE2QjtJQUNyRCxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQU0sQ0FBQTtJQUNqQixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUNELE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxFQUFxQixDQUFDLENBQUE7SUFDL0MsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUNo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