GatePolicyWhitelist

  • Purpose: Permit only whitelisted actors to interact with a node across deposit/redemption and ERC20 transfer flows.

  • Guarded selectors: deposit, mint, requestRedeem, redeem, withdraw, setOperator, transfer, approve, transferFrom.

  • Who is checked:

    • deposit/mint: caller and receiver.

    • requestRedeem: caller, controller, owner.

    • setOperator: caller, operator.

    • redeem/withdraw: caller, receiver, controller.

    • transfer: caller, to.

    • approve: caller, spender.

    • transferFrom: caller, from, to.

  • Config: Node owner seeds a Merkle root with setRoot(node, root) and/or directly lists addresses with add(node, actors) / remove(node, actors).

  • User data: Actors not directly listed must pre-submit a Merkle proof via Node.submitPolicyData(<any selector guarded by this policy>, policyAddr, abi.encode(bytes32[] proof)). The proof is cached per (node, actor) and reused across selectors.

  • Behavior: Reverts with NotWhitelisted if any checked participant is missing from the allowlist.

Last updated