-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Open
Labels
high effortA lot to implement but still doable by a single person. The task is large or difficult.A lot to implement but still doable by a single person. The task is large or difficult.language design
Any changes to the language, e.g. new featuresAny changes to the language, e.g. new featureslow impactChanges are not very noticeable or potential benefits are limited.Changes are not very noticeable or potential benefits are limited.must have eventuallySomething we consider essential but not enough to prevent us from releasing Solidity 1.0 without it.Something we consider essential but not enough to prevent us from releasing Solidity 1.0 without it.

Description
Abstract
Currently abi.decode()
works with memory
argument and not with calldata
, if calldata
is provided it is being copied to memory and then decoded. Let's make abi.decode()
to support both arguments and returns as calldata
.
Motivation
Calldata
abstraction is cool, slicing is cool. We need abi.decode()
to fully support decoding from calldata
to calldata
!
Specification
function f(bytes calldata data) external {
(
address[] calldata targets,
bytes[] calldata calldatas
) = abi.decode(data[1:], (address[], bytes[]));
// ...
}
Backwards Compatibility
backmeupplz, se3000, paco0x, lastperson, hensha256 and 18 moreLeon-Africa, willpiam, AmadiMichael, ldcicconi and AmxxeMarchenko, vgeddes, DavidRomanovizc, zerosnacks, willpiam and 3 more
Metadata
Metadata
Assignees
Labels
high effortA lot to implement but still doable by a single person. The task is large or difficult.A lot to implement but still doable by a single person. The task is large or difficult.language design
Any changes to the language, e.g. new featuresAny changes to the language, e.g. new featureslow impactChanges are not very noticeable or potential benefits are limited.Changes are not very noticeable or potential benefits are limited.must have eventuallySomething we consider essential but not enough to prevent us from releasing Solidity 1.0 without it.Something we consider essential but not enough to prevent us from releasing Solidity 1.0 without it.

Type
Projects
Status
ICE-Box