@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
63 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterParameter = exports.getABINameFromSituationName = exports.getParameter = void 0;
const ethers_1 = require("ethers");
const types_1 = require("../types");
function getParameter(name, value, type) {
const parameter = {
name: name,
value: "",
solidityType: type,
};
const coder = new ethers_1.ethers.utils.AbiCoder();
if (type === types_1.ParameterType.ADDRESS) {
parameter.value = coder.encode(["address"], [value]);
return parameter;
}
else if (type === types_1.ParameterType.UINT256) {
parameter.value = coder.encode(["uint256"], [value]);
return parameter;
}
else if (type === types_1.ParameterType.STRING) {
parameter.value = coder.encode(["string"], [value]);
return parameter;
}
else if (type === types_1.ParameterType.BYTES) {
parameter.value = value;
return parameter;
}
else if (type === types_1.ParameterType.BOOL) {
parameter.value = coder.encode(["bool"], [value]);
return parameter;
}
return parameter;
}
exports.getParameter = getParameter;
const getABINameFromSituationName = (situationName) => {
switch (situationName) {
case "GeneralSituation":
return "DAOVoting";
case "ParameterSituation":
return "DAOParameterStorage";
case "MembershipSituation":
return "DAOMemberStorage";
case "ConstitutionSituation":
return "DAOParameterStorage";
default:
return null;
}
};
exports.getABINameFromSituationName = getABINameFromSituationName;
const filterParameter = (parameters, type, name = "") => {
return parameters.filter((parameter) => {
if (String(parameter.solidityType) === String(types_1.ParameterType.NONE)) {
return parameter.name === name;
}
if (name === "") {
return String(parameter.solidityType) === type.toString();
}
return String(parameter.solidityType) === type.toString() && parameter.name === name;
});
};
exports.filterParameter = filterParameter;
//# sourceMappingURL=create-proposal-helper.js.map