{"_id":"@ark-us/hardhat-yul","_rev":"2-a9b88a301eeff05fbe56df91fdcb2508","name":"@ark-us/hardhat-yul","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.1":{"name":"@ark-us/hardhat-yul","version":"2.0.1","description":"Hardhat plugin to develop smart contracts in Yul","repository":{"type":"git","url":"https://github.com/nomiclabs/hardhat.git"},"homepage":"https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-vyper","author":{"name":"Nomic Labs LLC"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","yul"],"scripts":{"lint":"yarn prettier --check && yarn eslint","lint:fix":"yarn prettier --write && yarn eslint --fix","eslint":"eslint 'src/**/*.ts' 'test/**/*.ts'","prettier":"prettier \"**/*.{js,md,json}\"","test":"mocha --recursive \"test/**/*.ts\" --exit","build":"tsc --build .","clean":"rimraf dist"},"dependencies":{"@nomiclabs/hardhat-docker":"^2.0.0","fs-extra":"^7.0.1","glob":"^7.1.3","solpp":"^0.10.1"},"devDependencies":{"@types/chai":"^4.2.0","@types/fs-extra":"^5.1.0","@types/glob":"^7.1.1","@types/mocha":"^5.2.6","@types/node":"^10.17.24","@typescript-eslint/eslint-plugin":"4.29.2","@typescript-eslint/parser":"4.29.2","chai":"^4.2.0","eslint":"^7.29.0","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.24.1","eslint-plugin-prettier":"3.4.0","hardhat":"^2.0.0","mocha":"^7.1.2","prettier":"2.3.2","rimraf":"^3.0.2","ts-node":"^8.1.0","typescript":"~4.0.3"},"peerDependencies":{"hardhat":"^2.0.0"},"publishConfig":{"access":"public"},"licenseText":"MIT License\n\nCopyright (c) 2021 ControlCplusControlV\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@ark-us/hardhat-yul@2.0.1","dist":{"shasum":"77938a0e2aadc59ed8ae4275ba3e1348141c5afe","integrity":"sha512-Kavwru61VbFCJObKW+TN1uwzwgyJ+vCvz4CZQ6KPDt6nDd0Izjbx/s01By34irzR2y4QMaYNscMo/tWhdwD1Jw==","tarball":"https://registry.npmjs.org/@ark-us/hardhat-yul/-/hardhat-yul-2.0.1.tgz","fileCount":21,"unpackedSize":16230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzF38CRA9TVsSAnZWagAA4P8P/j1A3T17vUbYHh9Y/VUI\n732HzXZL2ucV4sWp7MW6Zh8Et8bglcyspMHhSee+OnJNoH3spdE90KZmMcGs\nThlL71D7gAUoTmn4PY9AEai4IrybKvfz6ENbWGwCQDD+QAI2FTP5EhXjftbP\n9nO1hd1Jgi8k7ZnR3E/Kx5+677mAZgTd13Zfj/maIXenrlGlBCwoDheUi+9P\n0LjVIyjKSO2Pm3glJsxTCZ9myv10h55oolnyb1fHppuA/Y7GXuYtU+Ojvdym\n5RDPWxzMtD/TWnvJ3TSxSun/siHufDKufpKiGi6PPmy/KcSU1PUBHBeSqu+y\nkp+EXpFnGB74yK1U2UUisNx5FtjWhmI/ChYVZxpbbjoI9WqwrA72DwR5cGxX\n1mbSP9NYf+pJ4TTuiqZE5L9lSVSt5F5JNrQ4Sgh/SK+r3fb4+maSAG9dLE9f\nNRFu9AAdIk/hH+a388H9O6V+Aje8W0xAFXoSKzIrK5oItWpb8oWtC0YRD4fQ\nERgpBbxEoKx7DtdJO8D4Mvrqh5YTIKyviAU9MCfMDehNFq1D4NDf8Nh1Sn0s\nM3CgVbVq0bsSci2FX3s72x4tLxBADu/t/n0RZv5l6pa3tsyVspy5QW1MvD6f\nms3r9m440Zt/ONzQ+6vXh8UZM5s6A9jNJRhzOisbZjadVLZmuGcQvXRvwIaN\nXwvy\r\n=hHIq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAitlIltgJXlWU9x7A5JxKlOY7eOTi8RsXk29Bil7IYwIgGU0mxw6t3XJoBB3tqCRRFKw6Dex//7yhMoZ5CQZVAMM="}]},"_npmUser":{"name":"loredanacirstea","email":"loredana.cirstea@gmail.com"},"directories":{},"maintainers":[{"name":"loredanacirstea","email":"loredana.cirstea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hardhat-yul_2.0.1_1636547827466_0.0810887105850242"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-10T12:37:07.415Z","2.0.1":"2021-11-10T12:37:07.641Z","modified":"2022-04-04T15:28:33.927Z"},"maintainers":[{"name":"loredanacirstea","email":"loredana.cirstea@gmail.com"}],"description":"Hardhat plugin to develop smart contracts in Yul","homepage":"https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-vyper","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","yul"],"repository":{"type":"git","url":"https://github.com/nomiclabs/hardhat.git"},"author":{"name":"Nomic Labs LLC"},"license":"MIT","readme":"\n# Yul and Yul+ Hardhat Plugin\n\nThis a plugin for hardhat that allows the compilation of .yul and .yulp files. They are compiled into solc artifacts (Thanks to Yul+'s sig\"\" function) and are mostly identical to work with from there. Its important to note this plugin is still very much in the beta, and artifacts may need to cleared after each compile. Some changes must be made to the config file as well to get it working\n\n## Setting up a Yul+ Hardhat Project\n\nFirst run\n```\nnpx hardhat init\n```\n\nand create a new typescript project.\n\nNext, edit your tsconfig.ts file and add the following compiler options\n```\n    \"allowJs\": true,\n    \"noImplicitAny\": false\n```\nNext, clone this repo and put it all in a \"Plugin Folder\", then drop this folder into the root of your project directory.\n\nThen, in your hardhatconfig.ts file, add \n```\nimport \"./Plugin/src\";\n```\n\nNow you have a fully setup Hardhat Yul+ Project!\n\n## Quick debugging\n\nYou may need to install some js packages, namely \"solc\" and \"yulp\", however a quick npm install will fix this\n\n## Why Yul+?\n\nYul+ is an amazing language that brings the efficiency gains of Yul by allowing explicit memory control, with features that increase ease of use, and a sig\"\" function allowing the generate ABI to be identical to that of a Solidity Contract. Yul+ was initially developed by Fuel Labs as they built out their l2 platform, and showed some impressive gas reductions, dropping the cost of the ENS by around 20%!\n\nUnderstanding the intermediate language of Yul as well will also improve the efficiency of some segments of Solidity you write with the inline assembly options.\n\n## Community\n\nI hope to build out more of the Yul+ Community, I will be setting up more later, but as for now feel free to add a PR to this plugin, or add to the tag on Github to increase the number of resources avaliable. I will also be making a tutorial series for people looking to learn the Yul+ language.\n","readmeFilename":"README.md"}