Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ members = [
"toolkit/utils/db-sync-sqlx",
"toolkit/governed-map/primitives",
"toolkit/governed-map/pallet",
"e2e",
]
resolver = "2"

Expand Down Expand Up @@ -184,6 +185,7 @@ sqlx = { version = "0.8.5", default-features = false, features = [
] }
derive-where = { version = "1.2.7", default-features = false }
once_cell = { version = "1.21.3", default-features = false }
uuid = { version = "1.16.0", default-features = false }

# substrate dependencies
frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-5" }
Expand Down
22 changes: 22 additions & 0 deletions e2e/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[package]
name = "e2e"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
repository.workspace = true
version.workspace = true

[dependencies]
bech32.workspace = true
bech32.features = ["alloc"]
hex.workspace = true
log.workspace = true
rand.features = ["thread_rng"]
rand.workspace = true
serde.workspace = true
serde_json.workspace = true
uuid.features = ["v4"]
uuid.workspace = true

[lints]
workspace = true
34 changes: 34 additions & 0 deletions e2e/config/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"atms_kind": "plain-ecdsa-secp256k1",
"committee_epoch_slippage": 0,
"committee_participation_tolerance": 0.05,
"max_validators": 32,
"main_chain": {
"network": "--testnet-magic 2",
"epoch_length": 86400,
"slot_length": 1,
"active_slots_coeff": 0.05,
"security_param": 432,
"init_timestamp": 1666656000,
"block_stability_margin": 0
},
"nodes_config": {
"default_scheme": "ws",
"default_rpc_scheme": "http",
"default_port": 9933,
"reserve": {
"token_name": "Reward token",
"v_function_script_path": "./config/scripts/v-function-1975.script",
"v_function_updated_script_path": "./config/scripts/v-function-2025.script"
}
},
"timeouts": {
"long_running_function": 50,
"register_cmd": 300,
"deregister_cmd": 300,
"main_chain_tx": 180
},
"poll_intervals": {
"transaction_finalization": 1
}
}
7 changes: 7 additions & 0 deletions e2e/config/examples/multisig_governance.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Sample configuration for multisig governance testing
nodes_config:
# Existing single governance authority configuration
governance_authority:
mainchain_address: "addr_test1vryefctfmmruwnqh287q053narzqn5duh53kk2hxw8jjswsuqfveh"
mainchain_key: "secrets/substrate/devnet/keys/governance_authority/payment.skey"
mainchain_pub_key_hash: "c994e169dec7c74c1751fc07d233e8c409d1bcbd236b2ae671e5283a"
5 changes: 5 additions & 0 deletions e2e/config/scripts/v-function-1975.script
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV2",
"description": "V-function that allows to release one token each minute since 1975-07-02 21:36 UTC (timestamp 000173568960)",
"cborHex": "59072659072301000033233223222253232335332232353232325333573466e1d20000021323232323232332212330010030023232325333573466e1d2000002132323232323232323232332323233323333323332332332222222222221233333333333300100d00c00b00a00900800700600500400300230013574202460026ae84044c00c8c8c8c94ccd5cd19b87480000084cc8848cc00400c008c070d5d080098029aba135744002260489201035054310035573c0046aae74004dd5000998018009aba100f23232325333573466e1d20000021323232333322221233330010050040030023232325333573466e1d20000021332212330010030023020357420026600803e6ae84d5d100089814a481035054310035573c0046aae74004dd51aba1004300835742006646464a666ae68cdc3a4000004224440062a666ae68cdc3a4004004264244460020086eb8d5d08008a999ab9a3370e9002001099091118010021aba100113029491035054310035573c0046aae74004dd51aba10023300175c6ae84d5d1001111919192999ab9a3370e900100108910008a999ab9a3370e9000001099091180100198029aba10011302a491035054310035573c0046aae74004dd50009aba20013574400226046921035054310035573c0046aae74004dd500098009aba100d30013574201860046004eb4cc00404cd5d080519980200a3ad35742012646464a666ae68cdc3a40000042646466442466002006004646464a666ae68cdc3a40000042664424660020060046600aeb4d5d080098021aba1357440022604c921035054310035573c0046aae74004dd51aba10033232325333573466e1d20000021332212330010030023300575a6ae84004c010d5d09aba2001130264901035054310035573c0046aae74004dd51aba1357440064646464a666ae68cdc3a400000420482a666ae68cdc3a4004004204a2604c921035054310035573c0046aae74004dd5000911919192999ab9a3370e9000001089110010a999ab9a3370e90010010990911180180218029aba100115333573466e1d20040021122200113026491035054310035573c0046aae74004dd500089810a49035054310035573c0046aae74004dd51aba10083300175c6ae8401c8c88c008dd60009813111999aab9f0012028233502730043574200460066ae88008084ccc00c044008d5d0802998008011aba1004300275c40024464460046eac004c09088cccd55cf800901311919a8131991091980080180118031aab9d001300535573c00260086ae8800cd5d080100f98099aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d100089808249035054310035573c0046aae74004dd51aba10073001357426ae8801c8c8c8c94ccd5cd19b87480000084c848888c00c014dd71aba100115333573466e1d20020021321222230010053008357420022a666ae68cdc3a400800426424444600400a600c6ae8400454ccd5cd19b87480180084c848888c010014c014d5d080089808249035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909111111180280418029aba100115333573466e1d20020021321222222230070083005357420022a666ae68cdc3a400800426644244444446600c012010600a6ae84004dd71aba1357440022a666ae68cdc3a400c0042664424444444660040120106eb8d5d08009bae357426ae8800454ccd5cd19b87480200084cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a999ab9a3370e90050010891111110020a999ab9a3370e900600108911111100189807a49035054310035573c0046aae74004dd500091919192999ab9a3370e9000001099091180100198029aba100115333573466e1d2002002132333222122333001005004003375a6ae84008dd69aba1001375a6ae84d5d10009aba20011300e4901035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909118010019bae357420022a666ae68cdc3a400400426424460020066eb8d5d080089806a481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109991091980080180118029aba1001375a6ae84d5d1000898062481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109bae3574200226016921035054310035573c0046aae74004dd500089803a49035054310035573c0046aae74004dd5003111999a8009002919199ab9a337126602044a66a002290001109a801112999ab9a3371e004010260260022600c006600244444444444401066e0ccdc09a9a980091111111111100291001112999a80110a99a80108008b0b0b002a4181520e00e00ca006400a400a6eb401c48800848800440084c00524010350543500232633573800200424002600644a66a002290001109a8011119b800013006003122002122122330010040032323001001223300330020020014c01051a677485800001"
}
5 changes: 5 additions & 0 deletions e2e/config/scripts/v-function-2025.script
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV2",
"description": "V-function that allows to release one token each minute since 2025-02-07 10:46 UTC (timestamp 1738925213000)",
"cborHex": "59072a59072701000033233223222253232335332232353232325333573466e1d20000021323232323232332212330010030023232325333573466e1d2000002132323232323232323232332323233323333323332332332222222222221233333333333300100d00c00b00a00900800700600500400300230013574202460026ae84044c00c8c8c8c94ccd5cd19b87480000084cc8848cc00400c008c070d5d080098029aba135744002260489201035054310035573c0046aae74004dd5000998018009aba100f23232325333573466e1d20000021323232333322221233330010050040030023232325333573466e1d20000021332212330010030023020357420026600803e6ae84d5d100089814a481035054310035573c0046aae74004dd51aba1004300835742006646464a666ae68cdc3a4000004224440062a666ae68cdc3a4004004264244460020086eb8d5d08008a999ab9a3370e9002001099091118010021aba100113029491035054310035573c0046aae74004dd51aba10023300175c6ae84d5d1001111919192999ab9a3370e900100108910008a999ab9a3370e9000001099091180100198029aba10011302a491035054310035573c0046aae74004dd50009aba20013574400226046921035054310035573c0046aae74004dd500098009aba100d30013574201860046004eb4cc00404cd5d080519980200a3ad35742012646464a666ae68cdc3a40000042646466442466002006004646464a666ae68cdc3a40000042664424660020060046600aeb4d5d080098021aba1357440022604c921035054310035573c0046aae74004dd51aba10033232325333573466e1d20000021332212330010030023300575a6ae84004c010d5d09aba2001130264901035054310035573c0046aae74004dd51aba1357440064646464a666ae68cdc3a400000420482a666ae68cdc3a4004004204a2604c921035054310035573c0046aae74004dd5000911919192999ab9a3370e9000001089110010a999ab9a3370e90010010990911180180218029aba100115333573466e1d20040021122200113026491035054310035573c0046aae74004dd500089810a49035054310035573c0046aae74004dd51aba10083300175c6ae8401c8c88c008dd60009813111999aab9f0012028233502730043574200460066ae88008084ccc00c044008d5d0802998008011aba1004300275c40024464460046eac004c09088cccd55cf800901311919a8131991091980080180118031aab9d001300535573c00260086ae8800cd5d080100f98099aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d100089808249035054310035573c0046aae74004dd51aba10073001357426ae8801c8c8c8c94ccd5cd19b87480000084c848888c00c014dd71aba100115333573466e1d20020021321222230010053008357420022a666ae68cdc3a400800426424444600400a600c6ae8400454ccd5cd19b87480180084c848888c010014c014d5d080089808249035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909111111180280418029aba100115333573466e1d20020021321222222230070083005357420022a666ae68cdc3a400800426644244444446600c012010600a6ae84004dd71aba1357440022a666ae68cdc3a400c0042664424444444660040120106eb8d5d08009bae357426ae8800454ccd5cd19b87480200084cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a999ab9a3370e90050010891111110020a999ab9a3370e900600108911111100189807a49035054310035573c0046aae74004dd500091919192999ab9a3370e9000001099091180100198029aba100115333573466e1d2002002132333222122333001005004003375a6ae84008dd69aba1001375a6ae84d5d10009aba20011300e4901035054310035573c0046aae74004dd500091919192999ab9a3370e900000109909118010019bae357420022a666ae68cdc3a400400426424460020066eb8d5d080089806a481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109991091980080180118029aba1001375a6ae84d5d1000898062481035054310035573c0046aae74004dd500091919192999ab9a3370e900000109bae3574200226016921035054310035573c0046aae74004dd500089803a49035054310035573c0046aae74004dd5003111999a8009002919199ab9a337126602044a66a002290001109a801112999ab9a3371e004010260260022600c006600244444444444401066e0ccdc09a9a980091111111111100291001112999a80110a99a80108008b0b0b002a4181520e00e00ca006400a400a6eb401c48800848800440084c00524010350543500232633573800200424002600644a66a002290001109a8011119b800013006003122002122122330010040032323001001223300330020020014c01091b00000194e00505480001"
}
29 changes: 29 additions & 0 deletions e2e/config/substrate/ci-ci.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"nodes_config": {
"nodes": {
"validator-1": {
"host": "ci-preview-validator-1-service.ci-preview.svc.cluster.local",
"port": "${nodes_config[default_port]}"
},
"validator-2": {
"host": "ci-preview-validator-2-service.ci-preview.svc.cluster.local",
"port": "${nodes_config[default_port]}"
},
"validator-3": {
"host": "ci-preview-validator-3-service.ci-preview.svc.cluster.local",
"port": "${nodes_config[default_port]}"
},
"validator-4": {
"host": "ci-preview-validator-4-service.ci-preview.svc.cluster.local",
"port": "${nodes_config[default_port]}"
},
"validator-5": {
"host": "ci-preview-validator-5-service.ci-preview.svc.cluster.local",
"port": "${nodes_config[default_port]}"
}
}
},
"stack_config": {
"tools_host": "binary-host-service.sc.svc.cluster.local"
}
}
118 changes: 118 additions & 0 deletions e2e/config/substrate/ci_nodes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
"deployment_mc_epoch": 925,
"genesis_utxo": "d334afbb10b16d9b8bc1537d1da0d7c1b6b46ac71666a3a38161a39a0223db01#1",
"deployment_version": "master",
"test_environment": "ci",
"keys_path": "secrets/substrate/staging/keys",
"nodes_config": {
"nodes": {
"validator-1": {
"host": "10.0.10.139",
"port": "30621",
"aura_ss58_address": "5GHLr2zBDNPXno9XdKgh541uRSiTxnZyzFcr4jK6HUbHMpit",
"pool_id": "da74fc8256d15c7ab3370a6ca28398986cb97c32e9ef66026ac61e99",
"public_key": "0x03b827f4da9711bab7292e5695576a841a4d20af9a07b1ba7a230168d2a78e9df4",
"aura_public_key": "0xba94651de6279a38a416b97b9720c3df76224435e951ac73e9e302a4ee9fcf73",
"grandpa_public_key": "0xdde2501588713ddad5daf5a898c19d82cd591609c9184679868640c8cfe8287d",
"rotation_candidate": true,
"cardano_payment_addr": "addr_test1vq6ywn0f007x32j47jrk5qy9hy3gknsvszrcpdqkeaye7pshu2w2t",
"keys_files": {
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-1/payment.skey.json.decrypted",
"spo_signing_key": "./secrets/substrate/staging/keys/validator-1/cold.skey.json.decrypted",
"spo_public_key": "./secrets/substrate/staging/keys/validator-1/cold.vkey.json.decrypted",
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-1/partner_chain.skey.json.decrypted"
}
},
"validator-2": {
"host": "10.0.10.139",
"port": "30622",
"aura_ss58_address": "5DHbxU687f1Y3x8yBCWMtqSiJ5qt2yrxQPXNXZNNDaFtmXKv",
"pool_id": "eaed153a8b046770cfd094ee72d080ea682188e63ac11937e3f7f827",
"public_key": "0x02ef5bcd94d54a18ad199559782cd72ac3ccd850976aaaafbca8f9d2625afbf7c4",
"aura_public_key": "0x36128fff2acc04f206ccaf4e9f8e9995998efced29075a58b7d76d3735c21208",
"grandpa_public_key": "0x8f9a9856a27cc114ce85b64f41144f0c907c4bd8b3102b083b52b6b61aff6c47",
"rotation_candidate": true,
"cardano_payment_addr": "addr_test1vz80jkz5d2kdaykfrqlqryr6lt46tunk4ldfjqv88hevrpsrdfmm5",
"keys_files": {
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-2/payment.skey.json.decrypted",
"spo_signing_key": "./secrets/substrate/staging/keys/validator-2/cold.skey.json.decrypted",
"spo_public_key": "./secrets/substrate/staging/keys/validator-2/cold.vkey.json.decrypted",
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-2/partner_chain.skey.json.decrypted"
}
},
"validator-3": {
"host": "10.0.10.139",
"port": "30623",
"aura_ss58_address": "5FYtL6HccYhk6KZeFP7hNnkMaXrAwVpTHJWsfnNJcu8AM6in",
"pool_id": "7dfba85597a867fffa59037df7f6adcd50e745dcceac2b48eda94b20",
"public_key": "0x02f2762ab6e1a125dc03908a7b738f8023d13763f28a11d7633c6c8bc463478430",
"aura_public_key": "0x9a32d3896a56e822321f7bc915befc8ce112c5d67e3c6497295bd3d7b020f94c",
"grandpa_public_key": "0x4f3c0ecc6dc474f27ad7967f5cdbd50da047ffedbc91b65f5cd247515489c98f",
"permissioned_candidate": true,
"cardano_payment_addr": "addr_test1vrxc6wvtmqrqx4n9e89sqf9u0w0jcp8a96s7gkddfsr0ppcdvzcf6",
"keys_files": {
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-3/payment.skey.json.decrypted",
"spo_signing_key": "./secrets/substrate/staging/keys/validator-3/cold.skey.json.decrypted",
"spo_public_key": "./secrets/substrate/staging/keys/validator-3/cold.vkey.json.decrypted",
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-3/partner_chain.skey.json.decrypted"
}
},
"validator-4": {
"host": "10.0.10.139",
"port": "30624",
"aura_ss58_address": "5GVpqdtqjxqUjuVKMkmh8ehSwcs2nXjpvzHqjouZXMJAyC4b",
"pool_id": "2a3f5dd02da1310e081f2367412e02b72baad3e2a5045f62df2c78c5",
"public_key": "0x025e19f82c5e2bac5e8869d49ff26359e442628bc5cfa38eeb5275f43d04015da8",
"aura_public_key": "0xc41992b8eb2f3a8a6c46211df584827f9eeb0175e2c75e1242392262b55b6874",
"grandpa_public_key": "0x34b71fdad96431bf115350d8ad21eec07a2b154ff32dc31125f988e308bebea8",
"permissioned_candidate": true,
"cardano_payment_addr": "addr_test1vq65mgmcpd6rq6ndy22kwxzdc9u0tmrpr7s30037qdhlalg3f5ax0",
"keys_files": {
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-4/payment.skey.json.decrypted",
"spo_signing_key": "./secrets/substrate/staging/keys/validator-4/cold.skey.json.decrypted",
"spo_public_key": "./secrets/substrate/staging/keys/validator-4/cold.vkey.json.decrypted",
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-4/partner_chain.skey.json.decrypted"
}
},
"validator-5": {
"host": "10.0.10.139",
"port": "30625",
"aura_ss58_address": "5DsfhT7HJe6i5LYeKBzefrXijW5UgPsn2Cuyw5WMa4uEktTn",
"pool_id": "ae81beee7a6c3fa13bba811f91f63ebdd7eb25dd8a62476d4996de10",
"public_key": "0x03f38a062a4b372c045c1dddc4fe98a2c9cb1d6eec8bf02f973fd29b1096cd8155",
"aura_public_key": "0x500d7ff6d903c85db5ee5624df9510c2a085cf30da260166bd370010d0bdc97a",
"grandpa_public_key": "0xa04d74c1539550876d04e4d2de4e0531087c3b6810ce96ddc16d78ccf4ac4f11",
"permissioned_candidate": true,
"cardano_payment_addr": "addr_test1vqqm36dcg5xeeqgc29r8gu6wujlmr4fyrdrvuzq4qnem2vs7g2kvj",
"keys_files": {
"cardano_payment_key": "./secrets/substrate/staging/keys/validator-5/payment.skey.json.decrypted",
"spo_signing_key": "./secrets/substrate/staging/keys/validator-5/cold.skey.json.decrypted",
"spo_public_key": "./secrets/substrate/staging/keys/validator-5/cold.vkey.json.decrypted",
"partner_chain_signing_key": "./secrets/substrate/staging/keys/validator-5/partner_chain.skey.json.decrypted"
}
}
},
"governance_authority": {
"mainchain_address": "addr_test1vq0sjaaupatuvl9x6aefdsd4whlqtfku93068qzkhf3u2rqt9cnuq",
"mainchain_key": "./secrets/substrate/staging/keys/governance_authority/init.skey.json.decrypted",
"mainchain_pub_key": "a90ba46b07c0c2c940e3e3149aee5817130a1d8b600bc85b91345e4f7a1e5aca"
},
"selected_node": "validator-4",
"node": "${nodes_config[nodes][${nodes_config[selected_node]}]}",
"token_conversion_rate": 9,
"block_duration": 6,
"slots_in_epoch": 60,
"token_policy_id": "",
"d_param_min": {
"permissioned_candidates_number": 6,
"trustless_candidates_number": 4
},
"d_param_max": {
"permissioned_candidates_number": 6,
"trustless_candidates_number": 4
},
"reserve": {
"token_name": "PCTokenDemo"
}
}
}
29 changes: 29 additions & 0 deletions e2e/config/substrate/ci_stack.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"stack_config": {
"ogmios_scheme": "ws",
"ogmios_host": "devnet-services-service",
"ogmios_port": 1337,
"tools_host": "10.0.12.163",
"ssh": {
"username": "root",
"host": "${stack_config[tools_host]}",
"port": 22,
"host_keys_path": "config/substrate/known_hosts",
"private_key_path": "secrets/substrate/staging/keys/ssh-key.yaml.decrypted"
},
"tools": {
"cardano_cli": {
"cli": "export CARDANO_NODE_SOCKET_PATH=/ipc/node.socket && /tools/cardano-cli",
"ssh": "${stack_config[ssh]}"
},
"partner_chains_node": {
"cli": "/tools/ci-preview/partner-chains-node-latest",
"ssh": "${stack_config[ssh]}"
},
"bech32": {
"cli": "/tools/bech32",
"ssh": "${stack_config[ssh]}"
}
}
}
}
Loading
Loading