ARRAY_BUILDER
ARRAY_BUILDER collects multiple upstream data values into a single typed array. Use it to feed FOR_EACH, BUILD_EVM_MULTICALL, Gnosis Safe owner lists, or any component that expects an array input.
How it works
ARRAY_BUILDER accepts any number of dynamic input variables. Each connected upstream output becomes one element in the output array. The order of elements matches the order connections were created.
COMPUTE_EVM_ADDRESS (owner 1) ──┐
COMPUTE_EVM_ADDRESS (owner 2) ──┤──▶ ARRAY_BUILDER ──▶ owners[]
COMPUTE_EVM_ADDRESS (owner 3) ──┘
Inputs
ARRAY_BUILDER uses dynamic variables — you define the inputs at design time in the component panel. There are no fixed input fields.
Each dynamic input becomes an element in the output array.
Outputs
| Port | Type | Description |
|---|---|---|
array | T[] | Collected array of all connected inputs. Element type is inferred from the connected sources. |
Examples
Build a Safe owner list
COMPUTE_EVM_ADDRESS (key 1) ──┐
COMPUTE_EVM_ADDRESS (key 2) ──┤──▶ ARRAY_BUILDER ──▶ GET_EVM_SAFE_ADDRESS
COMPUTE_EVM_ADDRESS (key 3) ──┘ │
▼
BUILD_EVM_GNOSIS_SAFE_DEPLOYMENT
Batch multicall items
BUILD_EVM_MULTICALL_ITEM (call 1) ──┐
BUILD_EVM_MULTICALL_ITEM (call 2) ──┤──▶ ARRAY_BUILDER ──▶ BUILD_EVM_MULTICALL
BUILD_EVM_MULTICALL_ITEM (call 3) ──┘
Feed FOR_EACH with static items
Connect STRING_CONSTANT components to ARRAY_BUILDER to create a static iteration list:
STRING_CONSTANT ("0xAddr1") ──┐
STRING_CONSTANT ("0xAddr2") ──┤──▶ ARRAY_BUILDER ──▶ FOR_EACH
STRING_CONSTANT ("0xAddr3") ──┘
Notes
- The array element type is inferred from connected sources — the port tooltip shows the resolved type (e.g.
array<EvmAddress>) - Order of elements corresponds to the order connections appear in the component panel
ARRAY_BUILDERdoes not transform values — it simply wraps inputs into an array