What is the main gas advantage of using `calldata` instead of `memory` for external function parameters?
-
A
calldata allows mutation of inputs
-
B
calldata avoids copying data into memory, reducing gas
-
C
calldata supports larger payloads
-
D
calldata enables cross-contract calls