UNPKG

simonzgconnexframework

Version:

A library implements VeChain Connex interface

146 lines 10.9 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const R = require("./rules"); const V = require("validator-ts"); const abi_1 = require("thor-devkit/dist/abi"); function newVendor(driver) { return { sign: (kind) => { if (kind === 'tx') { return newTxSigningService(driver); } else if (kind === 'cert') { return newCertSigningService(driver); } else { throw new R.BadParameter(`arg0: expected 'tx' or 'cert'`); } }, owned: (addr) => { addr = R.test(addr, R.address, 'arg0').toLowerCase(); return driver.isAddressOwned(addr); } }; } exports.newVendor = newVendor; function newTxSigningService(driver) { const opts = {}; return { signer(addr) { opts.signer = R.test(addr, R.address, 'arg0').toLowerCase(); return this; }, gas(gas) { opts.gas = R.test(gas, R.uint64, 'arg0'); return this; }, dependsOn(txid) { opts.dependsOn = R.test(txid, R.bytes32, 'arg0').toLowerCase(); return this; }, link(url) { opts.link = R.test(url, R.string, 'arg0'); return this; }, comment(text) { opts.comment = R.test(text, R.string, 'arg0'); return this; }, delegate(handler) { R.ensure(typeof handler === 'function', `arg0: expected function`); opts.delegationHandler = (unsigned) => __awaiter(this, void 0, void 0, function* () { const obj = yield handler(unsigned); R.test(obj, { signature: v => R.isHexBytes(v, 65) ? '' : 'expected 65 bytes' }, 'delegation-result'); return { signature: obj.signature.toLowerCase() }; }); return this; }, request(msg) { R.test(msg, [clauseScheme], 'arg0'); const transformedMsg = msg.map(c => ({ to: c.to ? c.to.toLowerCase() : null, value: c.value.toString().toLowerCase(), data: (c.data || '0x').toLowerCase(), comment: c.comment, abi: c.abi ? JSON.parse(JSON.stringify(c.abi)) : c.abi })); return (() => __awaiter(this, void 0, void 0, function* () { try { return yield driver.signTx(transformedMsg, opts); } catch (err) { throw new Rejected(err.message); } }))(); } }; } function newCertSigningService(driver) { const opts = {}; return { signer(addr) { opts.signer = R.test(addr, R.address, 'arg0').toLowerCase(); return this; }, link(url) { opts.link = R.test(url, R.string, 'arg0'); return this; }, request(msg) { R.test(msg, { purpose: v => (v === 'agreement' || v === 'identification') ? '' : `expected 'agreement' or 'identification'`, payload: { type: v => v === 'text' ? '' : `expected 'text'`, content: R.string } }, 'arg0'); return (() => __awaiter(this, void 0, void 0, function* () { try { return yield driver.signCert(msg, opts); } catch (err) { throw new Rejected(err.message); } }))(); } }; } class Rejected extends Error { constructor(msg) { super(msg); } } Rejected.prototype.name = 'Rejected'; const clauseScheme = { to: V.nullable(R.address), value: R.bigInt, data: V.optional(R.bytes), comment: V.optional(R.string), abi: V.optional(v => { if (!(v instanceof Object)) { return 'expected object'; } try { // tslint:disable-next-line: no-unused-expression new abi_1.abi.Function(v); return ''; } catch (err) { return `expected valid ABI (${err.message})`; } }) }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay92ZW5kb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDZCQUE0QjtBQUM1QixrQ0FBaUM7QUFDakMsOENBQTBDO0FBRTFDLFNBQWdCLFNBQVMsQ0FBQyxNQUFxQjtJQUMzQyxPQUFPO1FBQ0gsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQVEsQ0FBQTthQUM1QztpQkFBTSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFRLENBQUE7YUFDOUM7aUJBQU07Z0JBQ0gsTUFBTSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsK0JBQStCLENBQUMsQ0FBQTthQUM1RDtRQUNMLENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNaLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3BELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN0QyxDQUFDO0tBQ0osQ0FBQTtBQUNMLENBQUM7QUFoQkQsOEJBZ0JDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxNQUFxQjtJQUM5QyxNQUFNLElBQUksR0FBK0IsRUFBRSxDQUFBO0lBRTNDLE9BQU87UUFDSCxNQUFNLENBQUMsSUFBSTtZQUNQLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUMzRCxPQUFPLElBQUksQ0FBQTtR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