mirror of
https://github.com/alexgo-io/stacks-puppet-node.git
synced 2026-01-12 16:53:21 +08:00
feat: initial changes to support Clarity 3
This commit is contained in:
@@ -35,6 +35,8 @@ define_versioned_named_enum!(NativeVariables(ClarityVersion) {
|
||||
TxSponsor("tx-sponsor?", ClarityVersion::Clarity2),
|
||||
Mainnet("is-in-mainnet", ClarityVersion::Clarity2),
|
||||
ChainId("chain-id", ClarityVersion::Clarity2),
|
||||
StacksBlockHeight("stacks-block-height", ClarityVersion::Clarity3),
|
||||
TenureHeight("tenure-height", ClarityVersion::Clarity3),
|
||||
});
|
||||
|
||||
impl NativeVariables {
|
||||
|
||||
@@ -9,6 +9,7 @@ use crate::vm::errors::{Error, RuntimeErrorType};
|
||||
pub enum ClarityVersion {
|
||||
Clarity1,
|
||||
Clarity2,
|
||||
Clarity3,
|
||||
}
|
||||
|
||||
impl fmt::Display for ClarityVersion {
|
||||
@@ -16,13 +17,14 @@ impl fmt::Display for ClarityVersion {
|
||||
match self {
|
||||
ClarityVersion::Clarity1 => write!(f, "Clarity 1"),
|
||||
ClarityVersion::Clarity2 => write!(f, "Clarity 2"),
|
||||
ClarityVersion::Clarity3 => write!(f, "Clarity 3"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ClarityVersion {
|
||||
pub fn latest() -> ClarityVersion {
|
||||
ClarityVersion::Clarity2
|
||||
ClarityVersion::Clarity3
|
||||
}
|
||||
pub fn default_for_epoch(epoch_id: StacksEpochId) -> ClarityVersion {
|
||||
match epoch_id {
|
||||
@@ -37,7 +39,7 @@ impl ClarityVersion {
|
||||
StacksEpochId::Epoch23 => ClarityVersion::Clarity2,
|
||||
StacksEpochId::Epoch24 => ClarityVersion::Clarity2,
|
||||
StacksEpochId::Epoch25 => ClarityVersion::Clarity2,
|
||||
StacksEpochId::Epoch30 => ClarityVersion::Clarity2,
|
||||
StacksEpochId::Epoch30 => ClarityVersion::Clarity3,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,9 +53,12 @@ impl FromStr for ClarityVersion {
|
||||
Ok(ClarityVersion::Clarity1)
|
||||
} else if s == "clarity2" {
|
||||
Ok(ClarityVersion::Clarity2)
|
||||
} else if s == "clarity3" {
|
||||
Ok(ClarityVersion::Clarity3)
|
||||
} else {
|
||||
Err(RuntimeErrorType::ParseError(
|
||||
"Invalid clarity version. Valid versions are: Clarity1, Clarity2.".to_string(),
|
||||
"Invalid clarity version. Valid versions are: Clarity1, Clarity2, Clarity3."
|
||||
.to_string(),
|
||||
)
|
||||
.into())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user