{"id":13566187,"url":"https://github.com/aurora-is-near/aurora-engine","last_synced_at":"2025-04-10T03:44:29.436Z","repository":{"id":37636857,"uuid":"344778618","full_name":"aurora-is-near/aurora-engine","owner":"aurora-is-near","description":"⚙️ Aurora Engine implements an Ethereum Virtual Machine (EVM) on the NEAR Protocol.","archived":false,"fork":false,"pushed_at":"2025-04-01T11:55:28.000Z","size":14285,"stargazers_count":342,"open_issues_count":79,"forks_count":86,"subscribers_count":31,"default_branch":"develop","last_synced_at":"2025-04-03T02:06:00.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://doc.aurora.dev/develop/compat/evm","language":"Rust","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/aurora-is-near.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-05T10:43:39.000Z","updated_at":"2025-03-28T10:01:27.000Z","dependencies_parsed_at":"2023-02-17T07:01:08.887Z","dependency_job_id":"4e817181-c980-448c-a6d5-496475fb39eb","html_url":"https://github.com/aurora-is-near/aurora-engine","commit_stats":null,"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurora-is-near%2Faurora-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurora-is-near%2Faurora-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurora-is-near%2Faurora-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurora-is-near%2Faurora-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aurora-is-near","download_url":"https://codeload.github.com/aurora-is-near/aurora-engine/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154968,"owners_count":21056541,"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-08-01T13:02:04.077Z","updated_at":"2025-04-10T03:44:29.417Z","avatar_url":"https://github.com/aurora-is-near.png","language":"Rust","funding_links":[],"categories":["Rust","Others"],"sub_categories":[],"readme":"# Aurora Engine\n\n[![Project license](https://img.shields.io/badge/License-Public%20Domain-blue.svg)](https://creativecommons.org/publicdomain/zero/1.0/)\n[![Discord](https://img.shields.io/discord/490367152054992913?label=Discord)](https://discord.gg/jNjHYUF8vw)\n[![Lints](https://github.com/aurora-is-near/aurora-engine/actions/workflows/lints.yml/badge.svg)](https://github.com/aurora-is-near/aurora-engine/actions/workflows/lints.yml)\n[![Tests](https://github.com/aurora-is-near/aurora-engine/actions/workflows/tests.yml/badge.svg)](https://github.com/aurora-is-near/aurora-engine/actions/workflows/tests.yml)\n[![Builds](https://github.com/aurora-is-near/aurora-engine/actions/workflows/builds.yml/badge.svg)](https://github.com/aurora-is-near/aurora-engine/actions/workflows/builds.yml)\n\nAurora Engine implements an Ethereum Virtual Machine (EVM) on the NEAR Protocol.\nSee [doc.aurora.dev](https://doc.aurora.dev/dev-reference/aurora-engine) for additional\ndocumentation.\n\n## Deployments\n\n| Network | Contract ID         | Chain ID   |\n|---------|---------------------|------------|\n| Mainnet | [`aurora`][Mainnet] | 1313161554 |\n| Testnet | [`aurora`][Testnet] | 1313161555 |\n| Local   | `aurora.test.near`  | 1313161556 |\n\n[Mainnet]: https://nearblocks.io/address/aurora\n[Testnet]: https://testnet.nearblocks.io/address/aurora\n\n## Development\n\n### Prerequisites\n\n- Node.js (v18+)\n- cargo-make\n\n```sh\ncargo install --force cargo-make\n```\n\n### Prerequisites for Development\n\n- Node.js (v18+)\n- Docker\n- cargo-make\n\n## Development\n\n### Branches\n\n- [`master`] is the current stable branch.\n  It must be ready, at all times, to be deployed on chain at a moment's notice.\n\n- [`develop`] is our bleeding-edge development branch.\n  In general, kindly target all pull requests to this branch.\n\n### Building \u0026 Make Commands\n\nEvery task with `cargo make` must have a `--profile` argument.\n\nThe current available `profile`s are:\n- `mainnet`: suitable for mainnet.\n- `mainnet-silo`: silo contract suitable for mainnet.\n- `testnet`: suitable for testnet.\n- `testnet-silo`: silo contract suitable for testnet.\n- `local`: suitable for local development.\n- `custom`: suitable for custom environments, see note below.\n\nIn some circumstances, you may require a custom environment. This can\nbe created in the `.env` folder as `custom.env` following the structure of the\nother `.env` files. See `bin/local-custom.env` for more details.\n\nEvery `make` invocation must follow the following pattern, though `--profile` is\nnot required in all cases (such as cleanup):\n\n```sh\ncargo make [--profile \u003cprofile\u003e] \u003ctask\u003e\n```\n\n#### Building the engine and contracts\n\nThere are several commands that can be used to build the binaries. The currently supported parameters\nfor the `task` field are listed below:\n\n- `default`: does not need to be specified, runs `build`. Requires a `--profile`\n  argument.\n- `build`: builds all engine smart contract and produces the\n  `aurora-\u003cprofile\u003e-test.wasm` in the `bin` folder. Requires `build-contracts`. \n  Requires a `--profile` argument.\n- `build-test`: builds all the below using test features. Requires a `--profile`\n  argument.\n- `build-contracts`: builds all the ETH contracts.\n- `build-docker`: builds the `aurora-\u003cprofile\u003e-test.wasm` in the `bin` folder using docker build environment.\n  The purpose of this task is to produce reproducible binaries.\n\nFor example, the following will build the mainnet debug binary:\n```sh\ncargo make --profile mainnet build\n```\n\n#### Verifying binary hash\n\nTo verify that a deployed binary matches the source code, you may want to build it reproducibly and then verify that\nthe SHA256 hash matches that of the deployed binary. The motivation behind this is to prevent malicious code from being\ndeployed.\n\nRun these commands to produce the binary hash:\n```sh\ncargo make --profile \u003cprofile\u003e build-docker\nshasum -a 256 bin/aurora-\u003cprofile\u003e.wasm\n```\n\n#### Running unit \u0026 integration tests\n\nTo run tests, there are a few cargo make tasks we can run:\n- `test-workspace`: tests only the cargo workspace.\n- `test-contracts`: tests only the contracts.\n- `test`: tests the whole cargo workspace, ETH contracts and runs modexp benchmarks. Requires a `--profile` argument.\n- `test-flow`: tests the whole cargo workspace and ETH contracts. Requires a `--profile` argument.\n- `bench-modexp`: runs modexp benchmarks. Requires a `--profile` argument.\n\nFor example, the following will test the whole workspace and ETH contracts:\n```sh\ncargo make --profile mainnet test \n```\n\n#### Running checks \u0026 lints\n\nThe following tasks are available to run lints and checks:\n\n- `check`: checks the format, clippy and ETH contracts.\n- `check-contracts` runs yarn lints on the ETH contracts.\n- `check-fmt`: checks the workspace Rust format only.\n- `clippy`: checks the Rust workspace with clippy only.\n\nFor example, the following command will run the checks. `profile` is not required\nhere:\n```sh\ncargo make check\n```\n\n#### Cleanup\n\nThe following tasks are available to clean up the workspace:\n\n- `clean`: cleans all built binaries and ETH contracts.\n- `clean-cargo`: cleans with cargo.\n- `clean-contracts`: cleans the ETH contracts.\n- `clean-bin`: cleans the binaries.\n\nAdditionally, there is also but not included in the `clean` task:\n\n- `sweep`: sweeps the set amount of days in the ENV, default to 30 days.\n\nFor example, the following command will clean everything. `profile` is not \nrequired:\n```sh\ncargo make clean\n```\n\n[`master`]:  https://github.com/aurora-is-near/aurora-engine/commits/master\n[`develop`]: https://github.com/aurora-is-near/aurora-engine/commits/develop\n\n## License\n**aurora-engine** has multiple licenses:\n* All crates except `engine-test` have **CCO-1.0** license\n* `engine-test` has **GPL-v3** license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurora-is-near%2Faurora-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faurora-is-near%2Faurora-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurora-is-near%2Faurora-engine/lists"}