@vechain/connex
Version:
Standard interface to connect DApp with VeChain and user
109 lines • 7.61 kB
JavaScript
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);
}
getFeesHistory(newestBlock, blockCount, rewardPercentiles) {
return this.noVendor.getFeesHistory(newestBlock, blockCount, rewardPercentiles);
}
getPriorityFeeSuggestion() {
return this.noVendor.getPriorityFeeSuggestion();
}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBR3hDLHlIQUF5SDtBQUN6SCxNQUFNLE9BQU8sVUFBVTtJQUVuQixZQUE2QixNQUE4QjtRQUE5QixXQUFNLEdBQU4sTUFBTSxDQUF3QjtRQURuRCxZQUFPLEdBQXdCLElBQUksQ0FBQTtJQUNvQixDQUFDO0lBRWhFLElBQVksUUFBUTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUMvQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxXQUFXLENBQUMsTUFBc0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFDaEMsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUE7SUFDN0IsQ0FBQztJQUNELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEMsQ0FBQztJQUNGLFFBQVEsQ0FBQyxRQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFDRCxjQUFjLENBQUMsRUFBVSxFQUFFLFlBQXFCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FB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