UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

29 lines 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cast = void 0; const ethers_1 = require("ethers"); function cast(object) { if (isSolidityStructArray(object)) { return object.map((element) => cast(element)); } if (!isSolidityStruct(object)) { return object; } return Object.keys(object).reduce((prevKeys, currentKey) => { if (Number.isInteger(+currentKey)) { return prevKeys; } return { ...prevKeys, [currentKey]: cast(object[currentKey]) }; }, {}); } exports.cast = cast; function isSolidityStruct(object) { return hasNonNumericProperty(object) && !(object instanceof ethers_1.BigNumber); } function isSolidityStructArray(object) { return Array.isArray(object) && object.length > 0 && !hasNonNumericProperty(object) && isSolidityStruct(object[0]); } function hasNonNumericProperty(object) { return Object.keys(object).some((key) => !Number.isInteger(+key)); } //# sourceMappingURL=caster.js.map