UNPKG

@mutopad/connex-framework

Version:
144 lines 10.8 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.newTxSigningService = exports.newVendor = void 0; const R = require("./rules"); const V = require("validator-ts"); const thor_devkit_1 = require("thor-devkit"); const bignumber_js_1 = require("bignumber.js"); function newVendor(driver) { return { sign: (kind, msg) => { if (kind === 'tx') { R.test(msg, [clauseScheme], 'arg1'); return newTxSigningService(Promise.resolve(driver), msg); } else if (kind === 'cert') { R.test(msg, { purpose: v => (v === 'agreement' || v === 'identification') ? '' : `expected 'agreement' or 'identification'`, payload: { type: v => v === 'text' ? '' : `expected 'text'`, content: R.string } }, 'arg1'); return newCertSigningService(Promise.resolve(driver), msg); } else { throw new R.BadParameter(`arg0: expected 'tx' or 'cert'`); } } }; } exports.newVendor = newVendor; function newTxSigningService(readyDriver, msg) { 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(url, signer) { R.ensure(typeof url === 'string', `arg0: expected url string`); R.test(signer, V.optional(R.address), 'arg1'); opts.delegator = { url, signer: signer && signer.toLowerCase() }; return this; }, accepted(cb) { R.ensure(typeof cb === 'function', 'arg0: expected function'); opts.onAccepted = cb; return this; }, request() { const transformedMsg = msg.map(c => (Object.assign(Object.assign({}, c), { value: new bignumber_js_1.default(c.value).toString(10) }))); return (() => __awaiter(this, void 0, void 0, function* () { try { const driver = yield readyDriver; return yield driver.signTx(transformedMsg, opts); } catch (err) { throw new Rejected(err.message); } }))(); } }; } exports.newTxSigningService = newTxSigningService; function newCertSigningService(readyDriver, msg) { 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; }, accepted(cb) { R.ensure(typeof cb === 'function', 'arg0: expected function'); opts.onAccepted = cb; return this; }, request() { return (() => __awaiter(this, void 0, void 0, function* () { try { const driver = yield readyDriver; 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 { new thor_devkit_1.abi.Function(v).signature; return ''; } catch (err) { return `expected valid ABI (${err.message})`; } }) }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZlbmRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2QkFBNEI7QUFDNUIsa0NBQWlDO0FBQ2pDLDZDQUFpQztBQUNqQywrQ0FBb0M7QUFFcEMsU0FBZ0IsU0FBUyxDQUFDLE1BQXFCO0lBQzNDLE9BQU87UUFDSCxJQUFJLEVBQUUsQ0FBMEIsSUFBTyxFQUFFLEdBQXlFLEVBQU8sRUFBRTtZQUN2SCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUE4QixFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQzlELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUE4QixDQUFDLENBQUE7YUFDdEY7aUJBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQWdDLEVBQUU7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO3dCQUN6RCxFQUFFLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztvQkFDbkQsT0FBTyxFQUFFO3dCQUNMLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO3dCQUNoRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07cUJBQ3BCO2lCQUNKLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQ1YsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQWdDLENBQUMsQ0FBQTthQUMxRjtpQkFBTTtnQkFDSCxN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