{"id":13429885,"url":"https://github.com/MeadowSuite/Meadow","last_synced_at":"2025-03-16T04:31:19.157Z","repository":{"id":38005944,"uuid":"149197849","full_name":"MeadowSuite/Meadow","owner":"MeadowSuite","description":"Integrated Ethereum implementation and tool suite focused on Solidity testing and development.","archived":false,"fork":false,"pushed_at":"2022-12-08T01:54:11.000Z","size":1818,"stargazers_count":143,"open_issues_count":18,"forks_count":23,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-13T16:13:13.526Z","etag":null,"topics":["blockchain","csharp","debugging","ethereum","netcore","smart-contracts","solidity","solidity-contracts","solidity-coverage","testing","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MeadowSuite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-17T22:49:50.000Z","updated_at":"2024-12-22T01:10:27.000Z","dependencies_parsed_at":"2023-01-25T02:15:40.130Z","dependency_job_id":null,"html_url":"https://github.com/MeadowSuite/Meadow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeadowSuite%2FMeadow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeadowSuite%2FMeadow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeadowSuite%2FMeadow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeadowSuite%2FMeadow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeadowSuite","download_url":"https://codeload.github.com/MeadowSuite/Meadow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243826788,"owners_count":20354220,"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":["blockchain","csharp","debugging","ethereum","netcore","smart-contracts","solidity","solidity-contracts","solidity-coverage","testing","unit-testing"],"created_at":"2024-07-31T02:00:47.206Z","updated_at":"2025-03-16T04:31:17.720Z","avatar_url":"https://github.com/MeadowSuite.png","language":"C#","funding_links":[],"categories":["Frameworks, Libraries and Tools","框架, 库和工具","C#"],"sub_categories":["Blockchain","区块链"],"readme":"# Meadow\n\nAn Ethereum implementation and tool suite designed for Solidity testing and development. The unit testing framework provides fast parallelized test execution, built-in code coverage reporting, strongly typed Contract interfaces with powerful code-completion, Solidity stacktraces for reverts and exceptions, breakpoint debugging and more. \n\nWritten completely in cross-platform C# with .NET Core. Meadow can be used in [VS Code](https://code.visualstudio.com/), [Visual Studio](https://visualstudio.microsoft.com/vs/), and [JetBrains Rider](https://www.jetbrains.com/rider/).\n\n[![Coverage; Report Generator; TeamCity](http://192.241.156.100:8111/repository/download/Meadow_MeadowSuiteTest/lastSuccessful/coverage.zip%21/badge_combined.svg?guest=1)](http://192.241.156.100:8111/viewLog.html?buildId=lastSuccessful\u0026buildTypeId=Meadow_MeadowSuiteTest\u0026tab=report_project2_Code_Coverage\u0026guest=1)\n[![Coveralls](https://img.shields.io/coveralls/github/MeadowSuite/Meadow/master.svg?label=Coveralls.io)](https://coveralls.io/github/MeadowSuite/Meadow?branch=master) \n[![codecov](https://img.shields.io/codecov/c/github/MeadowSuite/Meadow/master.svg?label=Codecov.io)](https://codecov.io/gh/MeadowSuite/Meadow) \n[![AppVeyor Tests](https://img.shields.io/appveyor/tests/Meadow/Meadow/master.svg?label=AppVeyor%20Tests)](https://ci.appveyor.com/project/Meadow/meadow/branch/master) \n[![Gitter](https://img.shields.io/gitter/room/MeadowSuite/Meadow.svg?label=Chat)](https://gitter.im/MeadowSuite/Lobby)\n\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\"\u003eBuilds\u003c/td\u003e\n    \u003ctd\u003eWindows Status\u003c/td\u003e\n    \u003ctd\u003eMacOS Status\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://ci.appveyor.com/project/Meadow/meadow/branch/master\"\u003e\u003cimg src=\"https://ci.appveyor.com/api/projects/status/nauu7pmvu9q2b2xd/branch/master?svg=true\"\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://travis-ci.com/MeadowSuite/Meadow\"\u003e\u003cimg src=\"https://travis-ci.com/MeadowSuite/Meadow.svg?branch=master\"\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Quick start\n\nInstall [.NET Core SDK v2.1.4 or higher](https://www.microsoft.com/net/download), then run these commands in a new directory for your project:\n\n```bash\ndotnet new -i Meadow.ProjectTemplate\ndotnet new meadow\n```\n\nOpen your project directory in VSCode or your favorite C# IDE.\n\n## Guides\n\n* [Writing unit tests](https://github.com/MeadowSuite/Meadow/wiki/Getting-Started-with-Unit-Tests) - getting started writing tests against Solidity contracts and generating code coverage reports.\n\n* [Using the CLI](https://github.com/MeadowSuite/Meadow/wiki/Using-the-CLI) - contract deployment and interaction against testnode or production.\n\n* [VSCode Solidity Debugger](https://github.com/MeadowSuite/Meadow/wiki/Using-the-VSCode-Solidity-Debugger)\n\n* [Solidity Coverage Report](https://github.com/MeadowSuite/Meadow/wiki/Coverage-Report)\n\n* [Configuration](https://github.com/MeadowSuite/Meadow/wiki/Configuration) - Specifying gas defaults, solc version, solc optimizer, accounts, RPC host, unit test parallelism, etc..\n\n* [Usage examples; miscellaneous](https://github.com/MeadowSuite/Meadow/wiki/Usage-Examples) - ABI \u0026 RLP encoding, ECSign / ECRecover, testing reverts, etc..\n---\n\n## Powerful Solidity contract development, deployment, and interaction\n\n\u003cimg src=\"/images/screenshot1.png?raw=true\" width=\"700\" /\u003e\n\nProvides an intuitive framework for writing C# to perform contract deployments, transactions, function calls, RPC requests, and more. Solidity source files are automatically compiled and exposed as C# classes with all contract methods, events, and natspec documentation. Includes a personal Ethereum test node that automatically is setup during test executions.\n\n#### Visibility into Solidity revert / exception call stacks\n\n\u003cimg src=\"/images/screenshot2.png?raw=true\" width=\"700\" /\u003e\n\nBetter understanding and investigation of Solidity execution problems. \n\n---\n\n# Solidity Coverage Reports\n\n\u003cimg src=\"/images/screenshot4.png?raw=true\" width=\"600\" /\u003e\n\nPerform thorough testing of Solidity codebases. Generate HTML and JSON code coverage reports showing .sol source code coverage for line, branch, and function execution. \n\n---\n\n# Solidity Debugger\n\n[![vs marketplace](https://img.shields.io/vscode-marketplace/v/hosho.solidity-debugger.svg)](https://marketplace.visualstudio.com/items?itemName=hosho.solidity-debugger)\n\n\u003cimg src=\"/images/screenshot3.png?raw=true\" width=\"800\" /\u003e\n\nSolidity debugger extension for Visual Studio Code supporting breakpoints, stepping, rewinding, call stacks, local \u0026 state variable inspection.\n\n---\n\n# Components\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLibrary\u003c/th\u003e\n      \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.EVM\"\u003eMeadow.EVM\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.EVM\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.EVM.svg?colorB=blue\"/\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eAn Ethereum Virtual Machine that includes: \u003cul\u003e\u003cli\u003eInstructions/opcodes, calling conventions/messages/return values, memory/stack, logs/events, gas, charges/limits, precompiles, contract creation logic. \u003cli\u003eCore Ethereum components: account storage, transaction receipts, transaction pool, blocks, world state, snapshoting/reverting, chain, mining/consensus mechanism/scoring/difficulty/uncles. \u003cli\u003eUnderlying dependencies: configuration/genesis block/fork/versioning/chain ID support, modified Merkle Patricia Trees, bloom filters, elliptic curve signing + public key recovery, Ethash, in-memory storage database.\u003c/ul\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.TestNode\"\u003eMeadow.TestNode\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.TestNode\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.TestNode.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eEthereum \"personal blockchain\" / \"test node\" / \"RPC Server\" / \"Ethereum client\". Ran as either a standalone server or via programmatic setup / teardown during unit test execution. Supports several non-standard RPC methods for debugging, testing, and coverage report generation.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.TestNode.Host\"\u003eMeadow.TestNode.Host\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.TestNode.Host\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.TestNode.Host.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eStandalone test RPC node/server used as a command line tool.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.SolCodeGen\"\u003eMeadow.SolCodeGen\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.SolCodeGen\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.SolCodeGen.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eTool that compiles Solidity source files and generates a C# class for each contract. All public methods and events in the contract ABI are translated to corresponding idiomatic C# methods and event log classes. Solidity NatSpec comments / docs are also translated to IntelliSense / code-completion tooltips. This nuget package can be simply added to a project and Solidity files in the project \u003ccode\u003econtracts\u003c/code\u003e directory are automatically compiled.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.CoverageReport\"\u003eMeadow.CoverageReport\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.CoverageReport\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.CoverageReport.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eGenerates HTML and JSON code coverage reports for Solidity source files. Uses execution trace data from the EVM.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.UnitTestTemplate\"\u003eMeadow.UnitTestTemplate\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.UnitTestTemplate\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.UnitTestTemplate.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eTest harness providing seamless integration between MSTest and Solidity contracts. Provides a simple workflow where Solidity source files are dropped into a unit test project and C# contract code is automatically generated. C# unit tests can easily deploy/call/transact with contracts. RPC test node servers \u0026 clients are automatically boostrapped and provided to unit tests. Code coverage reports are automatically generated after unit tests are ran.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.Cli\"\u003eMeadow.Cli\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.Cli\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.Cli.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eTool that allows contract deployments and interaction through the command line. Solidity source files are live-compiled using a file system watcher. Can be ran against a automatically bootstrapped test RPC node or an externally configured node. Leverages PowerShell Core to a provide cross platform REPL-like environment with powerful tab-completion when interacting with contracts.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.Core\"\u003eMeadow.Core\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.Core\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.Core.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\u003cul\u003e\u003cli\u003eRLP and ABI encoding \u0026 decoding utils. \u003cli\u003eImplementations of Ethereum / solidity types such as Address, UInt256, Hash, etc. \u003cli\u003eBIP32, BIP39, BIP44, HD account derivation implementation. \u003cli\u003eFast managed Keccak hashing. \u003cli\u003e ECDSA / secp256k1 utils.\u003c/ul\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.JsonRpc\"\u003eMeadow.JsonRpc\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.JsonRpc\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.JsonRpc.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\u003cul\u003e\u003cli\u003e.NET types for the Ethereum JSON-RPC request \u0026 response data structures. \u003cli\u003e.NET interface for all RPC methods. \u003cli\u003eSerialization for JSON/hex object formats \u003c-\u003e Solidity/.NET types.\u003c/ul\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.JsonRpc.Client\"\u003eMeadow.JsonRpc.Client\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.JsonRpc.Client\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.JsonRpc.Client.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eJSON-RPC client implementation, supported transports: http, WebSocket, and IPC.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"/src/Meadow.JsonRpc.Server\"\u003eMeadow.JsonRpc.Server\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Meadow.JsonRpc.Server\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/Meadow.JsonRpc.Server.svg?colorB=blue\"\u003e\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eFast and lightweight HTTP and WebSockets JSON-RPC server - using Kestrel and managed sockets.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMeadowSuite%2FMeadow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMeadowSuite%2FMeadow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMeadowSuite%2FMeadow/lists"}