Skip to content

Commit f7a75af

Browse files
committed
wip
1 parent eb00c3a commit f7a75af

28 files changed

+1782
-0
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ members = [
5656
"toolkit/utils/db-sync-sqlx",
5757
"toolkit/governed-map/primitives",
5858
"toolkit/governed-map/pallet",
59+
"e2e",
5960
]
6061
resolver = "2"
6162

@@ -184,6 +185,7 @@ sqlx = { version = "0.8.5", default-features = false, features = [
184185
] }
185186
derive-where = { version = "1.2.7", default-features = false }
186187
once_cell = { version = "1.21.3", default-features = false }
188+
uuid = { version = "1.16.0", default-features = false }
187189

188190
# substrate dependencies
189191
frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-5" }

e2e/Cargo.toml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[package]
2+
name = "e2e"
3+
authors.workspace = true
4+
edition.workspace = true
5+
homepage.workspace = true
6+
repository.workspace = true
7+
version.workspace = true
8+
9+
[dependencies]
10+
bech32.workspace = true
11+
bech32.features = ["alloc"]
12+
hex.workspace = true
13+
log.workspace = true
14+
rand.features = ["thread_rng"]
15+
rand.workspace = true
16+
serde.workspace = true
17+
serde_json.workspace = true
18+
uuid.features = ["v4"]
19+
uuid.workspace = true
20+
21+
[lints]
22+
workspace = true

