Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/Metadata

primitives/Metadata

Type Aliases

Metadata

Metadata = object
Defined in: src/primitives/Metadata/MetadataType.ts:7 Solidity compiler metadata Encoded in CBOR format at the end of contract bytecode. Contains compiler version and source verification hashes.

Properties

bzzr0?
readonly optional bzzr0: string
Defined in: src/primitives/Metadata/MetadataType.ts:15 Swarm hash (legacy)
bzzr1?
readonly optional bzzr1: string
Defined in: src/primitives/Metadata/MetadataType.ts:17 Swarm hash v1
experimental?
readonly optional experimental: boolean
Defined in: src/primitives/Metadata/MetadataType.ts:19 Experimental features enabled
ipfs?
readonly optional ipfs: string
Defined in: src/primitives/Metadata/MetadataType.ts:13 IPFS content hash
raw
readonly raw: Uint8Array
Defined in: src/primitives/Metadata/MetadataType.ts:9 Raw CBOR-encoded bytes
solc?
readonly optional solc: string
Defined in: src/primitives/Metadata/MetadataType.ts:11 Solidity compiler version (e.g., “0.8.19”)

Functions

decode()

decode(raw): Metadata
Defined in: src/primitives/Metadata/decode.js:19 Decode CBOR-encoded metadata Parses Solidity metadata format to extract compiler version and content hashes.

Parameters

raw
Uint8Array<ArrayBufferLike> CBOR-encoded metadata

Returns

Metadata Metadata

Example

import * as Metadata from './primitives/Metadata/index.js';
const raw = new Uint8Array([0xa2, 0x64, ...]);
const meta = Metadata.decode(raw);
console.log(meta.solc); // "0.8.19"

encode()

encode(metadata): Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Metadata/encode.js:22 Encode metadata to CBOR format Creates CBOR-encoded metadata following Solidity format.

Parameters

metadata
Metadata Metadata to encode

Returns

Uint8Array<ArrayBufferLike> CBOR-encoded bytes

Example

import * as Metadata from './primitives/Metadata/index.js';
const meta = {
  raw: new Uint8Array(),
  solc: "0.8.19",
  ipfs: "0x1234...",
};
const encoded = Metadata.encode(meta);

from()

from(raw): Metadata
Defined in: src/primitives/Metadata/from.js:14 Create Metadata from raw CBOR bytes

Parameters

raw
Uint8Array<ArrayBufferLike> CBOR-encoded metadata bytes

Returns

Metadata Metadata

See

https://voltaire.tevm.sh/primitives/metadata for Metadata documentation

Since

0.0.0

Example

import * as Metadata from './primitives/Metadata/index.js';
const meta = Metadata.from(new Uint8Array([0xa2, 0x64, ...]));

fromBytecode()

fromBytecode(bytecode): Metadata | null
Defined in: src/primitives/Metadata/fromBytecode.js:17 Extract metadata from contract bytecode Solidity appends CBOR metadata at the end: bytecode + metadata + 0x00 + length

Parameters

bytecode
Uint8Array<ArrayBufferLike> Contract bytecode with metadata

Returns

Metadata | null Metadata or null if not found

Example

import * as Metadata from './primitives/Metadata/index.js';
const bytecode = new Uint8Array([...code, 0xa2, 0x64, ...metadata, 0x00, 0x33]);
const meta = Metadata.fromBytecode(bytecode);