UNPKG

@vechain/connex

Version:

Standard interface to connect DApp with VeChain and user

103 lines 7.06 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; /* eslint-disable @typescript-eslint/no-unused-vars */ import { DriverNoVendor, SimpleNet } from '@vechain/connex-driver'; import { blake2b256 } from 'thor-devkit'; /** the LazyDriver implements vendor methods at construction but allows attaching NoVendorDriver later to be a full one*/ export class LazyDriver { constructor(signer) { this.signer = signer; this._driver = null; } get noVendor() { if (!this._driver) { throw new Error('thor driver is not ready'); } return this._driver; } setNoVendor(driver) { this._driver = driver; } get genesis() { return this.noVendor.genesis; } get head() { return this.noVendor.head; } pollHead() { return this.noVendor.pollHead(); } getBlock(revision) { return this.noVendor.getBlock(revision); } getTransaction(id, allowPending) { return this.noVendor.getTransaction(id, allowPending); } getReceipt(id) { return this.noVendor.getReceipt(id); } getAccount(addr, revision) { return this.noVendor.getAccount(addr, revision); } getCode(addr, revision) { return this.noVendor.getCode(addr, revision); } getStorage(addr, key, revision) { return this.noVendor.getStorage(addr, key, revision); } explain(arg, revision, cacheHints) { return this.noVendor.explain(arg, revision, cacheHints); } filterEventLogs(arg) { return this.noVendor.filterEventLogs(arg); } filterTransferLogs(arg) { return this.noVendor.filterTransferLogs(arg); } signTx(msg, options) { return __awaiter(this, void 0, void 0, function* () { return this.signer.then(b => b.signTx(msg, options)); }); } signCert(msg, options) { return __awaiter(this, void 0, void 0, function* () { return this.signer.then(b => b.signCert(msg, options)); }); } } const cache = {}; /** * create a no vendor driver * @param node the url of thor node * @param genesis the enforced genesis block */ export function createNoVendor(node, genesis) { const key = blake2b256(JSON.stringify({ node, genesis })).toString('hex'); let driver = cache[key]; if (!driver) { cache[key] = driver = new DriverNoVendor(new SimpleNet(node), genesis); } return driver; } /** * create a full driver * @param node the url of thor node * @param genesis the enforced genesis block * @param newSigner a function to create signer */ export function createFull(node, genesis, newSigner) { const driver = new LazyDriver(newSigner(genesis.id)); driver.setNoVendor(createNoVendor(node, genesis)); return driver; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBR3hDLHlIQUF5SDtBQUN6SCxNQUFNLE9BQU8sVUFBVTtJQUVuQixZQUE2QixNQUE4QjtRQUE5QixXQUFNLEdBQU4sTUFBTSxDQUF3QjtRQURuRCxZQUFPLEdBQXdCLElBQUksQ0FBQTtJQUNvQixDQUFDO0lBRWhFLElBQVksUUFBUTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtTQUM5QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQXNCO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFBO0lBQ2hDLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFBO0lBQzdCLENBQUM7SUFDRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2xDLENBQUM7SUFDRixRQUFRLENBQUMsUUFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsY0FBYyxDQUFDLEVBQVUsRUFBRSxZQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBQ0YsVUFBVSxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ0YsVUFBVSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBQ0YsT0FBTyxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsUUFBZ0I7UUFDbEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFDRixPQUFPLENBQUMsR0FBNkIsRUFBRSxRQUFnQixFQUFFLFVBQXFCO1FBQzFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBQ0YsZUFBZSxDQUFDLEdBQXFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUNGLGtCQUFrQixDQUFDLEdBQXdDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUksTUFBTSxDQUFDLEdBQTRCLEVBQUUsT0FBZ0M7O1lBQ3ZFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3hELENBQUM7S0FBQTtJQUNLLFFBQVEsQ0FBQyxHQUE4QixFQUFFLE9BQWtDOztZQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO0tBQUE7Q0FDSjtBQUVELE1BQU0sS0FBSyxHQUFtQyxFQUFFLENBQUE7QUFFaEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQTBCO0lBQ25FLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRW5CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtLQUN6RTtJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWSxFQUFFLE9BQTBCLEVBQUUsU0FBd0I7SUFDekYsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRWpELE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUMifQ==