Skip to content

Commit 75f6557

Browse files
authored
feat: fix safer epoch config handling (#132)
1 parent ca9cff7 commit 75f6557

File tree

12 files changed

+51
-79
lines changed

12 files changed

+51
-79
lines changed

Cargo.lock

Lines changed: 17 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ serde_json = "1.0.132"
2121
serde_yaml = "0.8.23"
2222
hyper = { version = "0.14", features = ["full"] }
2323
tower = "0.5.2"
24-
strum_macros = "0.24.3"
25-
strum = "0.24.1"
24+
strum = { version = "0.27.1", features = ["derive"] }
2625
toml = "0.5.9"
2726

2827
hiro-system-kit = { version = "0.1.0", features = ["log"] }
@@ -40,6 +39,6 @@ serial_test = "2.0.0"
4039
k8s_tests = []
4140

4241
[patch.crates-io]
43-
clarinet-files = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" }
44-
clarinet-deployments = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" }
45-
hiro-system-kit = { git = "https://github.com/hirosystems/clarinet.git", rev = "116137316023ae912848a1ee1845fed30b306fdc" }
42+
clarinet-files = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" }
43+
clarinet-deployments = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" }
44+
hiro-system-kit = { git = "https://github.com/hirosystems/clarinet.git", rev = "ca7c4e04f7ed40634773236be105147c2cccc660" }

src/lib.rs

Lines changed: 14 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
use std::{collections::BTreeMap, str::FromStr, time::Duration};
2+
use std::{env, thread::sleep};
3+
4+
use clarinet_deployments::types::BurnchainEpochConfig;
15
use clarinet_files::{compute_addresses, StacksNetwork};
26
use futures::future::try_join3;
37
use hiro_system_kit::{slog, Logger};
@@ -25,8 +29,6 @@ use resources::{
2529
StacksDevnetResource,
2630
};
2731
use serde::{de::DeserializeOwned, Deserialize, Serialize};
28-
use std::{collections::BTreeMap, str::FromStr, time::Duration};
29-
use std::{env, thread::sleep};
3032
use strum::IntoEnumIterator;
3133
use tower::BoxError;
3234

@@ -103,6 +105,7 @@ struct StacksV2InfoResponse {
103105
burn_block_height: u64,
104106
stacks_tip_height: u64,
105107
}
108+
106109
#[derive(Clone)]
107110
pub struct StacksDevnetApiK8sManager {
108111
client: Client,
@@ -1358,53 +1361,20 @@ impl StacksDevnetApiK8sManager {
13581361
get_service_port(StacksDevnetService::BitcoindNode, ServicePort::P2P).unwrap()
13591362
));
13601363

1361-
stacks_conf.push_str(&format!(
1364+
stacks_conf.push_str(
13621365
r#"
13631366
[[burnchain.epochs]]
13641367
epoch_name = "1.0"
13651368
start_height = 0
1366-
1367-
[[burnchain.epochs]]
1368-
epoch_name = "2.0"
1369-
start_height = {}
1370-
1371-
[[burnchain.epochs]]
1372-
epoch_name = "2.05"
1373-
start_height = {}
1374-
1375-
[[burnchain.epochs]]
1376-
epoch_name = "2.1"
1377-
start_height = {}
1378-
1379-
[[burnchain.epochs]]
1380-
epoch_name = "2.2"
1381-
start_height = {}
1382-
1383-
[[burnchain.epochs]]
1384-
epoch_name = "2.3"
1385-
start_height = {}
1386-
1387-
[[burnchain.epochs]]
1388-
epoch_name = "2.4"
1389-
start_height = {}
1390-
1391-
[[burnchain.epochs]]
1392-
epoch_name = "2.5"
1393-
start_height = {}
1394-
1395-
[[burnchain.epochs]]
1396-
epoch_name = "3.0"
1397-
start_height = {}
13981369
"#,
1399-
devnet_config.epoch_2_0,
1400-
devnet_config.epoch_2_05,
1401-
devnet_config.epoch_2_1,
1402-
devnet_config.epoch_2_2,
1403-
devnet_config.epoch_2_3,
1404-
devnet_config.epoch_2_4,
1405-
devnet_config.epoch_2_5,
1406-
devnet_config.epoch_3_0,
1407-
));
1370+
);
1371+
let epoch_conf = BurnchainEpochConfig::from(devnet_config);
1372+
let epoch_conf_str = toml::to_string(&epoch_conf).map_err(|e| DevNetError {
1373+
message: format!("failed to serialize epoch config: {e}"),
1374+
code: 500,
1375+
})?;
1376+
stacks_conf.push_str(&epoch_conf_str);
1377+
14081378
stacks_conf
14091379
};
14101380

