mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 05:38:00 +00:00
bd4e108bb0
- Factor the YUL crate out of `revive-solidity`. - `revive-solidity` is in reality not a Solidity implementation but the revive solidity compiler driver (`resolc`). By renaming we not only get this straight but also a binary with the same name as the crate which should be less confusing. --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
44 lines
1.3 KiB
Rust
44 lines
1.3 KiB
Rust
//! The Solidity contract metadata.
|
|
|
|
use serde::Serialize;
|
|
|
|
use crate::ResolcVersion;
|
|
|
|
/// The Solidity contract metadata.
|
|
/// Is used to append the metadata hash to the contract bytecode.
|
|
#[derive(Debug, Serialize)]
|
|
pub struct Metadata {
|
|
/// The `solc` metadata.
|
|
pub solc_metadata: serde_json::Value,
|
|
/// The `solc` version.
|
|
pub solc_version: String,
|
|
/// The pallet revive edition.
|
|
pub revive_pallet_version: Option<semver::Version>,
|
|
/// The PolkaVM compiler version.
|
|
pub revive_version: String,
|
|
/// The PolkaVM compiler optimizer settings.
|
|
pub optimizer_settings: revive_llvm_context::OptimizerSettings,
|
|
/// The extra LLVM arguments give used for manual control.
|
|
pub llvm_arguments: Vec<String>,
|
|
}
|
|
|
|
impl Metadata {
|
|
/// A shortcut constructor.
|
|
pub fn new(
|
|
solc_metadata: serde_json::Value,
|
|
solc_version: String,
|
|
revive_pallet_version: Option<semver::Version>,
|
|
optimizer_settings: revive_llvm_context::OptimizerSettings,
|
|
llvm_arguments: Vec<String>,
|
|
) -> Self {
|
|
Self {
|
|
solc_metadata,
|
|
solc_version,
|
|
revive_pallet_version,
|
|
revive_version: ResolcVersion::default().long,
|
|
optimizer_settings,
|
|
llvm_arguments,
|
|
}
|
|
}
|
|
}
|