e2e/config/config.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"atms_kind": "plain-ecdsa-secp256k1",
3+
"committee_epoch_slippage": 0,
4+
"committee_participation_tolerance": 0.05,
5+
"max_validators": 32,
6+
"main_chain": {
7+
"network": "--testnet-magic 2",
8+
"epoch_length": 86400,
9+
"slot_length": 1,
10+
"active_slots_coeff": 0.05,
11+
"security_param": 432,
12+
"init_timestamp": 1666656000,
13+
"block_stability_margin": 0
14+
},
15+
"nodes_config": {
16+
"default_scheme": "ws",
17+
"default_rpc_scheme": "http",
18+
"default_port": 9933,
19+
"reserve": {
20+
"token_name": "Reward token",
21+
"v_function_script_path": "./config/scripts/v-function-1975.script",
22+
"v_function_updated_script_path": "./config/scripts/v-function-2025.script"
23+
}
24+
},
25+
"timeouts": {
26+
"long_running_function": 50,
27+
"register_cmd": 300,
28+
"deregister_cmd": 300,
29+
"main_chain_tx": 180
30+
},
31+
"poll_intervals": {
32+
"transaction_finalization": 1
33+
}
34+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Sample configuration for multisig governance testing
2+
nodes_config:
3+
# Existing single governance authority configuration
4+
governance_authority:
5+
mainchain_address: "addr_test1vryefctfmmruwnqh287q053narzqn5duh53kk2hxw8jjswsuqfveh"
6+
mainchain_key: "secrets/substrate/devnet/keys/governance_authority/payment.skey"
7+
mainchain_pub_key_hash: "c994e169dec7c74c1751fc07d233e8c409d1bcbd236b2ae671e5283a"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "PlutusScriptV2",
3+
"description": "V-function that allows to release one token each minute since 1975-07-02 21:36 UTC (timestamp 000173568960)",
4+
"cborHex": "59072659072301000033233223222253232335332232353232325333573466e1d20000021323232323232332212330010030023232325333573466e1d2000002132323232323232323232332323233323333323332332332222222222221233333333333300100d00c00b00a00900800700600500400300230013574202460026ae84044c00c8c8c8c94ccd5cd19b87480000084cc8848cc00400c008c070d5d080098029aba135744002260489201035054310035573c0046aae74004dd5000998018009aba100f23232325333573466e1d20000021323232333322221233330010050040030023232325333573466e1d20000021332212330010030023020357420026600803e6ae84d5d100089814a481035054310035573c0046aae74004dd51aba1004300835742006646464a666ae68cdc3a4000004224440062a666ae68cdc3a4004004264244460020086eb8d5d08008a999ab9a3370e9002001099091118010021aba100113029491035054310035573c0046aae74004dd51aba10023300175c6ae84d5d1001111919192999ab9a3370e900100108910008a999ab9a3370e9000001099091180100198029aba10011302a491035054310035573c0046aae74004dd50009aba20013574400226046921035054310035573c0046aae74004dd500098009aba100d30013574201860046004eb4cc00404cd5d080519980200a3ad35742012646464a666ae68cdc3a40000042646466442466002006004646464a666ae68cdc3a40000042664424660020060046600aeb4d5d080098021aba1357440022604c921035054310035573c0046aae74004dd51aba10033232325333573466e1d20000021332212330010030023300575a6ae84004c010d5d09aba2001130264901035054310035573c0046aae74004dd51aba1357440064646464a666ae68cdc3a400000420482a666ae68cdc3a4004004204a2604c921035054310035573c0046aae74004dd5000911919192999ab9a3370e9000001089110010a999ab9a3370e90010010990911180180218029aba100115333573466e1d20040021122200113026491035054310035573c0046aae74004dd500089810a49035054310035573c0046aae74004dd51aba10083300175c6ae8401c8c88c008dd60009813111999aab9f0012028233502730043574200460066ae88008084ccc00c044008d5d0802998008011aba1004300275c40024464460046eac004c09088cccd55cf800901311919a8131991091980080180118031aab9d001300535573c00260086ae8800cd5d080100f98099aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d100089808249035054310035573c0046aae74004dd51aba10073001357426ae8801c8c8c8c94ccd5cd19b87480000084c848888c00c014dd71aba100115333573466e1d20020021321222230010053008357420022a666ae68cdc3a400800426424444600400a600c6ae8400454ccd5cd19b87480180084c848888c010014c014d5d080089808249035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909111111180280418029aba100115333573466e1d20020021321222222230070083005357420022a666ae68cdc3a400800426644244444446600c012010600a6ae84004dd71aba1357440022a666ae68cdc3a400c0042664424444444660040120106eb8d5d08009bae357426ae8800454ccd5cd19b87480200084cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a999ab9a3370e90050010891111110020a999ab9a3370e900600108911111100189807a49035054310035573c0046aae74004dd500091919192999ab9a3370e9000001099091180100198029aba100115333573466e1d2002002132333222122333001005004003375a6ae84008dd69aba1001375a6ae84d5d10009aba20011300e4901035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909118010019bae357420022a666ae68cdc3a400400426424460020066eb8d5d080089806a481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109991091980080180118029aba1001375a6ae84d5d1000898062481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109bae3574200226016921035054310035573c0046aae74004dd500089803a49035054310035573c0046aae74004dd5003111999a8009002919199ab9a337126602044a66a002290001109a801112999ab9a3371e004010260260022600c006600244444444444401066e0ccdc09a9a980091111111111100291001112999a80110a99a80108008b0b0b002a4181520e00e00ca006400a400a6eb401c48800848800440084c00524010350543500232633573800200424002600644a66a002290001109a8011119b800013006003122002122122330010040032323001001223300330020020014c01051a677485800001"
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "PlutusScriptV2",
3+
"description": "V-function that allows to release one token each minute since 2025-02-07 10:46 UTC (timestamp 1738925213000)",
4+
"cborHex": "59072a59072701000033233223222253232335332232353232325333573466e1d20000021323232323232332212330010030023232325333573466e1d2000002132323232323232323232332323233323333323332332332222222222221233333333333300100d00c00b00a00900800700600500400300230013574202460026ae84044c00c8c8c8c94ccd5cd19b87480000084cc8848cc00400c008c070d5d080098029aba135744002260489201035054310035573c0046aae74004dd5000998018009aba100f23232325333573466e1d20000021323232333322221233330010050040030023232325333573466e1d20000021332212330010030023020357420026600803e6ae84d5d100089814a481035054310035573c0046aae74004dd51aba1004300835742006646464a666ae68cdc3a4000004224440062a666ae68cdc3a4004004264244460020086eb8d5d08008a999ab9a3370e9002001099091118010021aba100113029491035054310035573c0046aae74004dd51aba10023300175c6ae84d5d1001111919192999ab9a3370e900100108910008a999ab9a3370e9000001099091180100198029aba10011302a491035054310035573c0046aae74004dd50009aba20013574400226046921035054310035573c0046aae74004dd500098009aba100d30013574201860046004eb4cc00404cd5d080519980200a3ad35742012646464a666ae68cdc3a40000042646466442466002006004646464a666ae68cdc3a40000042664424660020060046600aeb4d5d080098021aba1357440022604c921035054310035573c0046aae74004dd51aba10033232325333573466e1d20000021332212330010030023300575a6ae84004c010d5d09aba2001130264901035054310035573c0046aae74004dd51aba1357440064646464a666ae68cdc3a400000420482a666ae68cdc3a4004004204a2604c921035054310035573c0046aae74004dd5000911919192999ab9a3370e9000001089110010a999ab9a3370e90010010990911180180218029aba100115333573466e1d20040021122200113026491035054310035573c0046aae74004dd500089810a49035054310035573c0046aae74004dd51aba10083300175c6ae8401c8c88c008dd60009813111999aab9f0012028233502730043574200460066ae88008084ccc00c044008d5d0802998008011aba1004300275c40024464460046eac004c09088cccd55cf800901311919a8131991091980080180118031aab9d001300535573c00260086ae8800cd5d080100f98099aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d100089808249035054310035573c0046aae74004dd51aba10073001357426ae8801c8c8c8c94ccd5cd19b87480000084c848888c00c014dd71aba100115333573466e1d20020021321222230010053008357420022a666ae68cdc3a400800426424444600400a600c6ae8400454ccd5cd19b87480180084c848888c010014c014d5d080089808249035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909111111180280418029aba100115333573466e1d20020021321222222230070083005357420022a666ae68cdc3a400800426644244444446600c012010600a6ae84004dd71aba1357440022a666ae68cdc3a400c0042664424444444660040120106eb8d5d08009bae357426ae8800454ccd5cd19b87480200084cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a999ab9a3370e90050010891111110020a999ab9a3370e900600108911111100189807a49035054310035573c0046aae74004dd500091919192999ab9a3370e9000001099091180100198029aba100115333573466e1d2002002132333222122333001005004003375a6ae84008dd69aba1001375a6ae84d5d10009aba20011300e4901035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909118010019bae357420022a666ae68cdc3a400400426424460020066eb8d5d080089806a481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109991091980080180118029aba1001375a6ae84d5d1000898062481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109bae3574200226016921035054310035573c0046aae74004dd500089803a49035054310035573c0046aae74004dd5003111999a8009002919199ab9a337126602044a66a002290001109a801112999ab9a3371e004010260260022600c006600244444444444401066e0ccdc09a9a980091111111111100291001112999a80110a99a80108008b0b0b002a4181520e00e00ca006400a400a6eb401c48800848800440084c00524010350543500232633573800200424002600644a66a002290001109a8011119b800013006003122002122122330010040032323001001223300330020020014c01091b00000194e00505480001"
5+
}

