UNPKG

@vechain/connex

Version:

Standard interface to connect DApp with VeChain and user

98 lines 7.89 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); } }; } } /** 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqRSxPQUFPLEVBQVcsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQVMzRCxtREFBbUQ7QUFDbkQsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFxQjtJQUMzQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtJQUNmLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1NBQ3JDO1FBQ0QsT0FBTyxFQUFFLENBQUE7S0FDWjtTQUFNO1FBQ0gsT0FBTyxDQUFDLENBQUE7S0FDWDtBQUNMLENBQUM7QUFFRCx5Q0FBeUM7QUFDekMsU0FBUyxrQkFBa0IsQ0FBQyxFQUE2QjtJQUNyRCxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQU0sQ0FBQTtJQUNqQixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUM3QixPQUFPLEVBQUUsQ0FBQTtLQUNaO0lBQ0QsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLEVBQXFCLENBQUMsQ0FBQTtJQUMvQyxJQUFJLEVBQUUsRUFBRTtRQUNKLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQTtLQUNmO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FB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