Creating A Node
Deployment Process
1. Node Creation
Nodes are created through the NodeFactory using deployFullNode:
function deployFullNode(
NodeInitArgs calldata initArgs,
bytes[] calldata nodePayload,
SetupCall[] calldata setupCalls,
bytes32 salt
) external returns (INode node, address escrow)
struct NodeInitArgs {
string name;
string symbol;
address asset;
address owner;
}
struct SetupCall {
address target;
bytes payload;
}Constructor Parameters
initArgs.name
Name of the Node token
Cannot be empty
initArgs.symbol
Symbol of the Node token
Cannot be empty
initArgs.asset
Address of the underlying asset
Cannot be zero address
initArgs.owner
Address of the Node owner
Cannot be zero address
nodePayload
Arbitrary data to pre-configure the Node. E.g. add components, set allocation, whitelist rebalancers etc.
Executed directly on the Node.
setupCalls
Used to configure Policies
Arbitrary calls, potentially dangerous.
salt
Unique deployment salt
Any bytes32 value.
Default Values
The Node is created with these default values that can be modified by the owner:
Post-Creation Configuration
The Node owner can modify these parameters after creation:
Management fees and fee recipient
Maximum deposit size
Rebalance cooldown and window periods
Component allocations and parameters
Additional routers and rebalancers
Policies
Security Considerations
All components must be whitelisted in their respective routers
Component allocation weights must sum to 100% (1e18) with reserve ratio
Routers must be whitelisted in the Registry
Rebalancers must be whitelisted in the Registry
Policies must be whitelisted in the Registry
Last updated