The ABI field of upload_contract is currently JSON.
In future we might want to support other formats (binary / zipped / hash of ABI data stored off-chain in Git / IPFS / community site) so we should add a new string field telling clients how they should parse the data in the abi field (suggested field name: abi_type).
Anything else?
One alternative is to change abi to be oneof instead, which may be slightly more wire efficient, but there are several good reasons not to:
(1) oneof would be a hardforking change
(2) Community development of new ABI formats would depend on core developers to assign oneof alternatives in a timely, non-conflicting way
(3) Clients may be less able to handle a oneof alternative they don't understand than a string they don't understand
(4) Contract bytecode uploads are very large, infrequent, and done by relatively well-funded users, so saving a few bytes on upload_contract_operation is not super important
Is there an existing issue for this?
New feature
The ABI field of
upload_contract
is currently JSON.In future we might want to support other formats (binary / zipped / hash of ABI data stored off-chain in Git / IPFS / community site) so we should add a new
string
field telling clients how they should parse the data in theabi
field (suggested field name:abi_type
).Anything else?
One alternative is to change
abi
to beoneof
instead, which may be slightly more wire efficient, but there are several good reasons not to:oneof
would be a hardforking changeoneof
alternatives in a timely, non-conflicting wayoneof
alternative they don't understand than astring
they don't understandupload_contract_operation
is not super important