src/resources/configmap.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug)]
55
pub enum StacksDevnetConfigmap {

src/resources/deployment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug, Clone)]
55
pub enum StacksDevnetDeployment {

src/resources/pod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug)]
55
pub enum StacksDevnetPod {

src/resources/pvc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug)]
55
pub enum StacksDevnetPvc {

src/resources/service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug, Clone, PartialEq)]
55
pub enum StacksDevnetService {

src/resources/stateful_set.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
use strum_macros::EnumIter;
2+
use strum::EnumIter;
33

44
#[derive(EnumIter, Debug, Clone)]
55
pub enum StacksDevnetStatefulSet {

src/tests/fixtures/deployment-plan.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ batches:
6060
location:
6161
path: contracts/px.clar
6262
source: Cjs7IHRpdGxlOiBweAo7OyB2ZXJzaW9uOgo7OyBzdW1tYXJ5Ogo7OyBkZXNjcmlwdGlvbjogQWxsb3dzIHVzZXJzIHRvIHBheSB0byB1cGRhdGUgZGF0YSBpbiBhIG1hdHJpeC4gCjs7ICBFYWNoIG1hdHJpeCB2YWx1ZSBtdXN0IGJlIGEgaGV4YWRlY2ltYWwgdmFsdWUgZnJvbSAweDAwMDAwMCB0byAweGZmZmZmZiwgcmVwcmVzZW50aW5nIGEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIGEgZ3JpZCBpbiBhIHdlYiBwYWdlLiAKOzsgIEVhY2ggbWF0cml4IGtleSBjb3JyZXNwb25kcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQsIHdoaWNoIGlzIDEwMHgxMDAgY2VsbHMuCgo7OyB0cmFpdHMKOzsKCjs7IHRva2VuIGRlZmluaXRpb25zCjs7IAoKOzsgY29uc3RhbnRzCjs7CihkZWZpbmUtY29uc3RhbnQgTUFYX0xPQyB1MTAwKQooZGVmaW5lLWNvbnN0YW50IE1BWF9WQUwgMHhmZmZmZmYpCihkZWZpbmUtY29uc3RhbnQgTUlOX1ZBTCAweDAwMDAwMCkKKGRlZmluZS1jb25zdGFudCBBTExfTE9DUyAobGlzdCB1MCB1MSB1MiB1MyB1NCB1NSB1NiB1NyB1OCB1OSB1MTAgdTExIHUxMiB1MTMgdTE0IHUxNSB1MTYgdTE3IHUxOCB1MTkgdTIwIHUyMSB1MjIgdTIzIHUyNCB1MjUgdTI2IHUyNyB1MjggdTI5IHUzMCB1MzEgdTMyIHUzMyB1MzQgdTM1IHUzNiB1MzcgdTM4IHUzOSB1NDAgdTQxIHU0MiB1NDMgdTQ0IHU0NSB1NDYgdTQ3IHU0OCB1NDkgdTUwIHU1MSB1NTIgdTUzIHU1NCB1NTUgdTU2IHU1NyB1NTggdTU5IHU2MCB1NjEgdTYyIHU2MyB1NjQgdTY1IHU2NiB1NjcgdTY4IHU2OSB1NzAgdTcxIHU3MiB1NzMgdTc0IHU3NSB1NzYgdTc3IHU3OCB1NzkgdTgwIHU4MSB1ODIgdTgzIHU4NCB1ODUgdTg2IHU4NyB1ODggdTg5IHU5MCB1OTEgdTkyIHU5MyB1OTQgdTk1IHU5NiB1OTcgdTk4IHU5OSkpCjs7IGRhdGEgdmFycwo7OwoKOzsgZGF0YSBtYXBzCjs7CihkZWZpbmUtbWFwIHBpeGVscyB1aW50IChidWZmIDMpKQoKOzsgcHVibGljIGZ1bmN0aW9ucwo7OwooZGVmaW5lLXB1YmxpYyAoc2V0LXZhbHVlLWF0IChsb2MgdWludCkgKHZhbHVlIChidWZmIDMpKSkgCiAgICAoYmVnaW4gCiAgICAgICAgKGlmICg+PSBsb2MgTUFYX0xPQykKICAgICAgICAgICAgKGVyciAiTG9jYXRpb24gb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICAoaWYgKD4gdmFsdWUgTUFYX1ZBTCkKICAgICAgICAgICAgICAgIChlcnIgIlZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIDB4ZmZmZmZmLiIpCiAgICAgICAgICAgICAgICAoaWYgKDwgdmFsdWUgTUlOX1ZBTCkKICAgICAgICAgICAgICAgICAgICAoZXJyICJWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweDAwMDAwMC4iKQogICAgICAgICAgICAgICAgICAgIChvayAobWFwLXNldCBwaXhlbHMgbG9jIHZhbHVlKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKKQo7OyByZWFkIG9ubHkgZnVuY3Rpb25zCjs7CgooZGVmaW5lLXJlYWQtb25seSAoZ2V0LXZhbHVlLWF0IChsb2MgdWludCkpCiAgICAoaWYgKD49IGxvYyBNQVhfTE9DKQogICAgICAgIChlcnIgIk91dCBvZiBib3VuZHMuIikKICAgICAgICAob2sgKGRlZmF1bHQtdG8gMHhmZmZmZmYgKG1hcC1nZXQ/IHBpeGVscyBsb2MpKSkKICAgICkKKQoKKGRlZmluZS1yZWFkLW9ubHkgKGdldC1hbGwpIAogICAgKG1hcCBnZXQtdmFsdWUtYXQgQUxMX0xPQ1MpCikKCihkZWZpbmUtcmVhZC1vbmx5IChnZW5lc2lzLXRpbWUgKGhlaWdodCB1aW50KSkKICAgIChnZXQtYmxvY2staW5mbz8gdGltZSBoZWlnaHQpCikKOzsgcHJpdmF0ZSBmdW5jdGlvbnMKOzsK
63-
clarity_version: 2
63+
clarity_version: 3
6464
cost: 18060
6565
anchor_block_only: true
66-
epoch: "2.1"
66+
epoch: "3.1"
6767
- id: 3
6868
transactions:
6969
- transaction_type: ContractCall
@@ -82,7 +82,7 @@ batches:
8282
memo: "0xabcabcabcaba00000000000000000000000000000000000000000000000000000000"
8383
cost: 2240
8484
anchor_block_only: true
85-
epoch: "2.1"
85+
epoch: "3.1"
8686
contracts:
8787
- contract_id: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.px
8888
path: /Users/micaiahreid/work/stx-px/contracts/px.clar

0 commit comments

Comments
 (0)