{"id":19783677,"url":"https://github.com/intersectmbo/antaeus","last_synced_at":"2025-04-30T22:31:38.189Z","repository":{"id":153748723,"uuid":"624461519","full_name":"IntersectMBO/antaeus","owner":"IntersectMBO","description":"Cardano end-to-end testing framework for Haskell APIs","archived":false,"fork":false,"pushed_at":"2025-01-15T23:31:52.000Z","size":1647,"stargazers_count":10,"open_issues_count":14,"forks_count":3,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-06T05:34:28.909Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IntersectMBO.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS.md","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-06T14:15:34.000Z","updated_at":"2025-01-15T23:31:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"5b72f0b7-a9e5-4f3a-9f24-42b0def99787","html_url":"https://github.com/IntersectMBO/antaeus","commit_stats":null,"previous_names":["intersectmbo/antaeus"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fantaeus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fantaeus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fantaeus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fantaeus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntersectMBO","download_url":"https://codeload.github.com/IntersectMBO/antaeus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251791621,"owners_count":21644432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T06:08:58.265Z","updated_at":"2025-04-30T22:31:37.787Z","avatar_url":"https://github.com/IntersectMBO.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"antaeus.jpg\" style=\"border-radius: 20px;\" alt=\"antaeus\" width=\"25%\"/\u003e\n  \u003ch2\u003eAntaeus\u003c/h2\u003e\n\u003c/div\u003e\n\n\nAntaeus is a framework for end-to-end testing Cardano Haskell APIs. It leverages [cardano-testnet](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-testnet) to configure and launch a local Cardano testnet, and [cardano-api](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-api) to build transactions and query the ledger state. The primary focus of these tests is on functionality involving Plutus scripts.\n\nTests can be executed on either a local private testnet or any public network. They are grouped by target protocol version (e.g. Babbage PV8) and share an instance of private testnet for faster execution.\n\n#### How to run on private testnet\n\nBy default, tests are configured to run on local private testnet environments with their supported protocol version.\n1. Optionally, enter `nix develop` shell for dependencies.\n2. Run `cabal build all`\n3. Run `cabal test e2e-tests`\n\n\n#### How to run on public testnet\n\nCheck these preconditions before following the private testnet steps above.\n1. Create a directory containing at least the following two subdirectories:\n   - **utxo-keys**, which includes two files: \"test.skey\" and \"test.vkey\" in text envelope PaymentKey format (no support for PaymentExtendedKey at the moment).\n   - **ipc**, which contains the active node socket \"node.socket\"\n2. Ensure your Cardano node is fully synced on a public network (e.g. preview testnet).\n3. Have at least one ADA-only UTxO in the test account. Each test will spend a few ADA, so ensure sufficient funds are available.\n4. Edit [Testnet.hs](e2e-tests/test/Helpers/Testnet.hs) so that `LocalNodeOption`'s `localEnvDir` points to the directory containing your keys (\"utxo-keys\") and node socket (\"ipc\").\n5. Edit [Spec.hs](e2e-tests/test/Spec.hs) to include `localNodeTests` in the `TestTree`. You can configure to run with or without the existing private testnet tests (e.g. `pv8Tests`).\n\n#### How to run on cardano-node-emulator\n\nCurrently, the emulator is not implemented inline with the latest ledger. As a result, it is integrated and configured to run as part of the test suite on branch [emulator](https://github.com/IntersectMBO/antaeus/tree/emulator).\nNo additional configuration is required.\n\n---\n\n### Status\n\nAntaeus has a growing suite of tests covering:\n\n- Plutus built-in functions:\n  - `verifySchnorrSecp256k1Signature` and `verifyEcdsaSecp256k1Signature` across different protocol versions and expected outcomes (success or specific errors).\n  - All 17 BLS builtin functions (e.g. `bls12_381_finalVerify`)\n  - All builtin hashing functions (e.g. `sha2_256`)\n- Spending locked funds using reference scripts, reference inputs, and providing datum as witness in the transaction body.\n- Minting tokens using reference scripts and providing script witness in the transaction body.\n- Examining fields in Plutus V1, V2 and V3 `TxInfo`.\n- Governance functionality.\n\n---\n\n### Test Report\n\nAfter every test run a JUnit XML report is produced in `e2e-tests/test-report-xml/test-results.xml`. An existing report will be overwritten.\nReports for each major cardano-node tag are stored. E.g `e2e-tests/test-report-xml_8-7-2`.\nRun `allure serve \u003ctest-report-xml\u003e` to generate and host the Allure report.\n\nReports for each cardano-node tag are hosted alongside other end-to-end tests, for example here: https://tests.cardano.intersectmbo.org/test_results/node/tag_8_8_0.html\n\n### Planned Features\n\nWe're working on adding the following features to Antaeus:\n\n- More Voltaire governance actions (coming in Conway era using PlutusV3 language version).\n- CI execution with private testnet on commit (nix configuration coming soon).\n- Nightly CI test execution would be useful in public environments.\n\n---\n\n### Licensing\n\nYou are free to copy, modify, and distribute Antaeus under the terms of the Apache 2.0 license. See the [LICENSE](./LICENSE) and [NOTICE](./NOTICE) files for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintersectmbo%2Fantaeus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintersectmbo%2Fantaeus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintersectmbo%2Fantaeus/lists"}