UNPKG

@decent-bet/solido

Version:

Code first contract entity mapper for Solidity based blockchains like Ethereum, Vechain, Tron

31 lines (30 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const bignumber_js_1 = require("bignumber.js"); const re = '0x[a-fA-F0-9]{40}'; const ethereumRegex = opts => { opts = opts || {}; return opts.exact ? new RegExp('(?:^' + re + '$)') : new RegExp(re, 'g'); }; function validate(params, values) { const keys = Object.keys(params); for (let i = 0; i < values.length; i++) { const val = values[i]; const validationType = params[keys[i]]; if (validationType === 'address') { if (!ethereumRegex({ exact: true }).test(val)) { throw new Error(`Invalid adress type: parameter ${keys[i]}`); } } else if (validationType === 'bignumber') { if (!bignumber_js_1.BigNumber.isBigNumber(val)) { throw new Error(`Invalid bignumber type: parameter ${keys[i]}`); } } else { throw new Error(`Invalid string type: parameter ${keys[i]}`); } } return true; } exports.validate = validate;