( abiStruct: AbiStruct, context: FileContext )
| 210 | }) |
| 211 | |
| 212 | export 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 | |
| 241 | export const getSetField = ( |
| 242 | struct: AbiStruct, |
no test coverage detected