MCPcopy Create free account
hub / github.com/d1ll0n/stack-packer / processStruct

Function processStruct

src/code-gen/fields.ts:212–239  ·  view source on GitHub ↗
(
  abiStruct: AbiStruct,
  context: FileContext
)

Source from the content-addressed store, hash-verified

210})
211
212export const processStruct = (
213 abiStruct: AbiStruct,
214 context: FileContext
215) => {
216 const fields = processFields(abiStruct, context);
217 const struct: ProcessedStruct = {
218 ...abiStruct,
219 fields,
220 ...getAccessorOptions(abiStruct.name, abiStruct.accessors),
221 getterName: 'decode',
222 setterName: 'encode',
223 groups: []
224 }
225 for (const abiGroup of abiStruct.groups) {
226 const groupFields = resolveGroupMembers(struct, abiGroup, fields)
227 const groupMask = getGroupOmissionMask(groupFields);
228 const omitMaskName = `${struct.name}_${abiGroup.name}_maskOut`;
229 const maskReference = context.addConstant(omitMaskName, groupMask);
230 const group: ProcessedGroup = {
231 ...abiGroup,
232 fields: groupFields,
233 ...getAccessorOptions(abiGroup.name, abiGroup.accessors),
234 omitMaskReference: maskReference
235 }
236 struct.groups.push(group)
237 }
238 return struct;
239}
240
241export const getSetField = (
242 struct: AbiStruct,

Callers 1

createLibraryMethod · 0.90

Calls 5

getGroupOmissionMaskFunction · 0.90
processFieldsFunction · 0.85
getAccessorOptionsFunction · 0.85
resolveGroupMembersFunction · 0.85
addConstantMethod · 0.80

Tested by

no test coverage detected