MCPcopy Create free account
hub / github.com/argotorg/solidity / onlyMetadata

Function onlyMetadata

test/Metadata.cpp:38–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36{
37
38bytes onlyMetadata(bytes const& _bytecode)
39{
40 size_t size = _bytecode.size();
41 if (size < 5)
42 return bytes{};
43 size_t metadataSize = (static_cast<size_t>(_bytecode[size - 2]) << 8ul) + static_cast<size_t>(_bytecode[size - 1]);
44 if (size < (metadataSize + 2))
45 return bytes{};
46 // Sanity check: assume the first byte is a fixed-size CBOR array with 1, 2 or 3 entries
47 unsigned char firstByte = _bytecode[size - metadataSize - 2];
48 if (firstByte != 0xa1 && firstByte != 0xa2 && firstByte != 0xa3)
49 return bytes{};
50 return bytes(_bytecode.end() - static_cast<ptrdiff_t>(metadataSize) - 2, _bytecode.end() - 2);
51}
52
53bytes bytecodeSansMetadata(bytes const& _bytecode)
54{

Callers 2

bytecodeSansMetadataFunction · 0.85

Calls 2

sizeMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected