Solidity-Compiler Version Manager

Overview

Solidity Compiler Version Manager

Install

$ cargo install svm-rs

Usage

  • List available versions
$ svm list
  • Install a version
$ svm install 
   

   
  • Use an installed version
$ svm use 
   

   
  • Remove an installed version
$ svm remove 
   

   
Comments
  • feature request: embed the old solc version list into the binary

    feature request: embed the old solc version list into the binary

    Issue: accessing the old solc version requires accessing githubusercontent, which is blocked here in China. And it's unfortunately an operation that's done for every dapptools-rs. (dapp build, dapp test)

    Fix: since old solc one is quite static and it won't be modified anymore, I propose we embed it and thus requires no network connection at all.

    opened by guanqun 7
  • automatically patch binaries for nixos

    automatically patch binaries for nixos

    Implements https://github.com/roynalnaruto/svm-rs/issues/36.

    This works by using patchelf to modify the dynamic linker in the installed solc binaries to use the nixos provided one (instead of the standard /lib64/ld-linux-x86-64.so.2 which is not present on nixos).

    Currently I've only tested locally with a few versions, and afaict it's working OK. I'm not sure what the automated testing strategy here is, but I would be more than happy to add some nixos specific tests / CI steps if you want.

    Some more work will be needed to point the binaries to a nix provided version of z3/cvc (needed for the SMTChecker to work), but I'm going to leave that for another PR.

    opened by d-xo 5
  • chore: switch `zip` to `binstall-zip`

    chore: switch `zip` to `binstall-zip`

    The previous version of the zip package has an outdated transitive Rust Crypto dependency that conflicts with newer Rust Crytpo crates, so it's important to update.

    The master branch of the zip package already contains the new Rust Crytpo dependencies, but it's been waiting for a release for three months now so this commit switches to the updated binstall-zip fork by the cargo-bins team.

    Fore more context, please see: https://github.com/roynalnaruto/svm-rs/pull/62

    opened by agostbiro 3
  • nixos support

    nixos support

    The binaries provided by svm-rs are dynamically linked and therefore must be patched to work correctly on nixos. I currently work around this by using DAPP_SOLC to point forge to the nixos compatible solc versions that we provide as part of dapptools, but a more integrated experience would be great.

    Would you be open to supporting nixos directly in svm-rs? I would be happy to do the work and help maintain the integration.

    opened by d-xo 3
  • Windows support

    Windows support

    I'm installing forge and get this lib as deps, I got this error message:

       Compiling svm-rs v0.2.0
    error[E0433]: failed to resolve: could not find `unix` in `os`
     --> C:\Users\<user>\.cargo\registry\src\github.com-1ecc6299db9ec823\svm-rs-0.2.0\src/lib.rs:9:9
      |
    9 |     os::unix::fs::PermissionsExt,
      |         ^^^^ could not find `unix` in `os`
    
    error[E0599]: no function or associated item named `from_mode` found for struct `Permissions` in the current scope
       --> C:\Users\<user>\.cargo\registry\src\github.com-1ecc6299db9ec823\svm-rs-0.2.0\src/lib.rs:136:40
        |
    136 |         f.set_permissions(Permissions::from_mode(0o777))?;
        |                                        ^^^^^^^^^ function or associated item not found in `Permissions`
    
    Some errors have detailed explanations: E0433, E0599.
    For more information about an error, try `rustc --explain E0433`.
    error: could not compile `svm-rs` due to 2 previous errors
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `foundry-cli v0.1.0 (https://github.com/gakonst/foundry#36356823)`, intermediate artifacts can be found at `C:\Users\<user>\AppData\Local\Temp\cargo-install4uzvr9`
    

    Can we make this work with Windows? Thanks

    opened by rhacker 3
  • chore: update `zip` dependency

    chore: update `zip` dependency

    The previous version of the zip package has an outdated transitive Rust Crypto dependency that conflicts with newer Rust Crytpo crates.

    The master branch of the zip package already contains the new Rust Crytpo dependencies, but it's waiting for a release for three months now so I've specified the latest commit in the master branch as the zip version.

    opened by agostbiro 2
  • support M1 0.8.13

    support M1 0.8.13

    now that 0.8.13 is out, we need to get support for it here https://github.com/roynalnaruto/solc-builds/tree/master/macosx/aarch64 and then update svm for it!

    opened by gakonst 2
  • Add support for emscripten-wasm32 platform

    Add support for emscripten-wasm32 platform

    Right now svm-rs doesn't support Apple Silicon.

    We could add the emscripten-wasm32 platform to fix this as Solidity WASM builds are create as part of the release process (see here).

    One can explore the WASM builds here.

    opened by septaplex 2
  • Consider including Cargo.lock

    Consider including Cargo.lock

    opened by fracek 2
  • fix: remove cfg for defining function

    fix: remove cfg for defining function

    Noticed this issue while publishing svm-builds: https://github.com/roynalnaruto/svm-rs/blob/master/svm-builds/build.rs#L151-L154

    generate_offline is not compiled when _offline feature is not enabled. But the above snippet tries to use it.

    I'm simply removing the #[cfg(feature = "_offline")] feature gate, so that generate_offline can be used in all cases where it's required.

    @mattsse please have a look :)

    opened by roynalnaruto 1
  • feat(builds): add svm-builds crate

    feat(builds): add svm-builds crate

    Motivation

    Embed Release information in a crate so we don't need to query svm::releases all the time

    Solution

    Add a new crate (svm-builds) that fetches all available releases during build and generates constants

    expanded output:

    pub const SOLC_VERSION_0_3_6: semver::Version = semver::Version::new(0, 3, 6);
    pub const SOLC_VERSION_0_3_6_CHECKSUM: &str =
        "02d581b5b373d8160b9e75d690dd2ee898c3e0f6a39bbda54cd0698224c09df4";
    pub const SOLC_VERSION_0_4_0: semver::Version = semver::Version::new(0, 4, 0);
    pub const SOLC_VERSION_0_4_0_CHECKSUM: &str =
        "bba6e2c33935259c478060501a7fb0ee1db4b0c56567356c9d01b6ec0491a558";
    pub const SOLC_VERSION_0_4_1: semver::Version = semver::Version::new(0, 4, 1);
    pub const SOLC_VERSION_0_4_1_CHECKSUM: &str =
        "2de730163c80670b2f4c1ef78dc77ab13f757aad1ead044761821293275c382b";
    pub const SOLC_VERSION_0_4_2: semver::Version = semver::Version::new(0, 4, 2);
    pub const SOLC_VERSION_0_4_2_CHECKSUM: &str =
        "9882bb966b82c0f4847735dba20b517118cf5408ed2a872485750f6ff26cf98b";
    pub const SOLC_VERSION_0_4_3: semver::Version = semver::Version::new(0, 4, 3);
    pub const SOLC_VERSION_0_4_3_CHECKSUM: &str =
        "3ac02a93f4c7c20b9f17b6038af25b41acb8cfe178040be0f2246adc8bb8fe0a";
    pub const SOLC_VERSION_0_4_4: semver::Version = semver::Version::new(0, 4, 4);
    pub const SOLC_VERSION_0_4_4_CHECKSUM: &str =
        "38ceeea801b5952d74bdb79ae5bc6bbb4c187ee5941e2701de388fdf95322f58";
    pub const SOLC_VERSION_0_4_5: semver::Version = semver::Version::new(0, 4, 5);
    pub const SOLC_VERSION_0_4_5_CHECKSUM: &str =
        "003b09c2f255d2a40c2b2a1798192f92e6a3f1b35bda1a35ba66675919be1555";
    pub const SOLC_VERSION_0_4_6: semver::Version = semver::Version::new(0, 4, 6);
    pub const SOLC_VERSION_0_4_6_CHECKSUM: &str =
        "aef1ebf2d2783a31742a612461f13e0ffc656c4a5ce25a0eeb747186ce03b276";
    pub const SOLC_VERSION_0_4_7: semver::Version = semver::Version::new(0, 4, 7);
    pub const SOLC_VERSION_0_4_7_CHECKSUM: &str =
        "fc386d2547b6f764a0c1139487ed1d4a19e334c510a727614ff8ebeb1bd01a93";
    pub const SOLC_VERSION_0_4_8: semver::Version = semver::Version::new(0, 4, 8);
    pub const SOLC_VERSION_0_4_8_CHECKSUM: &str =
        "ebb64b8b8dd465bd53a52fa7063569115df176c7561ac4feb47004513e1df74b";
    pub const SOLC_VERSION_0_4_9: semver::Version = semver::Version::new(0, 4, 9);
    pub const SOLC_VERSION_0_4_9_CHECKSUM: &str =
        "a5b4227ed259c474426d8a2ef380606766aa8ba7f65487ab177139b3a51f0dee";
    pub const SOLC_VERSION_0_4_10: semver::Version = semver::Version::new(0, 4, 10);
    pub const SOLC_VERSION_0_4_10_CHECKSUM: &str =
        "40f179e4d27201ab726669dd26d594cfe10bf4dd6117495ee49d26f0dda9ef42";
    pub const SOLC_VERSION_0_4_11: semver::Version = semver::Version::new(0, 4, 11);
    pub const SOLC_VERSION_0_4_11_CHECKSUM: &str =
        "287eab0187dd4bdec50226f3173526bd8d247adeebdf64bc0b7448711abbea61";
    pub const SOLC_VERSION_0_4_12: semver::Version = semver::Version::new(0, 4, 12);
    pub const SOLC_VERSION_0_4_12_CHECKSUM: &str =
        "65cc92c918d6334f533a7596f62916825fc722b2a7a235729ed87cfbec622bcd";
    pub const SOLC_VERSION_0_4_13: semver::Version = semver::Version::new(0, 4, 13);
    pub const SOLC_VERSION_0_4_13_CHECKSUM: &str =
        "701eebf0e37d172cb829dc1e65c74a46b3b96737f3866758f9894696a639b6b7";
    pub const SOLC_VERSION_0_4_14: semver::Version = semver::Version::new(0, 4, 14);
    pub const SOLC_VERSION_0_4_14_CHECKSUM: &str =
        "a4ef22d9d36e75151bdd64720e69eddf57500883dd623c57805edb5ccb644a89";
    pub const SOLC_VERSION_0_4_15: semver::Version = semver::Version::new(0, 4, 15);
    pub const SOLC_VERSION_0_4_15_CHECKSUM: &str =
        "e449a4980db4ff18e7ffe704b40083cded96cccf33986bf6a6bb6fe925eb86c0";
    pub const SOLC_VERSION_0_4_16: semver::Version = semver::Version::new(0, 4, 16);
    pub const SOLC_VERSION_0_4_16_CHECKSUM: &str =
        "a24512aee16652c4469979715bbdcaa6c4afabb94b717bb40980e4b2d25c4709";
    pub const SOLC_VERSION_0_4_17: semver::Version = semver::Version::new(0, 4, 17);
    pub const SOLC_VERSION_0_4_17_CHECKSUM: &str =
        "458c3e2de2ffe609b79d9cdc4eb3080d6ed7662ef1bdd7c8a03fb18f1ca9a137";
    pub const SOLC_VERSION_0_4_18: semver::Version = semver::Version::new(0, 4, 18);
    pub const SOLC_VERSION_0_4_18_CHECKSUM: &str =
        "dddc86683d12d0f016b5d5799ed84f6f2a79f667ebb932b9a8e6bfe9a48c3190";
    pub const SOLC_VERSION_0_4_19: semver::Version = semver::Version::new(0, 4, 19);
    pub const SOLC_VERSION_0_4_19_CHECKSUM: &str =
        "ace5107a68fa75634e26848d6d208b808a76cc4f9262e53e8a3622bcefd4dcaf";
    pub const SOLC_VERSION_0_4_20: semver::Version = semver::Version::new(0, 4, 20);
    pub const SOLC_VERSION_0_4_20_CHECKSUM: &str =
        "47425e338b9461d3e6498a0b0d5c2b9cc7cf998e4aa69126ea9f64c0a176e605";
    pub const SOLC_VERSION_0_4_21: semver::Version = semver::Version::new(0, 4, 21);
    pub const SOLC_VERSION_0_4_21_CHECKSUM: &str =
        "e035cb9a81b5e3e11a7b99ead6f51a3ef7729794eebee470a964e2c08e30b857";
    pub const SOLC_VERSION_0_4_22: semver::Version = semver::Version::new(0, 4, 22);
    pub const SOLC_VERSION_0_4_22_CHECKSUM: &str =
        "a9341add7a4f01c52dbb36bb4028104676c684b0b6003a2cd9dd84a2a9802b59";
    pub const SOLC_VERSION_0_4_23: semver::Version = semver::Version::new(0, 4, 23);
    pub const SOLC_VERSION_0_4_23_CHECKSUM: &str =
        "502eddb177f9268d79b1e05e6acfb2f229471823bf6711eff411d2a23e8cc0b1";
    pub const SOLC_VERSION_0_4_24: semver::Version = semver::Version::new(0, 4, 24);
    pub const SOLC_VERSION_0_4_24_CHECKSUM: &str =
        "7034c4048bc713d5c14cdd6681953c736e2adbdb9174f8bfbfb6a097109ffaaa";
    pub const SOLC_VERSION_0_4_25: semver::Version = semver::Version::new(0, 4, 25);
    pub const SOLC_VERSION_0_4_25_CHECKSUM: &str =
        "9dd7686975200be71ce731f153823e7ea0d68106f3354ea16fecd5975f5c98b7";
    pub const SOLC_VERSION_0_4_26: semver::Version = semver::Version::new(0, 4, 26);
    pub const SOLC_VERSION_0_4_26_CHECKSUM: &str =
        "bc956645b792dcbb8f820b8010a8d4ec1e188f7b40c6af951a436da4c13ae677";
    pub const SOLC_VERSION_0_5_0: semver::Version = semver::Version::new(0, 5, 0);
    pub const SOLC_VERSION_0_5_0_CHECKSUM: &str =
        "9fa663fc427e8e9613815ad6b83783b4e4cb10439f16ca0dcb12fc002c45ab5a";
    pub const SOLC_VERSION_0_5_1: semver::Version = semver::Version::new(0, 5, 1);
    pub const SOLC_VERSION_0_5_1_CHECKSUM: &str =
        "f2bad43386065684b4e15b86a175410f5d1e4d234b052cba44eb50f4c74b021f";
    pub const SOLC_VERSION_0_5_2: semver::Version = semver::Version::new(0, 5, 2);
    pub const SOLC_VERSION_0_5_2_CHECKSUM: &str =
        "9e7ee54f0bc2978fa8738b9603d636715a069d84771778d6195577bb91ecb9c8";
    pub const SOLC_VERSION_0_5_3: semver::Version = semver::Version::new(0, 5, 3);
    pub const SOLC_VERSION_0_5_3_CHECKSUM: &str =
        "03a6cfa2d74e57ea38eee83ce9a3ea37a6e50928d7f109e74b37cae31319af2b";
    pub const SOLC_VERSION_0_5_4: semver::Version = semver::Version::new(0, 5, 4);
    pub const SOLC_VERSION_0_5_4_CHECKSUM: &str =
        "32a8affa996d05c55257317cc700b9e5b4377d94919b59055564eb0b5f941773";
    pub const SOLC_VERSION_0_5_5: semver::Version = semver::Version::new(0, 5, 5);
    pub const SOLC_VERSION_0_5_5_CHECKSUM: &str =
        "7fc0600cc150020402c9539ec0ad584eb9271b2d0e0bff9e3b4d4ca672be3452";
    pub const SOLC_VERSION_0_5_6: semver::Version = semver::Version::new(0, 5, 6);
    pub const SOLC_VERSION_0_5_6_CHECKSUM: &str =
        "428f9c0873d88740242f6fc16a3ae6f91b35f73ddf7676b5d5b39687d9d9b7dc";
    pub const SOLC_VERSION_0_5_7: semver::Version = semver::Version::new(0, 5, 7);
    pub const SOLC_VERSION_0_5_7_CHECKSUM: &str =
        "a7d6b8e3cb22d90789a79b484b721fe02943f89e9b7e996863edd2d40ba7b524";
    pub const SOLC_VERSION_0_5_8: semver::Version = semver::Version::new(0, 5, 8);
    pub const SOLC_VERSION_0_5_8_CHECKSUM: &str =
        "9f383896c8506cd96ac5ef9c97d7ab1c385fb5f4772a5f3d2cf8715cae793554";
    pub const SOLC_VERSION_0_5_9: semver::Version = semver::Version::new(0, 5, 9);
    pub const SOLC_VERSION_0_5_9_CHECKSUM: &str =
        "92e3688207c0c2b86bd9d10088340e4a585e29e3a88d1cf79c2043f4f9f121c4";
    pub const SOLC_VERSION_0_5_10: semver::Version = semver::Version::new(0, 5, 10);
    pub const SOLC_VERSION_0_5_10_CHECKSUM: &str =
        "5082bb5c492ca35b68b0c3e24d5934b56d3add83f1400ba95654e8f163c741ff";
    pub const SOLC_VERSION_0_5_11: semver::Version = semver::Version::new(0, 5, 11);
    pub const SOLC_VERSION_0_5_11_CHECKSUM: &str =
        "0e8ee89ddb1096b81c34e11bdb5985822e749d3a9dc4e7218ba2474afa6400cb";
    pub const SOLC_VERSION_0_5_12: semver::Version = semver::Version::new(0, 5, 12);
    pub const SOLC_VERSION_0_5_12_CHECKSUM: &str =
        "3dfb97bc941492afaea7f404c3fb9c6fe215b3386aa6e0370791b571e4679548";
    pub const SOLC_VERSION_0_5_13: semver::Version = semver::Version::new(0, 5, 13);
    pub const SOLC_VERSION_0_5_13_CHECKSUM: &str =
        "68a344d9de40b0d7482089ee7748e43088c52e3b108480d801b34c64020beb48";
    pub const SOLC_VERSION_0_5_14: semver::Version = semver::Version::new(0, 5, 14);
    pub const SOLC_VERSION_0_5_14_CHECKSUM: &str =
        "8afa926b6bb8ad492fb25078b1dce09fd05faa5765e4e2b2672b3c99cf71eeb1";
    pub const SOLC_VERSION_0_5_15: semver::Version = semver::Version::new(0, 5, 15);
    pub const SOLC_VERSION_0_5_15_CHECKSUM: &str =
        "9e05051c3d42a49c8470cbed1f2bfa89fe76e930a9e5558c52ce5653cf794e25";
    pub const SOLC_VERSION_0_5_16: semver::Version = semver::Version::new(0, 5, 16);
    pub const SOLC_VERSION_0_5_16_CHECKSUM: &str =
        "9f6624e408497142bbd29efe0744ee25e445aeb7c932be401c0bc30478a6bb75";
    pub const SOLC_VERSION_0_5_17: semver::Version = semver::Version::new(0, 5, 17);
    pub const SOLC_VERSION_0_5_17_CHECKSUM: &str =
        "35be28f68488b71f1de66148f915b91d64e062900e4fc175bf2eb8fb948810bd";
    pub const SOLC_VERSION_0_6_0: semver::Version = semver::Version::new(0, 6, 0);
    pub const SOLC_VERSION_0_6_0_CHECKSUM: &str =
        "37beed8c8b947eba644cfd8c20446e1ba5d74055e6856b646dd6ad4bb470d9ae";
    pub const SOLC_VERSION_0_6_1: semver::Version = semver::Version::new(0, 6, 1);
    pub const SOLC_VERSION_0_6_1_CHECKSUM: &str =
        "f1649bfdb0e6e53be2758544836258cb4d02e0b381a9e43216aa2b2fad0c9b8e";
    pub const SOLC_VERSION_0_6_2: semver::Version = semver::Version::new(0, 6, 2);
    pub const SOLC_VERSION_0_6_2_CHECKSUM: &str =
        "2bb19d8cd69a32854acce1245b4492cfc5b5e751d322d2c6556d4a521bfcc3c8";
    pub const SOLC_VERSION_0_6_3: semver::Version = semver::Version::new(0, 6, 3);
    pub const SOLC_VERSION_0_6_3_CHECKSUM: &str =
        "a09350d5a182b3da799c203d1dadc4ce0e6fe3b96dc9ee1c9d73e9a9d9592e2a";
    pub const SOLC_VERSION_0_6_4: semver::Version = semver::Version::new(0, 6, 4);
    pub const SOLC_VERSION_0_6_4_CHECKSUM: &str =
        "082fd42cc96c28262459306f2854fe7049cc0d14473e126b2db6d30bf02f54d0";
    pub const SOLC_VERSION_0_6_5: semver::Version = semver::Version::new(0, 6, 5);
    pub const SOLC_VERSION_0_6_5_CHECKSUM: &str =
        "a8129254b5247bbe003d6e54f35c0bba853694126744577289b6bdf1d35a1e4a";
    pub const SOLC_VERSION_0_6_6: semver::Version = semver::Version::new(0, 6, 6);
    pub const SOLC_VERSION_0_6_6_CHECKSUM: &str =
        "45c7f956197ce08b69f793ea610cf1ee65e12b6a518d6160cc28c8eeff41517c";
    pub const SOLC_VERSION_0_6_7: semver::Version = semver::Version::new(0, 6, 7);
    pub const SOLC_VERSION_0_6_7_CHECKSUM: &str =
        "bb78b6de3df7db6115a1033346c3e9df8a6b9c4fd038cc12d6bdf16abd29c952";
    pub const SOLC_VERSION_0_6_8: semver::Version = semver::Version::new(0, 6, 8);
    pub const SOLC_VERSION_0_6_8_CHECKSUM: &str =
        "801efaa3d0288637021667c0d116ee2b339e62cf26027f8c168259e0805e8b60";
    pub const SOLC_VERSION_0_6_9: semver::Version = semver::Version::new(0, 6, 9);
    pub const SOLC_VERSION_0_6_9_CHECKSUM: &str =
        "98fbe10755638ad5ccc0683810b961a803450e94b642af112593248a685aa4dc";
    pub const SOLC_VERSION_0_6_10: semver::Version = semver::Version::new(0, 6, 10);
    pub const SOLC_VERSION_0_6_10_CHECKSUM: &str =
        "3773e66c3ef14e2e47bdd7d06f30f952c199856df240d164c91c1f00806fbbc7";
    pub const SOLC_VERSION_0_6_11: semver::Version = semver::Version::new(0, 6, 11);
    pub const SOLC_VERSION_0_6_11_CHECKSUM: &str =
        "a0a64aa092a616ae7145da908fc427fc3c296d3afdbfa8ea3468a22722d5d01c";
    pub const SOLC_VERSION_0_6_12: semver::Version = semver::Version::new(0, 6, 12);
    pub const SOLC_VERSION_0_6_12_CHECKSUM: &str =
        "05ad8afa83df3b51d36fe9a84ea4467b3ed17585c903946985d6e2cd5e95685a";
    pub const SOLC_VERSION_0_7_0: semver::Version = semver::Version::new(0, 7, 0);
    pub const SOLC_VERSION_0_7_0_CHECKSUM: &str =
        "40555d6e826104cacd0c0b637c5fb573d5b6e2a6ac70110dc0333466c0115e1d";
    pub const SOLC_VERSION_0_7_1: semver::Version = semver::Version::new(0, 7, 1);
    pub const SOLC_VERSION_0_7_1_CHECKSUM: &str =
        "55b8072cc6ac154bf27f22177afe58be05f28c11ef51fc4e660313d3045a4268";
    pub const SOLC_VERSION_0_7_2: semver::Version = semver::Version::new(0, 7, 2);
    pub const SOLC_VERSION_0_7_2_CHECKSUM: &str =
        "5518641f6c4a286054f5c9f29146970ef72f2f34ee76ed23f5eb1f6d1dcfecdb";
    pub const SOLC_VERSION_0_7_3: semver::Version = semver::Version::new(0, 7, 3);
    pub const SOLC_VERSION_0_7_3_CHECKSUM: &str =
        "f185104ed5e2a90b3ce8dfc7283c5d0ffbb738d7c8da19e8635dd9fda34c337a";
    pub const SOLC_VERSION_0_7_4: semver::Version = semver::Version::new(0, 7, 4);
    pub const SOLC_VERSION_0_7_4_CHECKSUM: &str =
        "cce002688cf10fb0243a042503f3e9896aa991ab59b08b57971d42d68e99f83d";
    pub const SOLC_VERSION_0_7_5: semver::Version = semver::Version::new(0, 7, 5);
    pub const SOLC_VERSION_0_7_5_CHECKSUM: &str =
        "1c100ce86a3167fd4c194290aafec0d3d94fe86c7a1aa0837c1346cc93d8b6ce";
    pub const SOLC_VERSION_0_7_6: semver::Version = semver::Version::new(0, 7, 6);
    pub const SOLC_VERSION_0_7_6_CHECKSUM: &str =
        "a6a8f9f9388c5fcd9222474e00270242c832e936b0f5257c20374d27ee5bd1ab";
    pub const SOLC_VERSION_0_8_0: semver::Version = semver::Version::new(0, 8, 0);
    pub const SOLC_VERSION_0_8_0_CHECKSUM: &str =
        "c7c3ff484d2dd69350fc182d44ecf6057ff2885b96a1c3990ca362e9c8325335";
    pub const SOLC_VERSION_0_8_1: semver::Version = semver::Version::new(0, 8, 1);
    pub const SOLC_VERSION_0_8_1_CHECKSUM: &str =
        "38504e357632c15afed612c20ef878992ca8411ce3fb6afee37dec6ebd22ce02";
    pub const SOLC_VERSION_0_8_2: semver::Version = semver::Version::new(0, 8, 2);
    pub const SOLC_VERSION_0_8_2_CHECKSUM: &str =
        "0898c23b0ac8cdabcee3b646b676da1205f4be7c0bec8a58de81b060c59b4c1c";
    pub const SOLC_VERSION_0_8_3: semver::Version = semver::Version::new(0, 8, 3);
    pub const SOLC_VERSION_0_8_3_CHECKSUM: &str =
        "1188f5c24d33ec1ec2ce811a7a45bdc3c167f1ba71cbc2664016564d2fdd46ba";
    pub const SOLC_VERSION_0_8_4: semver::Version = semver::Version::new(0, 8, 4);
    pub const SOLC_VERSION_0_8_4_CHECKSUM: &str =
        "4f6f2e6942a09051bbbc850d4fa9b0d907749612cb5db58cac0c87745435070f";
    pub const SOLC_VERSION_0_8_5: semver::Version = semver::Version::new(0, 8, 5);
    pub const SOLC_VERSION_0_8_5_CHECKSUM: &str =
        "3421ee67a26ef4a720e79531ffd9b96deec89defbcd70bb4a33e968b12ddb938";
    pub const SOLC_VERSION_0_8_6: semver::Version = semver::Version::new(0, 8, 6);
    pub const SOLC_VERSION_0_8_6_CHECKSUM: &str =
        "86ee99f64fc7e36bfa046169b6a4d4c10eb35017ed11e0c970f01223b2f5db36";
    pub const SOLC_VERSION_0_8_7: semver::Version = semver::Version::new(0, 8, 7);
    pub const SOLC_VERSION_0_8_7_CHECKSUM: &str =
        "cc5c663d1fe17d4eb4aca09253787ac86b8785235fca71d9200569e662677990";
    pub const SOLC_VERSION_0_8_8: semver::Version = semver::Version::new(0, 8, 8);
    pub const SOLC_VERSION_0_8_8_CHECKSUM: &str =
        "1422e10454251d56fef62940fb2e209a6f467ae35f73bdce580bc0bad35851dd";
    pub const SOLC_VERSION_0_8_9: semver::Version = semver::Version::new(0, 8, 9);
    pub const SOLC_VERSION_0_8_9_CHECKSUM: &str =
        "d619d4f5d8fd988bc63262407e749e905ccc8d8ab1ccf0280da1d12b918894ce";
    pub const SOLC_VERSION_0_8_10: semver::Version = semver::Version::new(0, 8, 10);
    pub const SOLC_VERSION_0_8_10_CHECKSUM: &str =
        "a79fff23aeb35be856e446827c44a9cfa4c382f29babd2f6a405ef73d1e2a4cc";
    pub const SOLC_VERSION_0_8_11: semver::Version = semver::Version::new(0, 8, 11);
    pub const SOLC_VERSION_0_8_11_CHECKSUM: &str =
        "10cdcc8d8ea4dde9fd8b953b95885dc737f24b8a31fea65f4715ffd007b80281";
    pub const SOLC_VERSION_0_8_12: semver::Version = semver::Version::new(0, 8, 12);
    pub const SOLC_VERSION_0_8_12_CHECKSUM: &str =
        "95738a27909a13502385e9fe8f8f3d8a873d2faf5d06ff617bc2fe3edb8c4bf9";
    pub const SOLC_VERSION_0_8_13: semver::Version = semver::Version::new(0, 8, 13);
    pub const SOLC_VERSION_0_8_13_CHECKSUM: &str =
        "14d4ef013ea82ad95e91fd949b7fa7b78271a483ff1a79c43d6cc58b826f5bea";
    /// All available releases for macosx-amd64
    pub static ALL_SOLC_VERSIONS: [semver::Version; 80] = [
        SOLC_VERSION_0_3_6,
        SOLC_VERSION_0_4_0,
        SOLC_VERSION_0_4_1,
        SOLC_VERSION_0_4_2,
        SOLC_VERSION_0_4_3,
        SOLC_VERSION_0_4_4,
        SOLC_VERSION_0_4_5,
        SOLC_VERSION_0_4_6,
        SOLC_VERSION_0_4_7,
        SOLC_VERSION_0_4_8,
        SOLC_VERSION_0_4_9,
        SOLC_VERSION_0_4_10,
        SOLC_VERSION_0_4_11,
        SOLC_VERSION_0_4_12,
        SOLC_VERSION_0_4_13,
        SOLC_VERSION_0_4_14,
        SOLC_VERSION_0_4_15,
        SOLC_VERSION_0_4_16,
        SOLC_VERSION_0_4_17,
        SOLC_VERSION_0_4_18,
        SOLC_VERSION_0_4_19,
        SOLC_VERSION_0_4_20,
        SOLC_VERSION_0_4_21,
        SOLC_VERSION_0_4_22,
        SOLC_VERSION_0_4_23,
        SOLC_VERSION_0_4_24,
        SOLC_VERSION_0_4_25,
        SOLC_VERSION_0_4_26,
        SOLC_VERSION_0_5_0,
        SOLC_VERSION_0_5_1,
        SOLC_VERSION_0_5_2,
        SOLC_VERSION_0_5_3,
        SOLC_VERSION_0_5_4,
        SOLC_VERSION_0_5_5,
        SOLC_VERSION_0_5_6,
        SOLC_VERSION_0_5_7,
        SOLC_VERSION_0_5_8,
        SOLC_VERSION_0_5_9,
        SOLC_VERSION_0_5_10,
        SOLC_VERSION_0_5_11,
        SOLC_VERSION_0_5_12,
        SOLC_VERSION_0_5_13,
        SOLC_VERSION_0_5_14,
        SOLC_VERSION_0_5_15,
        SOLC_VERSION_0_5_16,
        SOLC_VERSION_0_5_17,
        SOLC_VERSION_0_6_0,
        SOLC_VERSION_0_6_1,
        SOLC_VERSION_0_6_2,
        SOLC_VERSION_0_6_3,
        SOLC_VERSION_0_6_4,
        SOLC_VERSION_0_6_5,
        SOLC_VERSION_0_6_6,
        SOLC_VERSION_0_6_7,
        SOLC_VERSION_0_6_8,
        SOLC_VERSION_0_6_9,
        SOLC_VERSION_0_6_10,
        SOLC_VERSION_0_6_11,
        SOLC_VERSION_0_6_12,
        SOLC_VERSION_0_7_0,
        SOLC_VERSION_0_7_1,
        SOLC_VERSION_0_7_2,
        SOLC_VERSION_0_7_3,
        SOLC_VERSION_0_7_4,
        SOLC_VERSION_0_7_5,
        SOLC_VERSION_0_7_6,
        SOLC_VERSION_0_8_0,
        SOLC_VERSION_0_8_1,
        SOLC_VERSION_0_8_2,
        SOLC_VERSION_0_8_3,
        SOLC_VERSION_0_8_4,
        SOLC_VERSION_0_8_5,
        SOLC_VERSION_0_8_6,
        SOLC_VERSION_0_8_7,
        SOLC_VERSION_0_8_8,
        SOLC_VERSION_0_8_9,
        SOLC_VERSION_0_8_10,
        SOLC_VERSION_0_8_11,
        SOLC_VERSION_0_8_12,
        SOLC_VERSION_0_8_13,
    ];
    /// Get the checksum of a solc version's binary if it exists.
    pub fn get_checksum(version: &semver::Version) -> Option<Vec<u8>> {
        let checksum = match (version.major, version.minor, version.patch) {
            (0, 3, 6) => SOLC_VERSION_0_3_6_CHECKSUM,
            (0, 4, 0) => SOLC_VERSION_0_4_0_CHECKSUM,
            (0, 4, 1) => SOLC_VERSION_0_4_1_CHECKSUM,
            (0, 4, 2) => SOLC_VERSION_0_4_2_CHECKSUM,
            (0, 4, 3) => SOLC_VERSION_0_4_3_CHECKSUM,
            (0, 4, 4) => SOLC_VERSION_0_4_4_CHECKSUM,
            (0, 4, 5) => SOLC_VERSION_0_4_5_CHECKSUM,
            (0, 4, 6) => SOLC_VERSION_0_4_6_CHECKSUM,
            (0, 4, 7) => SOLC_VERSION_0_4_7_CHECKSUM,
            (0, 4, 8) => SOLC_VERSION_0_4_8_CHECKSUM,
            (0, 4, 9) => SOLC_VERSION_0_4_9_CHECKSUM,
            (0, 4, 10) => SOLC_VERSION_0_4_10_CHECKSUM,
            (0, 4, 11) => SOLC_VERSION_0_4_11_CHECKSUM,
            (0, 4, 12) => SOLC_VERSION_0_4_12_CHECKSUM,
            (0, 4, 13) => SOLC_VERSION_0_4_13_CHECKSUM,
            (0, 4, 14) => SOLC_VERSION_0_4_14_CHECKSUM,
            (0, 4, 15) => SOLC_VERSION_0_4_15_CHECKSUM,
            (0, 4, 16) => SOLC_VERSION_0_4_16_CHECKSUM,
            (0, 4, 17) => SOLC_VERSION_0_4_17_CHECKSUM,
            (0, 4, 18) => SOLC_VERSION_0_4_18_CHECKSUM,
            (0, 4, 19) => SOLC_VERSION_0_4_19_CHECKSUM,
            (0, 4, 20) => SOLC_VERSION_0_4_20_CHECKSUM,
            (0, 4, 21) => SOLC_VERSION_0_4_21_CHECKSUM,
            (0, 4, 22) => SOLC_VERSION_0_4_22_CHECKSUM,
            (0, 4, 23) => SOLC_VERSION_0_4_23_CHECKSUM,
            (0, 4, 24) => SOLC_VERSION_0_4_24_CHECKSUM,
            (0, 4, 25) => SOLC_VERSION_0_4_25_CHECKSUM,
            (0, 4, 26) => SOLC_VERSION_0_4_26_CHECKSUM,
            (0, 5, 0) => SOLC_VERSION_0_5_0_CHECKSUM,
            (0, 5, 1) => SOLC_VERSION_0_5_1_CHECKSUM,
            (0, 5, 2) => SOLC_VERSION_0_5_2_CHECKSUM,
            (0, 5, 3) => SOLC_VERSION_0_5_3_CHECKSUM,
            (0, 5, 4) => SOLC_VERSION_0_5_4_CHECKSUM,
            (0, 5, 5) => SOLC_VERSION_0_5_5_CHECKSUM,
            (0, 5, 6) => SOLC_VERSION_0_5_6_CHECKSUM,
            (0, 5, 7) => SOLC_VERSION_0_5_7_CHECKSUM,
            (0, 5, 8) => SOLC_VERSION_0_5_8_CHECKSUM,
            (0, 5, 9) => SOLC_VERSION_0_5_9_CHECKSUM,
            (0, 5, 10) => SOLC_VERSION_0_5_10_CHECKSUM,
            (0, 5, 11) => SOLC_VERSION_0_5_11_CHECKSUM,
            (0, 5, 12) => SOLC_VERSION_0_5_12_CHECKSUM,
            (0, 5, 13) => SOLC_VERSION_0_5_13_CHECKSUM,
            (0, 5, 14) => SOLC_VERSION_0_5_14_CHECKSUM,
            (0, 5, 15) => SOLC_VERSION_0_5_15_CHECKSUM,
            (0, 5, 16) => SOLC_VERSION_0_5_16_CHECKSUM,
            (0, 5, 17) => SOLC_VERSION_0_5_17_CHECKSUM,
            (0, 6, 0) => SOLC_VERSION_0_6_0_CHECKSUM,
            (0, 6, 1) => SOLC_VERSION_0_6_1_CHECKSUM,
            (0, 6, 2) => SOLC_VERSION_0_6_2_CHECKSUM,
            (0, 6, 3) => SOLC_VERSION_0_6_3_CHECKSUM,
            (0, 6, 4) => SOLC_VERSION_0_6_4_CHECKSUM,
            (0, 6, 5) => SOLC_VERSION_0_6_5_CHECKSUM,
            (0, 6, 6) => SOLC_VERSION_0_6_6_CHECKSUM,
            (0, 6, 7) => SOLC_VERSION_0_6_7_CHECKSUM,
            (0, 6, 8) => SOLC_VERSION_0_6_8_CHECKSUM,
            (0, 6, 9) => SOLC_VERSION_0_6_9_CHECKSUM,
            (0, 6, 10) => SOLC_VERSION_0_6_10_CHECKSUM,
            (0, 6, 11) => SOLC_VERSION_0_6_11_CHECKSUM,
            (0, 6, 12) => SOLC_VERSION_0_6_12_CHECKSUM,
            (0, 7, 0) => SOLC_VERSION_0_7_0_CHECKSUM,
            (0, 7, 1) => SOLC_VERSION_0_7_1_CHECKSUM,
            (0, 7, 2) => SOLC_VERSION_0_7_2_CHECKSUM,
            (0, 7, 3) => SOLC_VERSION_0_7_3_CHECKSUM,
            (0, 7, 4) => SOLC_VERSION_0_7_4_CHECKSUM,
            (0, 7, 5) => SOLC_VERSION_0_7_5_CHECKSUM,
            (0, 7, 6) => SOLC_VERSION_0_7_6_CHECKSUM,
            (0, 8, 0) => SOLC_VERSION_0_8_0_CHECKSUM,
            (0, 8, 1) => SOLC_VERSION_0_8_1_CHECKSUM,
            (0, 8, 2) => SOLC_VERSION_0_8_2_CHECKSUM,
            (0, 8, 3) => SOLC_VERSION_0_8_3_CHECKSUM,
            (0, 8, 4) => SOLC_VERSION_0_8_4_CHECKSUM,
            (0, 8, 5) => SOLC_VERSION_0_8_5_CHECKSUM,
            (0, 8, 6) => SOLC_VERSION_0_8_6_CHECKSUM,
            (0, 8, 7) => SOLC_VERSION_0_8_7_CHECKSUM,
            (0, 8, 8) => SOLC_VERSION_0_8_8_CHECKSUM,
            (0, 8, 9) => SOLC_VERSION_0_8_9_CHECKSUM,
            (0, 8, 10) => SOLC_VERSION_0_8_10_CHECKSUM,
            (0, 8, 11) => SOLC_VERSION_0_8_11_CHECKSUM,
            (0, 8, 12) => SOLC_VERSION_0_8_12_CHECKSUM,
            (0, 8, 13) => SOLC_VERSION_0_8_13_CHECKSUM,
            _ => return None,
        };
        Some(hex::decode(checksum).expect("valid hex;"))
    }
    /// JSON release list
    pub static RELEASE_LIST_JSON: &str = r#"{"builds":[{"version":"0.3.6","sha256":"02d581b5b373d8160b9e75d690dd2ee898c3e0f6a39bbda54cd0698224c09df4"},{"version":"0.4.0","sha256":"bba6e2c33935259c478060501a7fb0ee1db4b0c56567356c9d01b6ec0491a558"},{"version":"0.4.1","sha256":"2de730163c80670b2f4c1ef78dc77ab13f757aad1ead044761821293275c382b"},{"version":"0.4.2","sha256":"9882bb966b82c0f4847735dba20b517118cf5408ed2a872485750f6ff26cf98b"},{"version":"0.4.3","sha256":"3ac02a93f4c7c20b9f17b6038af25b41acb8cfe178040be0f2246adc8bb8fe0a"},{"version":"0.4.4","sha256":"38ceeea801b5952d74bdb79ae5bc6bbb4c187ee5941e2701de388fdf95322f58"},{"version":"0.4.5","sha256":"003b09c2f255d2a40c2b2a1798192f92e6a3f1b35bda1a35ba66675919be1555"},{"version":"0.4.6","sha256":"aef1ebf2d2783a31742a612461f13e0ffc656c4a5ce25a0eeb747186ce03b276"},{"version":"0.4.7","sha256":"fc386d2547b6f764a0c1139487ed1d4a19e334c510a727614ff8ebeb1bd01a93"},{"version":"0.4.8","sha256":"ebb64b8b8dd465bd53a52fa7063569115df176c7561ac4feb47004513e1df74b"},{"version":"0.4.9","sha256":"a5b4227ed259c474426d8a2ef380606766aa8ba7f65487ab177139b3a51f0dee"},{"version":"0.4.10","sha256":"40f179e4d27201ab726669dd26d594cfe10bf4dd6117495ee49d26f0dda9ef42"},{"version":"0.4.11","sha256":"287eab0187dd4bdec50226f3173526bd8d247adeebdf64bc0b7448711abbea61"},{"version":"0.4.12","sha256":"65cc92c918d6334f533a7596f62916825fc722b2a7a235729ed87cfbec622bcd"},{"version":"0.4.13","sha256":"701eebf0e37d172cb829dc1e65c74a46b3b96737f3866758f9894696a639b6b7"},{"version":"0.4.14","sha256":"a4ef22d9d36e75151bdd64720e69eddf57500883dd623c57805edb5ccb644a89"},{"version":"0.4.15","sha256":"e449a4980db4ff18e7ffe704b40083cded96cccf33986bf6a6bb6fe925eb86c0"},{"version":"0.4.16","sha256":"a24512aee16652c4469979715bbdcaa6c4afabb94b717bb40980e4b2d25c4709"},{"version":"0.4.17","sha256":"458c3e2de2ffe609b79d9cdc4eb3080d6ed7662ef1bdd7c8a03fb18f1ca9a137"},{"version":"0.4.18","sha256":"dddc86683d12d0f016b5d5799ed84f6f2a79f667ebb932b9a8e6bfe9a48c3190"},{"version":"0.4.19","sha256":"ace5107a68fa75634e26848d6d208b808a76cc4f9262e53e8a3622bcefd4dcaf"},{"version":"0.4.20","sha256":"47425e338b9461d3e6498a0b0d5c2b9cc7cf998e4aa69126ea9f64c0a176e605"},{"version":"0.4.21","sha256":"e035cb9a81b5e3e11a7b99ead6f51a3ef7729794eebee470a964e2c08e30b857"},{"version":"0.4.22","sha256":"a9341add7a4f01c52dbb36bb4028104676c684b0b6003a2cd9dd84a2a9802b59"},{"version":"0.4.23","sha256":"502eddb177f9268d79b1e05e6acfb2f229471823bf6711eff411d2a23e8cc0b1"},{"version":"0.4.24","sha256":"7034c4048bc713d5c14cdd6681953c736e2adbdb9174f8bfbfb6a097109ffaaa"},{"version":"0.4.25","sha256":"9dd7686975200be71ce731f153823e7ea0d68106f3354ea16fecd5975f5c98b7"},{"version":"0.4.26","sha256":"bc956645b792dcbb8f820b8010a8d4ec1e188f7b40c6af951a436da4c13ae677"},{"version":"0.5.0","sha256":"9fa663fc427e8e9613815ad6b83783b4e4cb10439f16ca0dcb12fc002c45ab5a"},{"version":"0.5.1","sha256":"f2bad43386065684b4e15b86a175410f5d1e4d234b052cba44eb50f4c74b021f"},{"version":"0.5.2","sha256":"9e7ee54f0bc2978fa8738b9603d636715a069d84771778d6195577bb91ecb9c8"},{"version":"0.5.3","sha256":"03a6cfa2d74e57ea38eee83ce9a3ea37a6e50928d7f109e74b37cae31319af2b"},{"version":"0.5.4","sha256":"32a8affa996d05c55257317cc700b9e5b4377d94919b59055564eb0b5f941773"},{"version":"0.5.5","sha256":"7fc0600cc150020402c9539ec0ad584eb9271b2d0e0bff9e3b4d4ca672be3452"},{"version":"0.5.6","sha256":"428f9c0873d88740242f6fc16a3ae6f91b35f73ddf7676b5d5b39687d9d9b7dc"},{"version":"0.5.7","sha256":"a7d6b8e3cb22d90789a79b484b721fe02943f89e9b7e996863edd2d40ba7b524"},{"version":"0.5.8","sha256":"9f383896c8506cd96ac5ef9c97d7ab1c385fb5f4772a5f3d2cf8715cae793554"},{"version":"0.5.9","sha256":"92e3688207c0c2b86bd9d10088340e4a585e29e3a88d1cf79c2043f4f9f121c4"},{"version":"0.5.10","sha256":"5082bb5c492ca35b68b0c3e24d5934b56d3add83f1400ba95654e8f163c741ff"},{"version":"0.5.11","sha256":"0e8ee89ddb1096b81c34e11bdb5985822e749d3a9dc4e7218ba2474afa6400cb"},{"version":"0.5.12","sha256":"3dfb97bc941492afaea7f404c3fb9c6fe215b3386aa6e0370791b571e4679548"},{"version":"0.5.13","sha256":"68a344d9de40b0d7482089ee7748e43088c52e3b108480d801b34c64020beb48"},{"version":"0.5.14","sha256":"8afa926b6bb8ad492fb25078b1dce09fd05faa5765e4e2b2672b3c99cf71eeb1"},{"version":"0.5.15","sha256":"9e05051c3d42a49c8470cbed1f2bfa89fe76e930a9e5558c52ce5653cf794e25"},{"version":"0.5.16","sha256":"9f6624e408497142bbd29efe0744ee25e445aeb7c932be401c0bc30478a6bb75"},{"version":"0.5.17","sha256":"35be28f68488b71f1de66148f915b91d64e062900e4fc175bf2eb8fb948810bd"},{"version":"0.6.0","sha256":"37beed8c8b947eba644cfd8c20446e1ba5d74055e6856b646dd6ad4bb470d9ae"},{"version":"0.6.1","sha256":"f1649bfdb0e6e53be2758544836258cb4d02e0b381a9e43216aa2b2fad0c9b8e"},{"version":"0.6.2","sha256":"2bb19d8cd69a32854acce1245b4492cfc5b5e751d322d2c6556d4a521bfcc3c8"},{"version":"0.6.3","sha256":"a09350d5a182b3da799c203d1dadc4ce0e6fe3b96dc9ee1c9d73e9a9d9592e2a"},{"version":"0.6.4","sha256":"082fd42cc96c28262459306f2854fe7049cc0d14473e126b2db6d30bf02f54d0"},{"version":"0.6.5","sha256":"a8129254b5247bbe003d6e54f35c0bba853694126744577289b6bdf1d35a1e4a"},{"version":"0.6.6","sha256":"45c7f956197ce08b69f793ea610cf1ee65e12b6a518d6160cc28c8eeff41517c"},{"version":"0.6.7","sha256":"bb78b6de3df7db6115a1033346c3e9df8a6b9c4fd038cc12d6bdf16abd29c952"},{"version":"0.6.8","sha256":"801efaa3d0288637021667c0d116ee2b339e62cf26027f8c168259e0805e8b60"},{"version":"0.6.9","sha256":"98fbe10755638ad5ccc0683810b961a803450e94b642af112593248a685aa4dc"},{"version":"0.6.10","sha256":"3773e66c3ef14e2e47bdd7d06f30f952c199856df240d164c91c1f00806fbbc7"},{"version":"0.6.11","sha256":"a0a64aa092a616ae7145da908fc427fc3c296d3afdbfa8ea3468a22722d5d01c"},{"version":"0.6.12","sha256":"05ad8afa83df3b51d36fe9a84ea4467b3ed17585c903946985d6e2cd5e95685a"},{"version":"0.7.0","sha256":"40555d6e826104cacd0c0b637c5fb573d5b6e2a6ac70110dc0333466c0115e1d"},{"version":"0.7.1","sha256":"55b8072cc6ac154bf27f22177afe58be05f28c11ef51fc4e660313d3045a4268"},{"version":"0.7.2","sha256":"5518641f6c4a286054f5c9f29146970ef72f2f34ee76ed23f5eb1f6d1dcfecdb"},{"version":"0.7.3","sha256":"f185104ed5e2a90b3ce8dfc7283c5d0ffbb738d7c8da19e8635dd9fda34c337a"},{"version":"0.7.4","sha256":"cce002688cf10fb0243a042503f3e9896aa991ab59b08b57971d42d68e99f83d"},{"version":"0.7.5","sha256":"1c100ce86a3167fd4c194290aafec0d3d94fe86c7a1aa0837c1346cc93d8b6ce"},{"version":"0.7.6","sha256":"a6a8f9f9388c5fcd9222474e00270242c832e936b0f5257c20374d27ee5bd1ab"},{"version":"0.8.0","sha256":"c7c3ff484d2dd69350fc182d44ecf6057ff2885b96a1c3990ca362e9c8325335"},{"version":"0.8.1","sha256":"38504e357632c15afed612c20ef878992ca8411ce3fb6afee37dec6ebd22ce02"},{"version":"0.8.2","sha256":"0898c23b0ac8cdabcee3b646b676da1205f4be7c0bec8a58de81b060c59b4c1c"},{"version":"0.8.3","sha256":"1188f5c24d33ec1ec2ce811a7a45bdc3c167f1ba71cbc2664016564d2fdd46ba"},{"version":"0.8.4","sha256":"4f6f2e6942a09051bbbc850d4fa9b0d907749612cb5db58cac0c87745435070f"},{"version":"0.8.5","sha256":"3421ee67a26ef4a720e79531ffd9b96deec89defbcd70bb4a33e968b12ddb938"},{"version":"0.8.6","sha256":"86ee99f64fc7e36bfa046169b6a4d4c10eb35017ed11e0c970f01223b2f5db36"},{"version":"0.8.7","sha256":"cc5c663d1fe17d4eb4aca09253787ac86b8785235fca71d9200569e662677990"},{"version":"0.8.8","sha256":"1422e10454251d56fef62940fb2e209a6f467ae35f73bdce580bc0bad35851dd"},{"version":"0.8.9","sha256":"d619d4f5d8fd988bc63262407e749e905ccc8d8ab1ccf0280da1d12b918894ce"},{"version":"0.8.10","sha256":"a79fff23aeb35be856e446827c44a9cfa4c382f29babd2f6a405ef73d1e2a4cc"},{"version":"0.8.11","sha256":"10cdcc8d8ea4dde9fd8b953b95885dc737f24b8a31fea65f4715ffd007b80281"},{"version":"0.8.12","sha256":"95738a27909a13502385e9fe8f8f3d8a873d2faf5d06ff617bc2fe3edb8c4bf9"},{"version":"0.8.13","sha256":"14d4ef013ea82ad95e91fd949b7fa7b78271a483ff1a79c43d6cc58b826f5bea"}],"releases":{"0.3.6":"solc-macosx-amd64-v0.3.6+commit.988fe5e5","0.4.0":"solc-macosx-amd64-v0.4.0+commit.acd334c9","0.4.1":"solc-macosx-amd64-v0.4.1+commit.4fc6fc2c","0.4.2":"solc-macosx-amd64-v0.4.2+commit.af6afb04","0.4.3":"solc-macosx-amd64-v0.4.3+commit.2353da71","0.4.4":"solc-macosx-amd64-v0.4.4+commit.4633f3de","0.4.5":"solc-macosx-amd64-v0.4.5+commit.b318366e","0.4.6":"solc-macosx-amd64-v0.4.6+commit.2dabbdf0","0.4.7":"solc-macosx-amd64-v0.4.7+commit.822622cf","0.4.8":"solc-macosx-amd64-v0.4.8+commit.60cc1668","0.4.9":"solc-macosx-amd64-v0.4.9+commit.364da425","0.4.10":"solc-macosx-amd64-v0.4.10+commit.f0d539ae","0.4.11":"solc-macosx-amd64-v0.4.11+commit.68ef5810","0.4.12":"solc-macosx-amd64-v0.4.12+commit.194ff033","0.4.13":"solc-macosx-amd64-v0.4.13+commit.0fb4cb1a","0.4.14":"solc-macosx-amd64-v0.4.14+commit.c2215d46","0.4.15":"solc-macosx-amd64-v0.4.15+commit.8b45bddb","0.4.16":"solc-macosx-amd64-v0.4.16+commit.d7661dd9","0.4.17":"solc-macosx-amd64-v0.4.17+commit.bdeb9e52","0.4.18":"solc-macosx-amd64-v0.4.18+commit.9cf6e910","0.4.19":"solc-macosx-amd64-v0.4.19+commit.c4cbbb05","0.4.20":"solc-macosx-amd64-v0.4.20+commit.3155dd80","0.4.21":"solc-macosx-amd64-v0.4.21+commit.dfe3193c","0.4.22":"solc-macosx-amd64-v0.4.22+commit.4cb486ee","0.4.23":"solc-macosx-amd64-v0.4.23+commit.124ca40d","0.4.24":"solc-macosx-amd64-v0.4.24+commit.e67f0147","0.4.25":"solc-macosx-amd64-v0.4.25+commit.59dbf8f1","0.4.26":"solc-macosx-amd64-v0.4.26+commit.4563c3fc","0.5.0":"solc-macosx-amd64-v0.5.0+commit.1d4f565a","0.5.1":"solc-macosx-amd64-v0.5.1+commit.c8a2cb62","0.5.2":"solc-macosx-amd64-v0.5.2+commit.1df8f40c","0.5.3":"solc-macosx-amd64-v0.5.3+commit.10d17f24","0.5.4":"solc-macosx-amd64-v0.5.4+commit.9549d8ff","0.5.5":"solc-macosx-amd64-v0.5.5+commit.47a71e8f","0.5.6":"solc-macosx-amd64-v0.5.6+commit.b259423e","0.5.7":"solc-macosx-amd64-v0.5.7+commit.6da8b019","0.5.8":"solc-macosx-amd64-v0.5.8+commit.23d335f2","0.5.9":"solc-macosx-amd64-v0.5.9+commit.c68bc34e","0.5.10":"solc-macosx-amd64-v0.5.10+commit.5a6ea5b1","0.5.11":"solc-macosx-amd64-v0.5.11+commit.22be8592","0.5.12":"solc-macosx-amd64-v0.5.12+commit.7709ece9","0.5.13":"solc-macosx-amd64-v0.5.13+commit.5b0b510c","0.5.14":"solc-macosx-amd64-v0.5.14+commit.01f1aaa4","0.5.15":"solc-macosx-amd64-v0.5.15+commit.6a57276f","0.5.16":"solc-macosx-amd64-v0.5.16+commit.9c3226ce","0.5.17":"solc-macosx-amd64-v0.5.17+commit.d19bba13","0.6.0":"solc-macosx-amd64-v0.6.0+commit.26b70077","0.6.1":"solc-macosx-amd64-v0.6.1+commit.e6f7d5a4","0.6.2":"solc-macosx-amd64-v0.6.2+commit.bacdbe57","0.6.3":"solc-macosx-amd64-v0.6.3+commit.8dda9521","0.6.4":"solc-macosx-amd64-v0.6.4+commit.1dca32f3","0.6.5":"solc-macosx-amd64-v0.6.5+commit.f956cc89","0.6.6":"solc-macosx-amd64-v0.6.6+commit.6c089d02","0.6.7":"solc-macosx-amd64-v0.6.7+commit.b8d736ae","0.6.8":"solc-macosx-amd64-v0.6.8+commit.0bbfe453","0.6.9":"solc-macosx-amd64-v0.6.9+commit.3e3065ac","0.6.10":"solc-macosx-amd64-v0.6.10+commit.00c0fcaf","0.6.11":"solc-macosx-amd64-v0.6.11+commit.5ef660b1","0.6.12":"solc-macosx-amd64-v0.6.12+commit.27d51765","0.7.0":"solc-macosx-amd64-v0.7.0+commit.9e61f92b","0.7.1":"solc-macosx-amd64-v0.7.1+commit.f4a555be","0.7.2":"solc-macosx-amd64-v0.7.2+commit.51b20bc0","0.7.3":"solc-macosx-amd64-v0.7.3+commit.9bfce1f6","0.7.4":"solc-macosx-amd64-v0.7.4+commit.3f05b770","0.7.5":"solc-macosx-amd64-v0.7.5+commit.eb77ed08","0.7.6":"solc-macosx-amd64-v0.7.6+commit.7338295f","0.8.0":"solc-macosx-amd64-v0.8.0+commit.c7dfd78e","0.8.1":"solc-macosx-amd64-v0.8.1+commit.df193b15","0.8.2":"solc-macosx-amd64-v0.8.2+commit.661d1103","0.8.3":"solc-macosx-amd64-v0.8.3+commit.8d00100c","0.8.4":"solc-macosx-amd64-v0.8.4+commit.c7e474f2","0.8.5":"solc-macosx-amd64-v0.8.5+commit.a4f2e591","0.8.6":"solc-macosx-amd64-v0.8.6+commit.11564f7e","0.8.7":"solc-macosx-amd64-v0.8.7+commit.e28d00a7","0.8.8":"solc-macosx-amd64-v0.8.8+commit.dddeac2f","0.8.9":"solc-macosx-amd64-v0.8.9+commit.e5eed63a","0.8.10":"solc-macosx-amd64-v0.8.10+commit.fc410830","0.8.11":"solc-macosx-amd64-v0.8.11+commit.d7f03943","0.8.12":"solc-macosx-amd64-v0.8.12+commit.f00d7308","0.8.13":"solc-macosx-amd64-v0.8.13+commit.abaa5c0e"}}"#;
    
    
    opened by mattsse 1
  • while installing anvil on MacOS, svm gives Reqwest errors

    while installing anvil on MacOS, svm gives Reqwest errors

    while following instructions to install anvil and foundry:

    image

    I get the following error:

    % cargo install --path ./anvil --bins --locked --force
      Installing anvil v0.1.0
        Updating crates.io index
    warning: package `blake2 v0.10.4` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
    warning: package `cpufeatures v0.2.2` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
    warning: package `ecdsa v0.14.3` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
    warning: package `fastrlp-derive v0.1.1` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
    warning: package `plotters v0.3.2` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
       Compiling svm-rs-builds v0.1.8
    error: failed to run custom build command for `svm-rs-builds v0.1.8`
    
    Caused by:
      process didn't exit successfully: `~/foundry/target/release/build/svm-rs-builds-d4598cfda6d3f928/build-script-build` (exit status: 101)
      --- stderr
      thread 'main' panicked at 'Failed to fetch releases: ReqwestError(reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("github.com")), port: None, path: "/roynalnaruto/solc-builds/raw/ff4ea8a7bbde4488428de69f2c40a7fc56184f5e/macosx/aarch64/list.json", query: None, fragment: None }, source: TimedOut })', 
    
    opened by bout3fiddy 4
  • Add support for Android Termux

    Add support for Android Termux

    I want to use foundry on Android for smart contract development, but it fails to build. After some digging it turns out to be svm-rs not supporting Android.

    platform::platform() returns Unsupported.

    env::consts::OS = "android"
    env::consts::ARCH = "aarch64"
    
    opened by xJonathanLEI 3
Owner
Rohit Narurkar
Aspiring Rustacean | Bridging chains @renproject | Exploring Zero-knowledge Proofs
Rohit Narurkar
A little bit fast and modern Ruby version manager written in Rust

A little bit fast and modern Ruby version manager written in Rust Features Pure Rust implementation not using ruby-build Cross-platform support (macOS

Takayuki Maeda 510 Jan 5, 2023
Fast and simple PHP version manager written in rust

[WIP] phpup (PHP-up): Fast and Simple PHP version manager ⚡ Fast and simple PHP version manager, written in rust Features No requirements for system P

null 27 Dec 25, 2022
Totally Speedy Transmute (TST) is a library providing a small, performance oriented, safe version of std::mem::transmute

Totally Speedy Transmute An evil spiritual successor to Totally Safe Transmute What is it? Totally Speedy Transmute (TST) is a library providing a sma

John Schmidt 19 Jun 7, 2022
A Rust driver for the Arm Generic Interrupt Controller version 3 or 4 (GICv3 and GICv4).

Arm Generic Interrupt Controller driver This crate provides a Rust driver for the Arm Generic Interrupt Controller version 3 or 4 (GICv3 and GICv4). C

Google 7 Apr 17, 2023
A rust-version of NVIDIA BlueField DOCA kit.

Rust-DOCA Rust API wrapper for the NVIDIA DOCA SDK. The NVIDIA DOCA SDK enables developers to rapidly create applications and services on top of NVIDI

null 4 Jun 15, 2023
The official zeta compiler

Torq What makes Torq the goto language for creating CLI's? Smaller Executables Inbuilt argument and flag parser Your code will work anywhere in any OS

ZetaLang 2 Nov 24, 2021
dm-jitaux is a Rust-based JIT compiler using modified auxtools, dmasm and Inkwell LLVM wrapper for boosting Byond DM performance without any hassle!

dm-jitaux is a Rust-based JIT compiler using modified auxtools, dmasm and Inkwell LLVM wrapper for boosting Byond DM performance without any hassle (such as rewriting/refactroing your DM code).

SS220 20 Dec 13, 2022
The nightly_crimes!{} macro commits horrible crimes to allow you to enable nightly features on the stable compiler.

The nightly_crimes!{} macro commits horrible crimes to allow you to enable nightly features on the stable compiler.

Mara Bos 151 Dec 16, 2022
An example of Brainf*** JIT-compiler with only the standard library.

jit-compiler An example of Brainf*** JIT-compiler with only the standard library. Prerequisite Rust(1.56.0-nightly or later, but it must work kind of

Akihito KIRISAKI 18 Jan 22, 2022
A compiler for the esoteric language ℂ.

The ℂ Programming Language It's a language where the only types are "complex number" and "matrix of complex numbers". In particular, this means you ca

Eleanor McMurtry 24 Jul 15, 2022
A compiler for a language representing plonk circuits

Plang A language representing PLONK circuits. Compiler This repository contains a compiler for a language representing PLONK circuits. It allows circu

Dusk Network 1 Nov 6, 2021
A fusion of OTP lib/dialyzer + lib/compiler for regular Erlang with type inference

Typed ERLC The Problem I have a dream, that one day there will be an Erlang compiler, which will generate high quality type-correct code from deduced

Dmytro Lytovchenko 35 Sep 5, 2022
Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when developing Radix blueprints.

Scrypto Static Types Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when

null 7 Aug 5, 2022
JIT compiler and runtime for a toy language, using Cranelift

Hello! This is a simple demo that JIT-compiles a toy language, using Cranelift. It uses the new JIT interface in development here. JIT takes care of m

Bytecode Alliance 468 Jan 7, 2023
An optimising Brainf*ck to x86-64 assembly compiler written in Rust

brainfrsk 2 An optimising Brainf*ck to x86-64 assembly compiler. This compiler can produce optimised binaries for macOS (Sytem V calling convention) b

Adam Soutar 1 Feb 20, 2022
Compiler from a lisp-like language to mlog

slimlog slimlog compiles a lisp-like language to mlog Architecture slimlog is divided into three distinct parts Parser Parses the source file Compiler

The Potato Chronicler 6 May 7, 2022
Compiler & Interpreter for the (rather new and very experimental) Y programming language.

Y Lang Why would anyone build a new (and rather experimental) language with no real world use case. Design Y (pronounced as why) is based on the idea

Louis Meyer 8 Mar 5, 2023
Cargo - The Rust package manager

Cargo downloads your Rust project’s dependencies and compiles your project.

The Rust Programming Language 9.5k Jan 4, 2023
basic multiple package manager

baka basic multiple package manager Docs Env baka_root_setting Windows: %USERPROFILE%/.baka/config Linux, Mac: $HOME/.baka/config baka_plugins (Just u

null 8 Dec 29, 2021