FieldDiscriminatorNodeThis node represents a byte discrimination strategy where the data is identified by the default value of a struct field at a given offset. Discriminator nodes are used to distinguish between different types of accounts or instructions in a program.
| Attribute | Type | Description |
|---|---|---|
kind |
"fieldDiscriminatorNode" |
The node discriminator. |
field |
CamelCaseString |
The name of the StructFieldTypeNode we should use to identify the data. |
offset |
number |
The byte at which the field should be located. |
This node has no children.
fieldDiscriminatorNode(field, offset?)Helper function that creates a FieldDiscriminatorNode object from a field name and an optional offset.
const node = fieldDiscriminatorNode('accountState', 64);
accountNode({
data: structTypeNode([
structFieldTypeNode({
name: 'discriminator',
type: numberTypeNode('u32'),
defaultValue: numberValueNode(42),
defaultValueStrategy: 'omitted',
}),
// ...
]),
discriminators: [fieldDiscriminatorNode('discriminator')],
// ...
});
instructionNode({
arguments: [
instructionArgumentNode({
name: 'discriminator',
type: fixedSizeTypeNode(bytesTypeNode(), 8),
defaultValue: bytesValueNode('base16', '0011223344556677'),
defaultValueStrategy: 'omitted',
}),
// ...
],
discriminators: [fieldDiscriminatorNode('discriminator')],
// ...
});