e2e/config/substrate/ci-ci.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"nodes_config": {
3+
"nodes": {
4+
"validator-1": {
5+
"host": "ci-preview-validator-1-service.ci-preview.svc.cluster.local",
6+
"port": "${nodes_config[default_port]}"
7+
},
8+
"validator-2": {
9+
"host": "ci-preview-validator-2-service.ci-preview.svc.cluster.local",
10+
"port": "${nodes_config[default_port]}"
11+
},
12+
"validator-3": {
13+
"host": "ci-preview-validator-3-service.ci-preview.svc.cluster.local",
14+
"port": "${nodes_config[default_port]}"
15+
},
16+
"validator-4": {
17+
"host": "ci-preview-validator-4-service.ci-preview.svc.cluster.local",
18+
"port": "${nodes_config[default_port]}"
19+
},
20+
"validator-5": {
21+
"host": "ci-preview-validator-5-service.ci-preview.svc.cluster.local",
22+
"port": "${nodes_config[default_port]}"
23+
}
24+
}
25+
},
26+
"stack_config": {
27+
"tools_host": "binary-host-service.sc.svc.cluster.local"
28+
}
29+
}

e2e/config/substrate/ci_nodes.json

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
{
2+
"deployment_mc_epoch": 925,
3+
"genesis_utxo": "d334afbb10b16d9b8bc1537d1da0d7c1b6b46ac71666a3a38161a39a0223db01#1",
4+
"deployment_version": "master",
5+
"test_environment": "ci",
6+
"keys_path": "secrets/substrate/staging/keys",
7+
"nodes_config": {
8+
"nodes": {
9+
"validator-1": {
10+
"host": "10.0.10.139",
11+
"port": "30621",
12+
"aura_ss58_address": "5GHLr2zBDNPXno9XdKgh541uRSiTxnZyzFcr4jK6HUbHMpit",
13+
"pool_id": "da74fc8256d15c7ab3370a6ca28398986cb97c32e9ef66026ac61e99",
14+
"public_key": "0x03b827f4da9711bab7292e5695576a841a4d20af9a07b1ba7a230168d2a78e9df4",
15+
"aura_public_key": "0xba94651de6279a38a416b97b9720c3df76224435e951ac73e9e302a4ee9fcf73",
16+
"grandpa_public_key": "0xdde2501588713ddad5daf5a898c19d82cd591609c9184679868640c8cfe8287d",
17+
"rotation_candidate": true,
18+
"cardano_payment_addr": "addr_test1vq6ywn0f007x32j47jrk5qy9hy3gknsvszrcpdqkeaye7pshu2w2t",
19+
"keys_files": {
20+
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-1/payment.skey.json.decrypted",
21+
"spo_signing_key": "./secrets/substrate/staging/keys/validator-1/cold.skey.json.decrypted",
22+
"spo_public_key": "./secrets/substrate/staging/keys/validator-1/cold.vkey.json.decrypted",
23+
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-1/partner_chain.skey.json.decrypted"
24+
}
25+
},
26+
"validator-2": {
27+
"host": "10.0.10.139",
28+
"port": "30622",
29+
"aura_ss58_address": "5DHbxU687f1Y3x8yBCWMtqSiJ5qt2yrxQPXNXZNNDaFtmXKv",
30+
"pool_id": "eaed153a8b046770cfd094ee72d080ea682188e63ac11937e3f7f827",
31+
"public_key": "0x02ef5bcd94d54a18ad199559782cd72ac3ccd850976aaaafbca8f9d2625afbf7c4",
32+
"aura_public_key": "0x36128fff2acc04f206ccaf4e9f8e9995998efced29075a58b7d76d3735c21208",
33+
"grandpa_public_key": "0x8f9a9856a27cc114ce85b64f41144f0c907c4bd8b3102b083b52b6b61aff6c47",
34+
"rotation_candidate": true,
35+
"cardano_payment_addr": "addr_test1vz80jkz5d2kdaykfrqlqryr6lt46tunk4ldfjqv88hevrpsrdfmm5",
36+
"keys_files": {
37+
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-2/payment.skey.json.decrypted",
38+
"spo_signing_key": "./secrets/substrate/staging/keys/validator-2/cold.skey.json.decrypted",
39+
"spo_public_key": "./secrets/substrate/staging/keys/validator-2/cold.vkey.json.decrypted",
40+
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-2/partner_chain.skey.json.decrypted"
41+
}
42+
},
43+
"validator-3": {
44+
"host": "10.0.10.139",
45+
"port": "30623",
46+
"aura_ss58_address": "5FYtL6HccYhk6KZeFP7hNnkMaXrAwVpTHJWsfnNJcu8AM6in",
47+
"pool_id": "7dfba85597a867fffa59037df7f6adcd50e745dcceac2b48eda94b20",
48+
"public_key": "0x02f2762ab6e1a125dc03908a7b738f8023d13763f28a11d7633c6c8bc463478430",
49+
"aura_public_key": "0x9a32d3896a56e822321f7bc915befc8ce112c5d67e3c6497295bd3d7b020f94c",
50+
"grandpa_public_key": "0x4f3c0ecc6dc474f27ad7967f5cdbd50da047ffedbc91b65f5cd247515489c98f",
51+
"permissioned_candidate": true,
52+
"cardano_payment_addr": "addr_test1vrxc6wvtmqrqx4n9e89sqf9u0w0jcp8a96s7gkddfsr0ppcdvzcf6",
53+
"keys_files": {
54+
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-3/payment.skey.json.decrypted",
55+
"spo_signing_key": "./secrets/substrate/staging/keys/validator-3/cold.skey.json.decrypted",
56+
"spo_public_key": "./secrets/substrate/staging/keys/validator-3/cold.vkey.json.decrypted",
57+
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-3/partner_chain.skey.json.decrypted"
58+
}
59+
},
60+
"validator-4": {
61+
"host": "10.0.10.139",
62+
"port": "30624",
63+
"aura_ss58_address": "5GVpqdtqjxqUjuVKMkmh8ehSwcs2nXjpvzHqjouZXMJAyC4b",
64+
"pool_id": "2a3f5dd02da1310e081f2367412e02b72baad3e2a5045f62df2c78c5",
65+
"public_key": "0x025e19f82c5e2bac5e8869d49ff26359e442628bc5cfa38eeb5275f43d04015da8",
66+
"aura_public_key": "0xc41992b8eb2f3a8a6c46211df584827f9eeb0175e2c75e1242392262b55b6874",
67+
"grandpa_public_key": "0x34b71fdad96431bf115350d8ad21eec07a2b154ff32dc31125f988e308bebea8",
68+
"permissioned_candidate": true,
69+
"cardano_payment_addr": "addr_test1vq65mgmcpd6rq6ndy22kwxzdc9u0tmrpr7s30037qdhlalg3f5ax0",
70+
"keys_files": {
71+
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-4/payment.skey.json.decrypted",
72+
"spo_signing_key": "./secrets/substrate/staging/keys/validator-4/cold.skey.json.decrypted",
73+
"spo_public_key": "./secrets/substrate/staging/keys/validator-4/cold.vkey.json.decrypted",
74+
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-4/partner_chain.skey.json.decrypted"
75+
}
76+
},
77+
"validator-5": {
78+
"host": "10.0.10.139",
79+
"port": "30625",
80+
"aura_ss58_address": "5DsfhT7HJe6i5LYeKBzefrXijW5UgPsn2Cuyw5WMa4uEktTn",
81+
"pool_id": "ae81beee7a6c3fa13bba811f91f63ebdd7eb25dd8a62476d4996de10",
82+
"public_key": "0x03f38a062a4b372c045c1dddc4fe98a2c9cb1d6eec8bf02f973fd29b1096cd8155",
83+
"aura_public_key": "0x500d7ff6d903c85db5ee5624df9510c2a085cf30da260166bd370010d0bdc97a",
84+
"grandpa_public_key": "0xa04d74c1539550876d04e4d2de4e0531087c3b6810ce96ddc16d78ccf4ac4f11",
85+
"permissioned_candidate": true,
86+
"cardano_payment_addr": "addr_test1vqqm36dcg5xeeqgc29r8gu6wujlmr4fyrdrvuzq4qnem2vs7g2kvj",
87+
"keys_files": {
88+
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-5/payment.skey.json.decrypted",
89+
"spo_signing_key": "./secrets/substrate/staging/keys/validator-5/cold.skey.json.decrypted",
90+
"spo_public_key": "./secrets/substrate/staging/keys/validator-5/cold.vkey.json.decrypted",
91+
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-5/partner_chain.skey.json.decrypted"
92+
}
93+
}
94+
},
95+
"governance_authority": {
96+
"mainchain_address": "addr_test1vq0sjaaupatuvl9x6aefdsd4whlqtfku93068qzkhf3u2rqt9cnuq",
97+
"mainchain_key": "./secrets/substrate/staging/keys/governance_authority/init.skey.json.decrypted",
98+
"mainchain_pub_key": "a90ba46b07c0c2c940e3e3149aee5817130a1d8b600bc85b91345e4f7a1e5aca"
99+
},
100+
"selected_node": "validator-4",
101+
"node": "${nodes_config[nodes][${nodes_config[selected_node]}]}",
102+
"token_conversion_rate": 9,
103+
"block_duration": 6,
104+
"slots_in_epoch": 60,
105+
"token_policy_id": "",
106+
"d_param_min": {
107+
"permissioned_candidates_number": 6,
108+
"trustless_candidates_number": 4
109+
},
110+
"d_param_max": {
111+
"permissioned_candidates_number": 6,
112+
"trustless_candidates_number": 4
113+
},
114+
"reserve": {
115+
"token_name": "PCTokenDemo"
116+
}
117+
}
118+
}

e2e/config/substrate/ci_stack.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"stack_config": {
3+
"ogmios_scheme": "ws",
4+
"ogmios_host": "devnet-services-service",
5+
"ogmios_port": 1337,
6+
"tools_host": "10.0.12.163",
7+
"ssh": {
8+
"username": "root",
9+
"host": "${stack_config[tools_host]}",
10+
"port": 22,
11+
"host_keys_path": "config/substrate/known_hosts",
12+
"private_key_path": "secrets/substrate/staging/keys/ssh-key.yaml.decrypted"
13+
},
14+
"tools": {
15+
"cardano_cli": {
16+
"cli": "export CARDANO_NODE_SOCKET_PATH=/ipc/node.socket && /tools/cardano-cli",
17+
"ssh": "${stack_config[ssh]}"
18+
},
19+
"partner_chains_node": {
20+
"cli": "/tools/ci-preview/partner-chains-node-latest",
21+
"ssh": "${stack_config[ssh]}"
22+
},
23+
"bech32": {
24+
"cli": "/tools/bech32",
25+
"ssh": "${stack_config[ssh]}"
26+
}
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)