UNPKG

@meterio/flex-framework

Version:

A library implements Meter Flex interface

151 lines 11.2 kB
"use strict"; 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.newVendor = void 0; const R = require("./rules"); const V = require("validator-ts"); const abi_1 = require("@meterio/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(), token: c.token, 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, token: R.uint32, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay92ZW5kb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLGtDQUFrQztBQUNsQyxrREFBK0M7QUFFL0MsU0FBZ0IsU0FBUyxDQUFDLE1BQW1CO0lBQzNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxDQUFRLENBQUM7YUFDM0M7aUJBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUMxQixPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBUSxDQUFDO2FBQzdDO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLCtCQUErQixDQUFDLENBQUM7YUFDM0Q7UUFDSCxDQUFDO1FBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1osSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckQsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQWhCRCw4QkFnQkM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixNQUFtQjtJQUVuQixNQUFNLElBQUksR0FBNkIsRUFBRSxDQUFDO0lBRTFDLE9BQU87UUFDTCxNQUFNLENBQUMsSUFBSTtZQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsR0FBRztZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxTQUFTLENBQUMsSUFBSTtZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxRQUFRLENBQUMsT0FBTztZQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFLHlCQUF5QixDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQU0sUUFBUSxFQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsSUFBSSxDQUNKLEdBQUcsRUFDSDtvQkFDRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO2lCQUNqRSxFQUNELG1CQUFtQixDQUNwQixDQUFDO2dCQUNGLE9BQU87b0JBQ0wsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO2lCQUN2QyxDQUFDO1lBQ0osQ0FBQyxDQUFBLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRztZQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNwQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUNwQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRzthQUN2RCxDQUFDLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxHQUFTLEVBQUU7Z0JBQ2pCLElBQUk7b0JBQ0YsT0FBTyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNsRDtnQkFBQyxPQUFPLEdBQUcsRUFBRTtvQkFDWixNQUFNLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUEsQ0FBQyxFQUFFLENBQUM7UUFDUCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUM1QixNQUFtQjtJQUVuQixNQUFNLElBQUksR0FBK0IsRUFBRSxDQUFDO0lBRTVDLE9BQU87UUFDTCxNQUFNLENBQUMsSUFBSTtZQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRztZQUNULENBQUMsQ0FBQyxJQUFJLENBQ0osR0FBRyxFQUNIO2dCQUNFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUNYLENBQUMsS0FBSyxXQUFXLElBQUksQ0FBQyxLQUFLLGdCQUFnQjtvQkFDekMsQ0FBQyxDQUFDLEVBQUU7b0JBQ0osQ0FBQyxDQUFDLDBDQUEwQztnQkFDaEQsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDbEQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO2lCQUNsQjthQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7WUFFRixPQUFPLENBQUMsR0FBUyxFQUFFO2dCQUNqQixJQUFJO29CQUNGLE9BQU8sTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDekM7Z0JBQUMsT0FBTyxHQUFHLEVBQUU7b0JBQ1osTUFBTSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDO1FBQ1AsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxRQUFTLFNBQVEsS0FBSztJQUMxQixZQUFZLEdBQVc7UUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBRUQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO0FBRXJDLE1BQU0sWUFBWSxHQUE0QztJQUM1RCxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3pCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNmLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekIsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QixHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztTQUMxQjtRQUNELElBQUk7WUFDRixpREFBaUQ7WUFDakQsSUFBSSxTQUFHLENBQUMsUUFBUSxDQUFDLENBQVEsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sdUJBQXVCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUM5QztJQUNILENBQUMsQ0FBQztDQUNILENBQUMifQ==