diff --git a/Cargo.lock b/Cargo.lock index e50a27f..9b85570 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,7 +519,7 @@ dependencies = [ [[package]] name = "clarinet-deployments" version = "3.2.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "base58", "base64 0.21.7", @@ -540,12 +540,13 @@ dependencies = [ "serde_yaml 0.8.26", "stacks-codec", "stacks-rpc-client", + "strum", ] [[package]] name = "clarinet-files" version = "3.2.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "bitcoin", "clarinet-utils", @@ -568,7 +569,7 @@ dependencies = [ [[package]] name = "clarinet-utils" version = "1.0.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "bip32", "libsecp256k1", @@ -601,7 +602,7 @@ dependencies = [ [[package]] name = "clarity-repl" version = "3.2.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "chrono", "clar2wasm", @@ -1553,7 +1554,7 @@ dependencies = [ [[package]] name = "hiro-system-kit" version = "0.3.5" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "colored", "time", @@ -3468,7 +3469,7 @@ dependencies = [ [[package]] name = "stacks-codec" version = "3.2.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "clarity", "serde", @@ -3524,7 +3525,6 @@ dependencies = [ "serde_yaml 0.8.26", "serial_test", "strum", - "strum_macros", "test-case", "tokio", "toml", @@ -3535,7 +3535,7 @@ dependencies = [ [[package]] name = "stacks-rpc-client" version = "3.2.0" -source = "git+https://github.com/hirosystems/clarinet.git?rev=116137316023ae912848a1ee1845fed30b306fdc#116137316023ae912848a1ee1845fed30b306fdc" +source = "git+https://github.com/hirosystems/clarinet.git?rev=ca7c4e04f7ed40634773236be105147c2cccc660#ca7c4e04f7ed40634773236be105147c2cccc660" dependencies = [ "clarinet-utils", "clarity", @@ -3555,21 +3555,24 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.24.1" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros", +] [[package]] name = "strum_macros" -version = "0.24.3" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d7923b2..bbb272a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,8 +21,7 @@ serde_json = "1.0.132" serde_yaml = "0.8.23" hyper = { version = "0.14", features = ["full"] } tower = "0.5.2" -strum_macros = "0.24.3" -strum = "0.24.1" +strum = { version = "0.27.1", features = ["derive"] } toml = "0.5.9" hiro-system-kit = { version = "0.1.0", features = ["log"] } @@ -40,6 +39,6 @@ serial_test = "2.0.0" k8s_tests = [] [patch.crates-io] -clarinet-files = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" } -clarinet-deployments = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" } -hiro-system-kit = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" } +clarinet-files = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" } +clarinet-deployments = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" } +hiro-system-kit = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" } diff --git a/src/lib.rs b/src/lib.rs index f89a7bd..1acf569 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,7 @@ +use std::{collections::BTreeMap, str::FromStr, time::Duration}; +use std::{env, thread::sleep}; + +use clarinet_deployments::types::BurnchainEpochConfig; use clarinet_files::{compute_addresses, StacksNetwork}; use futures::future::try_join3; use hiro_system_kit::{slog, Logger}; @@ -25,8 +29,6 @@ use resources::{ StacksDevnetResource, }; use serde::{de::DeserializeOwned, Deserialize, Serialize}; -use std::{collections::BTreeMap, str::FromStr, time::Duration}; -use std::{env, thread::sleep}; use strum::IntoEnumIterator; use tower::BoxError; @@ -103,6 +105,7 @@ struct StacksV2InfoResponse { burn_block_height: u64, stacks_tip_height: u64, } + #[derive(Clone)] pub struct StacksDevnetApiK8sManager { client: Client, @@ -1358,53 +1361,20 @@ impl StacksDevnetApiK8sManager { get_service_port(StacksDevnetService::BitcoindNode, ServicePort::P2P).unwrap() )); - stacks_conf.push_str(&format!( + stacks_conf.push_str( r#" [[burnchain.epochs]] epoch_name = "1.0" start_height = 0 - - [[burnchain.epochs]] - epoch_name = "2.0" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.05" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.1" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.2" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.3" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.4" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "2.5" - start_height = {} - - [[burnchain.epochs]] - epoch_name = "3.0" - start_height = {} "#, - devnet_config.epoch_2_0, - devnet_config.epoch_2_05, - devnet_config.epoch_2_1, - devnet_config.epoch_2_2, - devnet_config.epoch_2_3, - devnet_config.epoch_2_4, - devnet_config.epoch_2_5, - devnet_config.epoch_3_0, - )); + ); + let epoch_conf = BurnchainEpochConfig::from(devnet_config); + let epoch_conf_str = toml::to_string(&epoch_conf).map_err(|e| DevNetError { + message: format!("failed to serialize epoch config: {e}"), + code: 500, + })?; + stacks_conf.push_str(&epoch_conf_str); + stacks_conf }; diff --git a/src/resources/configmap.rs b/src/resources/configmap.rs index 9cfec10..f319826 100644 --- a/src/resources/configmap.rs +++ b/src/resources/configmap.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug)] pub enum StacksDevnetConfigmap { diff --git a/src/resources/deployment.rs b/src/resources/deployment.rs index 6eed220..3e93277 100644 --- a/src/resources/deployment.rs +++ b/src/resources/deployment.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug, Clone)] pub enum StacksDevnetDeployment { diff --git a/src/resources/pod.rs b/src/resources/pod.rs index 2de33e1..e927b0c 100644 --- a/src/resources/pod.rs +++ b/src/resources/pod.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug)] pub enum StacksDevnetPod { diff --git a/src/resources/pvc.rs b/src/resources/pvc.rs index fe70cf3..3fec70b 100644 --- a/src/resources/pvc.rs +++ b/src/resources/pvc.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug)] pub enum StacksDevnetPvc { diff --git a/src/resources/service.rs b/src/resources/service.rs index 459b865..8277938 100644 --- a/src/resources/service.rs +++ b/src/resources/service.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug, Clone, PartialEq)] pub enum StacksDevnetService { diff --git a/src/resources/stateful_set.rs b/src/resources/stateful_set.rs index 897de4b..3ad7f70 100644 --- a/src/resources/stateful_set.rs +++ b/src/resources/stateful_set.rs @@ -1,5 +1,5 @@ use std::fmt; -use strum_macros::EnumIter; +use strum::EnumIter; #[derive(EnumIter, Debug, Clone)] pub enum StacksDevnetStatefulSet { diff --git a/src/tests/fixtures/deployment-plan.yaml b/src/tests/fixtures/deployment-plan.yaml index 21e25da..f0f2c32 100644 --- a/src/tests/fixtures/deployment-plan.yaml +++ b/src/tests/fixtures/deployment-plan.yaml @@ -60,10 +60,10 @@ batches: location: path: contracts/px.clar source: Cjs7IHRpdGxlOiBweAo7OyB2ZXJzaW9uOgo7OyBzdW1tYXJ5Ogo7OyBkZXNjcmlwdGlvbjogQWxsb3dzIHVzZXJzIHRvIHBheSB0byB1cGRhdGUgZGF0YSBpbiBhIG1hdHJpeC4gCjs7ICBFYWNoIG1hdHJpeCB2YWx1ZSBtdXN0IGJlIGEgaGV4YWRlY2ltYWwgdmFsdWUgZnJvbSAweDAwMDAwMCB0byAweGZmZmZmZiwgcmVwcmVzZW50aW5nIGEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIGEgZ3JpZCBpbiBhIHdlYiBwYWdlLiAKOzsgIEVhY2ggbWF0cml4IGtleSBjb3JyZXNwb25kcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQsIHdoaWNoIGlzIDEwMHgxMDAgY2VsbHMuCgo7OyB0cmFpdHMKOzsKCjs7IHRva2VuIGRlZmluaXRpb25zCjs7IAoKOzsgY29uc3RhbnRzCjs7CihkZWZpbmUtY29uc3RhbnQgTUFYX0xPQyB1MTAwKQooZGVmaW5lLWNvbnN0YW50IE1BWF9WQUwgMHhmZmZmZmYpCihkZWZpbmUtY29uc3RhbnQgTUlOX1ZBTCAweDAwMDAwMCkKKGRlZmluZS1jb25zdGFudCBBTExfTE9DUyAobGlzdCB1MCB1MSB1MiB1MyB1NCB1NSB1NiB1NyB1OCB1OSB1MTAgdTExIHUxMiB1MTMgdTE0IHUxNSB1MTYgdTE3IHUxOCB1MTkgdTIwIHUyMSB1MjIgdTIzIHUyNCB1MjUgdTI2IHUyNyB1MjggdTI5IHUzMCB1MzEgdTMyIHUzMyB1MzQgdTM1IHUzNiB1MzcgdTM4IHUzOSB1NDAgdTQxIHU0MiB1NDMgdTQ0IHU0NSB1NDYgdTQ3IHU0OCB1NDkgdTUwIHU1MSB1NTIgdTUzIHU1NCB1NTUgdTU2IHU1NyB1NTggdTU5IHU2MCB1NjEgdTYyIHU2MyB1NjQgdTY1IHU2NiB1NjcgdTY4IHU2OSB1NzAgdTcxIHU3MiB1NzMgdTc0IHU3NSB1NzYgdTc3IHU3OCB1NzkgdTgwIHU4MSB1ODIgdTgzIHU4NCB1ODUgdTg2IHU4NyB1ODggdTg5IHU5MCB1OTEgdTkyIHU5MyB1OTQgdTk1IHU5NiB1OTcgdTk4IHU5OSkpCjs7IGRhdGEgdmFycwo7OwoKOzsgZGF0YSBtYXBzCjs7CihkZWZpbmUtbWFwIHBpeGVscyB1aW50IChidWZmIDMpKQoKOzsgcHVibGljIGZ1bmN0aW9ucwo7OwooZGVmaW5lLXB1YmxpYyAoc2V0LXZhbHVlLWF0IChsb2MgdWludCkgKHZhbHVlIChidWZmIDMpKSkgCiAgICAoYmVnaW4gCiAgICAgICAgKGlmICg+PSBsb2MgTUFYX0xPQykKICAgICAgICAgICAgKGVyciAiTG9jYXRpb24gb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICAoaWYgKD4gdmFsdWUgTUFYX1ZBTCkKICAgICAgICAgICAgICAgIChlcnIgIlZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIDB4ZmZmZmZmLiIpCiAgICAgICAgICAgICAgICAoaWYgKDwgdmFsdWUgTUlOX1ZBTCkKICAgICAgICAgICAgICAgICAgICAoZXJyICJWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweDAwMDAwMC4iKQogICAgICAgICAgICAgICAgICAgIChvayAobWFwLXNldCBwaXhlbHMgbG9jIHZhbHVlKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKKQo7OyByZWFkIG9ubHkgZnVuY3Rpb25zCjs7CgooZGVmaW5lLXJlYWQtb25seSAoZ2V0LXZhbHVlLWF0IChsb2MgdWludCkpCiAgICAoaWYgKD49IGxvYyBNQVhfTE9DKQogICAgICAgIChlcnIgIk91dCBvZiBib3VuZHMuIikKICAgICAgICAob2sgKGRlZmF1bHQtdG8gMHhmZmZmZmYgKG1hcC1nZXQ/IHBpeGVscyBsb2MpKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGdldC1hbGwpIAogICAgKG1hcCBnZXQtdmFsdWUtYXQgQUxMX0xPQ1MpCikKCihkZWZpbmUtcmVhZC1vbmx5IChnZW5lc2lzLXRpbWUgKGhlaWdodCB1aW50KSkKICAgIChnZXQtYmxvY2staW5mbz8gdGltZSBoZWlnaHQpCikKOzsgcHJpdmF0ZSBmdW5jdGlvbnMKOzsK - clarity_version: 2 + clarity_version: 3 cost: 18060 anchor_block_only: true - epoch: "2.1" + epoch: "3.1" - id: 3 transactions: - transaction_type: ContractCall @@ -82,7 +82,7 @@ batches: memo: "0xabcabcabcaba00000000000000000000000000000000000000000000000000000000" cost: 2240 anchor_block_only: true - epoch: "2.1" + epoch: "3.1" contracts: - contract_id: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.px path: /Users/micaiahreid/work/stx-px/contracts/px.clar diff --git a/src/tests/fixtures/project-manifest.yaml b/src/tests/fixtures/project-manifest.yaml index 0324169..2bbf6a6 100644 --- a/src/tests/fixtures/project-manifest.yaml +++ b/src/tests/fixtures/project-manifest.yaml @@ -11,8 +11,8 @@ project: contracts: px: path: contracts/px.clar - clarity_version: 2 - epoch: 2.1 + clarity_version: 3 + epoch: 3.1 repl: analysis: passes: [] diff --git a/src/tests/fixtures/stacks-devnet-config.json b/src/tests/fixtures/stacks-devnet-config.json index 9edd278..6eab15e 100644 --- a/src/tests/fixtures/stacks-devnet-config.json +++ b/src/tests/fixtures/stacks-devnet-config.json @@ -88,12 +88,12 @@ "path": "contracts/px.clar" }, "source": "Cjs7IHRpdGxlOiBweAo7OyB2ZXJzaW9uOgo7OyBzdW1tYXJ5Ogo7OyBkZXNjcmlwdGlvbjogQWxsb3dzIHVzZXJzIHRvIHBheSB0byB1cGRhdGUgZGF0YSBpbiBhIG1hdHJpeC4gCjs7ICBFYWNoIG1hdHJpeCB2YWx1ZSBtdXN0IGJlIGEgaGV4YWRlY2ltYWwgdmFsdWUgZnJvbSAweDAwMDAwMCB0byAweGZmZmZmZiwgcmVwcmVzZW50aW5nIGEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIGEgZ3JpZCBpbiBhIHdlYiBwYWdlLiAKOzsgIEVhY2ggbWF0cml4IGtleSBjb3JyZXNwb25kcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQsIHdoaWNoIGlzIDEwMHgxMDAgY2VsbHMuCgo7OyB0cmFpdHMKOzsKCjs7IHRva2VuIGRlZmluaXRpb25zCjs7IAoKOzsgY29uc3RhbnRzCjs7CihkZWZpbmUtY29uc3RhbnQgTUFYX0xPQyB1MTAwKQooZGVmaW5lLWNvbnN0YW50IE1BWF9WQUwgMHhmZmZmZmYpCihkZWZpbmUtY29uc3RhbnQgTUlOX1ZBTCAweDAwMDAwMCkKKGRlZmluZS1jb25zdGFudCBBTExfTE9DUyAobGlzdCB1MCB1MSB1MiB1MyB1NCB1NSB1NiB1NyB1OCB1OSB1MTAgdTExIHUxMiB1MTMgdTE0IHUxNSB1MTYgdTE3IHUxOCB1MTkgdTIwIHUyMSB1MjIgdTIzIHUyNCB1MjUgdTI2IHUyNyB1MjggdTI5IHUzMCB1MzEgdTMyIHUzMyB1MzQgdTM1IHUzNiB1MzcgdTM4IHUzOSB1NDAgdTQxIHU0MiB1NDMgdTQ0IHU0NSB1NDYgdTQ3IHU0OCB1NDkgdTUwIHU1MSB1NTIgdTUzIHU1NCB1NTUgdTU2IHU1NyB1NTggdTU5IHU2MCB1NjEgdTYyIHU2MyB1NjQgdTY1IHU2NiB1NjcgdTY4IHU2OSB1NzAgdTcxIHU3MiB1NzMgdTc0IHU3NSB1NzYgdTc3IHU3OCB1NzkgdTgwIHU4MSB1ODIgdTgzIHU4NCB1ODUgdTg2IHU4NyB1ODggdTg5IHU5MCB1OTEgdTkyIHU5MyB1OTQgdTk1IHU5NiB1OTcgdTk4IHU5OSkpCjs7IGRhdGEgdmFycwo7OwoKOzsgZGF0YSBtYXBzCjs7CihkZWZpbmUtbWFwIHBpeGVscyB1aW50IChidWZmIDMpKQoKOzsgcHVibGljIGZ1bmN0aW9ucwo7OwooZGVmaW5lLXB1YmxpYyAoc2V0LXZhbHVlLWF0IChsb2MgdWludCkgKHZhbHVlIChidWZmIDMpKSkgCiAgICAoYmVnaW4gCiAgICAgICAgKGlmICg+PSBsb2MgTUFYX0xPQykKICAgICAgICAgICAgKGVyciAiTG9jYXRpb24gb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICAoaWYgKD4gdmFsdWUgTUFYX1ZBTCkKICAgICAgICAgICAgICAgIChlcnIgIlZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIDB4ZmZmZmZmLiIpCiAgICAgICAgICAgICAgICAoaWYgKDwgdmFsdWUgTUlOX1ZBTCkKICAgICAgICAgICAgICAgICAgICAoZXJyICJWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweDAwMDAwMC4iKQogICAgICAgICAgICAgICAgICAgIChvayAobWFwLXNldCBwaXhlbHMgbG9jIHZhbHVlKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKKQo7OyByZWFkIG9ubHkgZnVuY3Rpb25zCjs7CgooZGVmaW5lLXJlYWQtb25seSAoZ2V0LXZhbHVlLWF0IChsb2MgdWludCkpCiAgICAoaWYgKD49IGxvYyBNQVhfTE9DKQogICAgICAgIChlcnIgIk91dCBvZiBib3VuZHMuIikKICAgICAgICAob2sgKGRlZmF1bHQtdG8gMHhmZmZmZmYgKG1hcC1nZXQ/IHBpeGVscyBsb2MpKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGdldC1hbGwpIAogICAgKG1hcCBnZXQtdmFsdWUtYXQgQUxMX0xPQ1MpCikKCihkZWZpbmUtcmVhZC1vbmx5IChnZW5lc2lzLXRpbWUgKGhlaWdodCB1aW50KSkKICAgIChnZXQtYmxvY2staW5mbz8gdGltZSBoZWlnaHQpCikKOzsgcHJpdmF0ZSBmdW5jdGlvbnMKOzsK", - "clarity_version": 2, + "clarity_version": 3, "cost": 18060, "anchor_block_only": true } ], - "epoch": "2.1" + "epoch": "3.1" }, { "id": 3, @@ -117,7 +117,7 @@ "anchor_block_only": true } ], - "epoch": "2.1" + "epoch": "3.1" } ], "contracts": [ @@ -376,8 +376,8 @@ "contracts": { "px": { "path": "contracts/px.clar", - "clarity_version": 2, - "epoch": 2.1 + "clarity_version": 3, + "epoch": 3.1 } }, "repl": {