Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 3.99 KB

InstructionByteDeltaNode.md

File metadata and controls

49 lines (32 loc) · 3.99 KB

InstructionByteDeltaNode

This node represents a difference in bytes stored on-chain from executing an instruction. For instance, if an instruction creates a new account of 42 bytes, this node can provide this information. This enables clients to allocate the right amount of lamports to cover the cost of executing the instruction.

Attributes

Data

Attribute Type Description
kind "instructionByteDeltaNode" The node discriminator.
withHeader boolean (Optional) Whether or not we should add the account header size — i.e. 128 bytes — to the value. Default to false when the value is a ResolverValueNode and true otherwise.
subtract boolean (Optional) Whether or not the provided value should be subtracted from the total byte delta. Defaults to false.

Children

Attribute Type Description
value AccountLinkNode | ArgumentValueNode | NumberValueNode | ResolverValueNode The value representing the byte delta. If an AccountLinkNode is used, the size of the linked account will be used. If an ArgumentValueNode is used, the value of the instruction argument will be used. If a NumberValueNode is used, that explicit number will be used. Otherwise, a ResolverValueNode can be used as a fallback for more complex values.

Functions

instructionByteDeltaNode(value, options?)

Helper function that creates a InstructionByteDeltaNode object from a value node and some options.

const node = instructionByteDeltaNode(numberValueNode(42), { withHeader: false });

Examples

A byte delta that represents a new account

instructionByteDeltaNode(accountLinkNode('token'));

A byte delta that represents an account deletion

instructionByteDeltaNode(accountLinkNode('token'), { subtract: true });

A byte delta that uses an argument value to increase the space of an account

instructionByteDeltaNode(argumentValueNode('additionalSpace'), { withHeader: false });