Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules/
.DS_Store
cache/
artifacts/
tmp/
16 changes: 6 additions & 10 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
exports.__esModule = true;
var path = require('path');
var encodeType = require('signtypeddata-v5').TypedDataUtils.encodeType;
function camelCase(str) {
return str.toLowerCase().replace(/_(.)/g, function (match, group1) {
return group1.toUpperCase();
});
}
var change_case_all_1 = require("change-case-all");
var basicEncodableTypes = [
'address',
'bool',
Expand Down Expand Up @@ -89,7 +85,7 @@ function generateCodeFrom(types, entryTypes) {
orderedTypes.forEach(function (type) {
var typeName = type.name;
var fields = type.fields;
var typeHash = "bytes32 constant ".concat(camelCase(typeName.toUpperCase() + '_TYPEHASH'), " = keccak256(\"").concat(encodeType(typeName, types.types), "\");\n");
var typeHash = "bytes32 constant ".concat((0, change_case_all_1.camelCase)((0, change_case_all_1.snakeCase)(typeName).toUpperCase() + '_TYPEHASH'), " = keccak256(\"").concat(encodeType(typeName, types.types), "\");\n");
var struct = "struct ".concat(typeName, " {\n").concat(fields.map(function (field) { return " ".concat(field.type, " ").concat(field.name, ";\n"); }).join(''), "}\n");
generatePacketHashGetters(types, typeName, fields, packetHashGetters);
results.push({ struct: struct, typeHash: typeHash });
Expand All @@ -110,7 +106,7 @@ function generatePacketHashGetters(types, typeName, fields, packetHashGetters) {
}
}
else {
packetHashGetters.push("\nfunction ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n bytes memory encoded = abi.encode(\n ").concat(camelCase(typeName.toUpperCase() + '_TYPEHASH'), ",\n ").concat(fields.map(getEncodedValueFor).join(',\n '), "\n );\n return keccak256(encoded);\n}\n"));
packetHashGetters.push("\nfunction ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n bytes memory encoded = abi.encode(\n ").concat((0, change_case_all_1.camelCase)((0, change_case_all_1.snakeCase)(typeName).toUpperCase() + '_TYPEHASH'), ",\n ").concat(fields.map(getEncodedValueFor).join(',\n '), "\n );\n return keccak256(encoded);\n}\n"));
}
});
return packetHashGetters;
Expand All @@ -132,12 +128,12 @@ function getEncodedValueFor(field) {
}
function packetHashGetterName(typeName) {
if (typeName === 'EIP712Domain') {
return camelCase('GET_EIP_712_DOMAIN_PACKET_HASH');
return (0, change_case_all_1.camelCase)('GET_EIP_712_DOMAIN_PACKET_HASH');
}
if (typeName.includes('[]')) {
return camelCase("GET_".concat(typeName.substr(0, typeName.length - 2).toUpperCase(), "_ARRAY_PACKET_HASH"));
return (0, change_case_all_1.camelCase)("GET_".concat((0, change_case_all_1.snakeCase)(typeName.substr(0, typeName.length - 2)).toUpperCase(), "_ARRAY_PACKET_HASH"));
}
return camelCase("GET_".concat(typeName.toUpperCase(), "_PACKET_HASH"));
return (0, change_case_all_1.camelCase)("GET_".concat((0, change_case_all_1.snakeCase)(typeName).toUpperCase(), "_PACKET_HASH"));
}
/**
* For encoding arrays of structs.
Expand Down
16 changes: 7 additions & 9 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ const path = require('path');
const {
encodeType,
} = require('signtypeddata-v5').TypedDataUtils;
function camelCase (str) {
return str.toLowerCase().replace(/_(.)/g, function(match, group1) {
return group1.toUpperCase();
});
}
import { camelCase, snakeCase } from 'change-case-all';



const basicEncodableTypes = [
'address',
Expand Down Expand Up @@ -189,7 +187,7 @@ function generateCodeFrom(types, entryTypes: string[]) {
const typeName = type.name;
const fields = type.fields;

const typeHash = `bytes32 constant ${camelCase(typeName.toUpperCase()+'_TYPEHASH')} = keccak256("${encodeType(typeName, types.types)}");\n`;
const typeHash = `bytes32 constant ${camelCase(snakeCase(typeName).toUpperCase()+'_TYPEHASH')} = keccak256("${encodeType(typeName, types.types)}");\n`;
const struct = `struct ${typeName} {\n${fields.map((field) => { return ` ${field.type} ${field.name};\n`}).join('')}}\n`;

generatePacketHashGetters(types, typeName, fields, packetHashGetters);
Expand Down Expand Up @@ -226,7 +224,7 @@ function ${packetHashGetterName(field.type)} (${field.type} memory _input) publi
packetHashGetters.push(`
function ${packetHashGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes32) {
bytes memory encoded = abi.encode(
${camelCase(typeName.toUpperCase() + '_TYPEHASH')},
${camelCase(snakeCase(typeName).toUpperCase() + '_TYPEHASH')},
${fields.map(getEncodedValueFor).join(',\n ')}
);
return keccak256(encoded);
Expand Down Expand Up @@ -264,9 +262,9 @@ function packetHashGetterName (typeName) {
return camelCase('GET_EIP_712_DOMAIN_PACKET_HASH');
}
if (typeName.includes('[]')) {
return camelCase(`GET_${typeName.substr(0, typeName.length - 2).toUpperCase()}_ARRAY_PACKET_HASH`);
return camelCase(`GET_${snakeCase(typeName.substr(0, typeName.length - 2)).toUpperCase()}_ARRAY_PACKET_HASH`);
}
return camelCase(`GET_${typeName.toUpperCase()}_PACKET_HASH`);
return camelCase(`GET_${snakeCase(typeName).toUpperCase()}_PACKET_HASH`);
}

/**
Expand Down
Loading