@etherspot/prime-sdk
Version:
Etherspot Prime (Account Abstraction) SDK
31 lines (30 loc) • 1.13 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.IsBigNumberish = void 0;
const ethers_1 = require("ethers");
const class_validator_1 = require("class-validator");
function IsBigNumberish(options = {}, validationOptions = {}) {
return (object, propertyName) => {
const { positive } = options;
(0, class_validator_1.registerDecorator)({
propertyName,
options: Object.assign({ message: `${propertyName} must be ${positive ? 'positive ' : ''}big numberish` }, validationOptions),
name: 'IsBigNumberish',
target: object.constructor,
constraints: [],
validator: {
validate(value) {
let result = false;
try {
const bn = ethers_1.BigNumber.from(value);
result = positive ? bn.gt(0) : bn.gte(0);
}
catch (err) {
}
return result;
},
},
});
};
}
exports.IsBigNumberish = IsBigNumberish;
;