{"id":15837424,"url":"https://github.com/sambacha/solidity-vyper-atlas","last_synced_at":"2026-04-29T18:31:47.490Z","repository":{"id":103232852,"uuid":"349558123","full_name":"sambacha/solidity-vyper-atlas","owner":"sambacha","description":"Mapping Solidity \u003c\u003e Vyper","archived":false,"fork":false,"pushed_at":"2021-03-19T21:41:26.000Z","size":237,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T01:57:33.332Z","etag":null,"topics":["ethereum","mappings","smart-contracts","solidity","transpile","vyper"],"latest_commit_sha":null,"homepage":"https://sambacha.github.io/solidity-vyper-atlas/","language":null,"has_issues":true,"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/sambacha.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-19T21:21:01.000Z","updated_at":"2021-03-19T21:42:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"795e97f0-6201-4887-b50e-42aee3e1820e","html_url":"https://github.com/sambacha/solidity-vyper-atlas","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"15fcd9b07d44ccb177363813fdef067c046363b6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sambacha/solidity-vyper-atlas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fsolidity-vyper-atlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fsolidity-vyper-atlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fsolidity-vyper-atlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fsolidity-vyper-atlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sambacha","download_url":"https://codeload.github.com/sambacha/solidity-vyper-atlas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fsolidity-vyper-atlas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32439145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ethereum","mappings","smart-contracts","solidity","transpile","vyper"],"created_at":"2024-10-05T15:22:26.489Z","updated_at":"2026-04-29T18:31:47.472Z","avatar_url":"https://github.com/sambacha.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"| **Feature**                                          | **Solidity**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | **Vyper**                                                                                                                                                                                                                                                                                                                |\n| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Version                                              | $ solc \\-\\-versionVersion: 0\\.6\\.12                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | $ vyper \\-\\-version0\\.2\\.3                                                                                                                                                                                                                                                                                               |\n| General notes on syntax                              | Solidity loosely borrows its syntax from Javascript and C                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Vyper syntax is valid Python 3 syntax \\(but the opposite is not true\\)                                                                                                                                                                                                                                                   |\n| Block delimiters                                     | \\{ \\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | : \\# Vyper uses Python's off\\-side rule                                                                                                                                                                                                                                                                                  |\n| Statement separator                                  | ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \\\\n' and :                                                                                                                                                                                                                                                                                                               |\n| End of line comment                                  | // comment                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | \\# comment                                                                                                                                                                                                                                                                                                               |\n| Multiple line comment                                | /\\* multiple linecomment \\*/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | \\# Multiple line\\# comment                                                                                                                                                                                                                                                                                               |\n| Constant                                             | uint constant TOTAL_SUPPLY = 10000000;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | TOTAL_SUPPLY: constant\\(uint256\\) = 10000000                                                                                                                                                                                                                                                                             |\n| Assignment                                           | v = 1;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | v = 1                                                                                                                                                                                                                                                                                                                    |\n| Parallel assignment                                  | \\(x, y\\) = \\(0, 1\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Tuple to tuple assignment not supported                                                                                                                                                                                                                                                                                  |\n| Swap                                                 | \\(x, y\\) = \\(y, x\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                                                                                          |\n| Compound assignment                                  | \\-=, \\*=, /=, %=, \\|=, \u0026=, ^=                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | \\-=, \\*=, /=, %=, \\|=, \u0026=, ^=                                                                                                                                                                                                                                                                                            |\n| Increment and decrement                              | i\\+\\+, \\+\\+i, i\\-\\-, \\-\\-i                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | i \\+= 1, i \\-= 1                                                                                                                                                                                                                                                                                                         |\n| Null                                                 | null doesn't exist in Solidity but any unitialized variables take a default value represented by 0 in memory                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | null doesn't exist in Vyper but any unitialized variables take a default value represented by 0 in memory                                                                                                                                                                                                                |\n| Set variable to default value                        | delete v // doesn't work with mappings                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | v = empty\\(uint256\\)                                                                                                                                                                                                                                                                                                     |\n| Null test                                            | v == 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | v == 0                                                                                                                                                                                                                                                                                                                   |\n| Conditional expression                               | x \u003e 0 ? x : \\-x                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Conditional expression not supported                                                                                                                                                                                                                                                                                     |\n| Contract lifecycle                                   |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| Contract creation                                    | Contract c = new Contract\\(args\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                                                                                                          |\n| Contract creation with funding                       | Contract c = new Contract\\{value: amount\\}\\(args\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                          |\n| Salted contract creation \\(CREATE2\\)                 | Contract c = new Contract\\{salt: salt\\}\\(args\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                          |\n| Create forwarder contract                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | contract: address = create_forwarder_to\\(other_contract, value\\)                                                                                                                                                                                                                                                         |\n| Selfdestruct \\(Avoid\\)                               | selfdestruct\\(refundAddr\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | selfdestruct\\(refund_addr\\)                                                                                                                                                                                                                                                                                              |\n| Interfaces                                           |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| Interfaces                                           | interface HelloWorld \\{ function hello\\(\\) external pure; function world\\(int\\) external pure;\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | interface HelloWorld: def hello\\(\\): nonpayable def world\\(uint256\\): nonpayable                                                                                                                                                                                                                                         |\n| Interface type                                       | interface HelloWorldWithEvent \\{ event Event\\(\\); function hello\\(\\) external pure; function world\\(int\\) external pure;\\}contract Test \\{ bytes4 public hello_world_with_event = type\\(HelloWorldWithEvent\\)\\.interfaceId;\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                                          |\n| Operators                                            |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| True and false                                       | true false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | True False                                                                                                                                                                                                                                                                                                               |\n| Falsehoods                                           | FALSE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | FALSE                                                                                                                                                                                                                                                                                                                    |\n| Logical operators                                    | \u0026\u0026 \\|\\| \\!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | and or not                                                                                                                                                                                                                                                                                                               |\n| Relational operators                                 | \\#ERROR\\!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | \\#ERROR\\!                                                                                                                                                                                                                                                                                                                |\n| Min and max                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | max\\(x, y\\)                                                                                                                                                                                                                                                                                                              |\n| Arithmetic operators                                 | \\#ERROR\\!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | \\#ERROR\\!                                                                                                                                                                                                                                                                                                                |\n| Integer division                                     | /                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | /                                                                                                                                                                                                                                                                                                                        |\n| Bit operators                                        | \u003c\u003c \u003e\u003e \u0026 \\| ^ ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | \u003c\u003c \u003e\u003e \u0026 \\| ^ ~                                                                                                                                                                                                                                                                                                           |\n| Binary \u0026 hex literals                                | uint x = 0x52string memory s = hex\"52\"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | a: address= 0x14d465376c051Cbcd80Aa2d35Fd5df9910f80543b: Bytes\\[32\\]= b'\\\\x01\\\\x02\\\\x03\\\\x04\\\\x05\\\\x06\\.\\.\\. \\(32 bytes\\)d: Bytes\\[1\\] = 0b00010001                                                                                                                                                                      |\n| Data structures                                      |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| String type                                          | string                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | String\\[N\\] \\# N is a fixed number                                                                                                                                                                                                                                                                                       |\n| Bytes type                                           | bytes // dynamicbytes1, bytes2, \\.\\.\\., bytes32 // packedbytes\\[N\\] // N is a fixed number, unpacked                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Bytes\\[N\\] \\# N is a fixed number                                                                                                                                                                                                                                                                                        |\n| String literal                                       | \"don't \\\\\"no\\\\\"\"'don\"t \\\\'no\\\\''\u001b                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | \"don't \\\\\"no\\\\\"\"'don\"t \\\\'no\\\\''                                                                                                                                                                                                                                                                                         |\n| String length                                        | bytes\\(s\\)\\.length                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | len\\(s\\)                                                                                                                                                                                                                                                                                                                 |\n| String literal escapes                               | \\\\\u003cnewline\u003e \\(escapes an actual newline\\)\\\\\\\\ \\(backslash\\)\\\\' \\(single quote\\)\\\\\" \\(double quote\\)\\\\b \\(backspace\\)\\\\f \\(form feed\\)\\\\n \\(newline\\)\\\\r \\(carriage return\\)\\\\t \\(tab\\)\\\\v \\(vertical tab\\)\\\\xNN \\(hex escape\\)\\\\uNNNN \\(unicode escape\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | \\\\\u003cnewline\u003e \\(escapes an actual newline\\)\\\\\\\\ \\(backslash\\)\\\\' \\(single quote\\)\\\\\" \\(double quote\\)\\\\a \\(bell\\)\\\\b \\(backspace\\)\\\\f \\(form feed\\)\\\\n \\(newline\\)\\\\r \\(carriage return\\)\\\\t \\(tab\\)\\\\v \\(vertical tab\\)\\\\ooo \\(octal escape\\)\\\\xNN \\(hex escape\\)\\\\uNNNN \\(unicode escape\\)\\\\uNNNNNNNN \\(unicode escape\\) |\n| Are strings mutable?                                 | Yes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Yes                                                                                                                                                                                                                                                                                                                      |\n| Slice                                                | abi\\.decode\\(\\_payload\\[:4\\], \\(bytes4\\)\\)// array slices only implemented for calldata arrays                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | slice\\(x, \\_start, \\_len\\)                                                                                                                                                                                                                                                                                               |\n| String comparison                                    | keccak256\\(abi\\.encodePacked\\(s1\\)\\) == keccak256\\(abi\\.encodePacked\\(s2\\)\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | keccak256\\(s1\\) == keccak256\\(s2\\)                                                                                                                                                                                                                                                                                       |\n| String concatenation                                 | abi\\.encodePacked\\(s1, s2\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | concat\\(s1, s2\\)                                                                                                                                                                                                                                                                                                         |\n| Array literal                                        | \\[1, 2, 3\\]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | \\[1, 2, 3\\]                                                                                                                                                                                                                                                                                                              |\n| Length                                               | a\\.length                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | len\\(a\\)                                                                                                                                                                                                                                                                                                                 |\n| Empty test                                           | a\\.length == 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                          |\n| Lookup                                               | a\\[0\\]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | a\\[0\\]                                                                                                                                                                                                                                                                                                                   |\n| Update                                               | a\\[0\\] = 1;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | a\\[0\\] = 1                                                                                                                                                                                                                                                                                                               |\n| Out of bounds access                                 | Failing assertion                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Failing assertion                                                                                                                                                                                                                                                                                                        |\n| Add new element                                      | a\\.push\\(3\\); \\# Dynamic arrays                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                                                                          |\n| Remove element                                       | a\\.pop\\(\\); \\# Dynamic arrays                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                                          |\n| Struct                                               | struct Pair \\{ uint x; uint y;\\} // Creating a structPair memory pair = Pair\\(2, 3\\); // Instantiating a struct variablerequire\\(pair\\.y \u003e pair\\.x\\); // Accessing elements                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | struct Pair: x: uint256 y: uint256 \\# Creating a structpair: Pair = Pair\\(\\{x: 2, y: 3\\}\\) \\# Instantiating a struct variableassert pair\\.y \u003e pair\\.x \\# Accessing elements                                                                                                                                              |\n| Mapping size                                         | Impossible to know                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Impossible to know                                                                                                                                                                                                                                                                                                       |\n| Lookup                                               | m\\[2\\]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | m\\[2\\]                                                                                                                                                                                                                                                                                                                   |\n| Update                                               | m\\[2\\] = 1;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | m\\[2\\] = 1                                                                                                                                                                                                                                                                                                               |\n| Missing key behaviour                                | A mapping has no concept of set keys, a mapping always refers to a hashed value that is the same for a given mapping and key                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | A mapping has no concept of set keys, a mapping always refers to a hashed value that is the same for a given mapping and key                                                                                                                                                                                             |\n| Delete key                                           | m\\[2\\] = 0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | m\\[2\\] = empty\\(uint256\\)                                                                                                                                                                                                                                                                                                |\n| Immutable variables                                  | uint immutable x; // have to be assigned in the constructor                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                                                                                                                                          |\n| Functions                                            |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| Define function                                      | function add2\\(uint x, uint y\\) public pure returns \\(uint\\) \\{ return x \\+ y;\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | @externaldef add2\\(x: uint256, y: uint256\\) \\-\u003e uint256: return x \\+ y                                                                                                                                                                                                                                                   |\n| Function argument storage location                   | function first\\(uint\\[\\] calldata x\\) public pure returns \\(uint\\) \\{ // this function doesn't copy x to memory return x\\[0\\];\\}function first\\(uint\\[\\] memory x\\) public pure returns \\(uint\\) \\{ // this function first copies x to memory return x\\[0\\];\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                          |\n| Invoke function                                      | add2\\(x, y\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | add2\\(x, y\\)                                                                                                                                                                                                                                                                                                             |\n| External function calls                              | c\\.f\\{gas: 1000, value: 4 ether\\}\\(\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | c\\.f\\(\\)raw_call\\(address, data, outsize, gas, value, is_delegate_call\\)                                                                                                                                                                                                                                                 |\n| Control flow                                         |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| If statement                                         | if \\(a \u003e 2\\) \\{ \\.\\.\\.else if \\(a == 0\\) \\{ \\.\\.\\.\\} else \\{ \\.\\.\\.\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | if a \u003e 2: \\.\\.\\.elif a == 0: \\.\\.\\.else: \\.\\.\\.                                                                                                                                                                                                                                                                          |\n| For loop                                             | for \\(uint i = 0; i \u003c 3; i\\+\\+\\) \\{ \\.\\.\\.\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | for i in range\\(3\\): \\.\\.\\.                                                                                                                                                                                                                                                                                              |\n| While loop                                           | while \\(a \u003e 0\\) \\{ \\.\\.\\.\\}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                                                                                                                                          |\n| Do\\-While loop                                       | do \\{ \\.\\.\\.\\} while \\(a \u003e 0\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                                                                          |\n| Return value                                         | return x \\+ y;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | return x \\+ y                                                                                                                                                                                                                                                                                                            |\n| Break                                                | break;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | break                                                                                                                                                                                                                                                                                                                    |\n| Continue                                             | continue;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | continue                                                                                                                                                                                                                                                                                                                 |\n| Assert                                               | assert\\(x \u003e y\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | assert x \u003e y                                                                                                                                                                                                                                                                                                             |\n| Require                                              | require\\(x \u003e y\\);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                          |\n| Revert                                               | require\\(false, \"revert reason\"\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | raise \"revert reason\"                                                                                                                                                                                                                                                                                                    |\n| Exception handling                                   | interface DataFeed \\{ function getData\\(address token\\) external returns \\(uint value\\); \\}contract FeedConsumer \\{ DataFeed feed; uint errorCount; function rate\\(address token\\) public returns \\(uint value, bool success\\) \\{ // Permanently disable the mechanism if there are // more than 10 errors\\. require\\(errorCount \u003c 10\\); try feed\\.getData\\(token\\) returns \\(uint v\\) \\{ return \\(v, true\\); \\} catch Error\\(string memory /\\*reason\\*/\\) \\{ // This is executed in case // revert was called inside getData // and a reason string was provided\\. errorCount\\+\\+; return \\(0, false\\); \\} catch \\(bytes memory /\\*lowLevelData\\*/\\) \\{ // This is executed in case revert\\(\\) was used // or there was a failing assertion, division // by zero, etc\\. inside getData\\. errorCount\\+\\+; return \\(0, false\\); \\} \\}\\} |                                                                                                                                                                                                                                                                                                                          |\n| Misc                                                 |\n| Feature                                              | Solidity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Vyper                                                                                                                                                                                                                                                                                                                    |\n| Comments                                             | NatSpec conventions for functions:/// @author Mary A\\. Botanist/// @notice Calculate tree age in years, rounded up, for live trees/// @dev The Alexandr N\\. Tetearing algorithm could increase precision/// @param rings The number of rings from dendrochronological sample/// @return age in years, rounded up for partial yearsEvents:/// The address \\`participant` just registered for the gathering\\.event Registered\\(address participant\\);Special inheritance syntax for contracts:/// @inheritdoc OtherContract                                                                                                                                                                                                                                                                                                              | def foo\\(\\): \"\"\" @author Mary A\\. Botanist @notice Calculate tree age in years, rounded up, for live trees @dev The Alexandr N\\. Tetearing algorithm could increase precision @param rings The number of rings from dendrochronological sample @return age in years, rounded up for partial years \"\"\" \\.\\.\\.             |\n| Payment with error on failure \\(Avoid for Solidity\\) | address\\.transfer\\(\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | send\\(address, value\\)                                                                                                                                                                                                                                                                                                   |\n| Payment with false on failure \\(Avoid for Solidity\\) | address\\.send\\(\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                          |\n| Payment with gas forwarding \\(WARNING\\)              | address\\.call\\.value\\(\\)\\.gas\\(\\)\\(\\)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | raw_call\\(address, data, outsize, gas, value, is_delegate_call\\)                                                                                                                                                                                                                                                         |\n| Event logging                                        | event Deposit\\( address indexed \\_from, bytes32 indexed \\_id, uint \\_value\\);emit Deposit\\(msg\\.sender, \\_id, msg\\.value\\);                                                                                                                                                                                                                        ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsambacha%2Fsolidity-vyper-atlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsambacha%2Fsolidity-vyper-atlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsambacha%2Fsolidity-vyper-atlas/lists"}