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

primitives/CompilerVersion

Type Aliases

CompilerVersionType

CompilerVersionType = string & object
Defined in: src/primitives/CompilerVersion/CompilerVersionType.ts:14 Branded CompilerVersion type - prevents version confusion Represents a Solidity or Vyper compiler version string Format: “v0.8.20+commit.a1b2c3d4” or “0.8.20+commit.a1b2c3d4”

Type Declaration

[brand]
readonly [brand]: "CompilerVersion"

Example

const version: CompilerVersionType = "v0.8.20+commit.a1b2c3d4";

Variables

CompilerVersion

const CompilerVersion: object
Defined in: src/primitives/CompilerVersion/index.ts:51

Type Declaration

compare()
compare: (a, b) => number
Parameters
a
string
b
string
Returns
number
from()
from: (value) => CompilerVersionType
Create CompilerVersion from string
Parameters
value
string Version string (e.g., “v0.8.20+commit.a1b2c3d4”)
Returns
CompilerVersionType CompilerVersion
Throws
If version format is invalid
Example
const version = CompilerVersion.from("v0.8.20+commit.a1b2c3d4");
const version2 = CompilerVersion.from("0.8.20"); // Also valid
getMajor()
getMajor: (version) => number
Parameters
version
string
Returns
number
getMinor()
getMinor: (version) => number
Parameters
version
string
Returns
number
getPatch()
getPatch: (version) => number
Parameters
version
string
Returns
number
isCompatible()
isCompatible: (version, range) => boolean
Parameters
version
string
range
string
Returns
boolean
parse()
parse: (version) => object
Parameters
version
string
Returns
object
commit?
optional commit: string
major
major: number
minor
minor: number
patch
patch: number
prerelease?
optional prerelease: string

Functions

_compare()

_compare(a, b): number
Defined in: src/primitives/CompilerVersion/compare.js:16 Compare two compiler versions

Parameters

a
CompilerVersionType First version
b
CompilerVersionType Second version

Returns

number -1 if a < b, 0 if a === b, 1 if a > b

Example

const result = CompilerVersion.compare("v0.8.20", "v0.8.19");
console.log(result); // 1 (0.8.20 > 0.8.19)

_getMajor()

_getMajor(version): number
Defined in: src/primitives/CompilerVersion/getMajor.js:15 Get major version number

Parameters

version
CompilerVersionType Version to extract from

Returns

number Major version

Example

const major = CompilerVersion.getMajor("v0.8.20");
console.log(major); // 0

_getMinor()

_getMinor(version): number
Defined in: src/primitives/CompilerVersion/getMinor.js:15 Get minor version number

Parameters

version
CompilerVersionType Version to extract from

Returns

number Minor version

Example

const minor = CompilerVersion.getMinor("v0.8.20");
console.log(minor); // 8

_getPatch()

_getPatch(version): number
Defined in: src/primitives/CompilerVersion/getPatch.js:15 Get patch version number

Parameters

version
CompilerVersionType Version to extract from

Returns

number Patch version

Example

const patch = CompilerVersion.getPatch("v0.8.20");
console.log(patch); // 20

_isCompatible()

_isCompatible(version, range): boolean
Defined in: src/primitives/CompilerVersion/isCompatible.js:23 Check if version is compatible with a semver range Supports basic semver ranges:
  • “^0.8.0” - Compatible with 0.8.x (same major.minor)
  • “~0.8.20” - Compatible with 0.8.20-0.8.x (same major.minor, patch >= specified)
  • ”>=0.8.0” - Greater than or equal
  • “0.8.20” - Exact match

Parameters

version
CompilerVersionType Version to check
range
string Semver range

Returns

boolean True if compatible

Example

const compatible = CompilerVersion.isCompatible("v0.8.20", "^0.8.0");
console.log(compatible); // true

_parse()

_parse(version): object
Defined in: src/primitives/CompilerVersion/parse.js:16 Parse compiler version into components

Parameters

version
CompilerVersionType Version to parse

Returns

object
commit?
optional commit: string
major
major: number
minor
minor: number
patch
patch: number
prerelease?
optional prerelease: string

Example

const parsed = CompilerVersion.parse("v0.8.20+commit.a1b2c3d4");
console.log(parsed.major); // 0
console.log(parsed.minor); // 8
console.log(parsed.patch); // 20
console.log(parsed.commit); // "a1b2c3d4"

compare()

compare(a, b): number
Defined in: src/primitives/CompilerVersion/index.ts:27

Parameters

a
string
b
string

Returns

number

from()

from(value): CompilerVersionType
Defined in: src/primitives/CompilerVersion/from.js:14 Create CompilerVersion from string

Parameters

value
string Version string (e.g., “v0.8.20+commit.a1b2c3d4”)

Returns

CompilerVersionType CompilerVersion

Throws

If version format is invalid

Example

const version = CompilerVersion.from("v0.8.20+commit.a1b2c3d4");
const version2 = CompilerVersion.from("0.8.20"); // Also valid

getMajor()

getMajor(version): number
Defined in: src/primitives/CompilerVersion/index.ts:31

Parameters

version
string

Returns

number

getMinor()

getMinor(version): number
Defined in: src/primitives/CompilerVersion/index.ts:35

Parameters

version
string

Returns

number

getPatch()

getPatch(version): number
Defined in: src/primitives/CompilerVersion/index.ts:39

Parameters

version
string

Returns

number

isCompatible()

isCompatible(version, range): boolean
Defined in: src/primitives/CompilerVersion/index.ts:43

Parameters

version
string
range
string

Returns

boolean

parse()

parse(version): object
Defined in: src/primitives/CompilerVersion/index.ts:17

Parameters

version
string

Returns

object
commit?
optional commit: string
major
major: number
minor
minor: number
patch
patch: number
prerelease?
optional prerelease: string