{"_id":"@acdi/efem-crowdfunding","_rev":"15-1dd0ec2bffd15ee6457979eaf96b0ad0","name":"@acdi/efem-crowdfunding","dist-tags":{"latest":"1.0.0-alfa.9"},"versions":{"1.0.0-alfa.5":{"name":"@acdi/efem-crowdfunding","version":"1.0.0-alfa.5","description":"Crowdfunding Smart Contract de El Futuro está en el Monte","main":"index.js","scripts":{"build-app":"cd app && npm install && cd ..","compile":"buidler compile --force","test":"buidler test --network buidlerevm","start":"buidler start","test:rsk":"buidler test --network rsk","deploy:rsk":"buidler deploy --network rsk","publish:major":"buidler publish major","publish:minor":"buidler publish minor","publish:patch":"buidler publish patch"},"dependencies":{"@aragon/apps-vault":"^4.1.0","@aragon/os":"^4.4.0","bn.js":"^5.1.2","buidler-deploy":"^0.4.2","madr":"^2.1.2"},"devDependencies":{"@aragon/buidler-aragon":"^0.2.0","@aragon/contract-test-helpers":"0.0.1","@aragon/test-helpers":"^2.1.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","web3":"^1.2.0"},"_id":"@acdi/efem-crowdfunding@1.0.0-alfa.5","_nodeVersion":"12.16.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-jL1ZV9Cg7sOWPXleFS4Qfywn7Dh+NHlexQgGOywPPyOQObuNfhiz1l6YO6WhT0+oNf1NMp2bbZ1yt9dLHTYdEQ==","shasum":"11a00753f5dfcdc2981317fa1fc4b6c927966727","tarball":"https://registry.npmjs.org/@acdi/efem-crowdfunding/-/efem-crowdfunding-1.0.0-alfa.5.tgz","fileCount":181,"unpackedSize":22569637,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEu9TCRA9TVsSAnZWagAAhaoP/1RZv7UEYefxaivr2C+8\nrRB025ho7iry6raEbFj3JS1JxoIGo0V44SecXJgENL5yG72lFBucSmaGy3un\n82zpR20hhOpwN6T4bdWYIXL0p0HWl1rUTuL35+hbnYM/zalUEgUZGiHwTico\nqedFTLwjZ1V2zzntvd80tGxGvHh+bBiZpzAR7bqWdF6hDoiXExLzGfR+pLeH\n5Nsgr+Re+3faKhY5FaidgRjxrKpD+6PvopmPz/KB6cdnuj4xANyv8+KzaQjN\nkcriyGR6uRvj96M63mZzbb0zEW6HUT0/awZTttnse03116pzr5yQbhUmZGk7\nPeowERMzAnXYw+IPeShOoOxGz3ZjPQOomZL4K65XphcN+rhdoK7zqeJnFtNY\njQByac4GEcIyvnkDW9oAgKCgnkhO1H6u0H8v6b5fqJLNx4Cag4Tu4VEQw0dt\naabiFyvbx+DQwATGR5S1AxAiRNiJeWDLJX7wg0oir4eg3qM3+uq7ESV6W9jT\nCP4xrcleYhGi5D3pfajmicimy290Wwv/EaRE21XeOo+QmVEO8DCTkGyIjrQI\ne0LGpXaxqdiiTjc4I9ggBrRDZJlY4nzdl1jSPqvotIcMGwRvCDFsLuks/hHR\ntxN2NSOmsiMnc01nHVxwgH3/4et2b+E4hxRxBOpfQVABO0GWbdj4yMZUmp1j\nM9j/\r\n=3MHk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9Mj/9D5rFWzIHmPeI37nDApZ6Q0Z1DNM7Q5HRXam0jQIgMnF+wJtXcb0VVsky58nuClXrqL/WlWKcf1paQ0mtcSo="}]},"maintainers":[{"name":"mcoronel","email":"mcoronel@acdi.org.ar"}],"_npmUser":{"name":"mcoronel","email":"mcoronel@acdi.org.ar"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/efem-crowdfunding_1.0.0-alfa.5_1595076434503_0.27050661588397595"},"_hasShrinkwrap":false},"1.0.0-alfa.6":{"name":"@acdi/efem-crowdfunding","version":"1.0.0-alfa.6","description":"Crowdfunding Smart Contract de El Futuro está en el Monte","main":"index.js","scripts":{"build-app":"cd app && npm install && cd ..","compile":"buidler compile --force","test":"buidler test --network buidlerevm","start":"buidler start","test:rsk":"buidler test --network rsk","deploy:rsk":"buidler deploy --network rsk","publish:major":"buidler publish major","publish:minor":"buidler publish minor","publish:patch":"buidler publish patch"},"dependencies":{"@aragon/apps-vault":"^4.1.0","@aragon/os":"^4.4.0","bn.js":"^5.1.2","buidler-deploy":"^0.4.2","madr":"^2.1.2"},"devDependencies":{"@aragon/buidler-aragon":"^0.2.0","@aragon/contract-test-helpers":"0.0.1","@aragon/test-helpers":"^2.1.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","web3":"^1.2.0"},"_id":"@acdi/efem-crowdfunding@1.0.0-alfa.6","_nodeVersion":"12.16.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-SXMmXwEjUS3JYT4RLHXyDI4MivvFSVO5RuntdGRdNJX6OYp9ZCrz9s7iq2wdRZzHXeOdMwWF65ea30wrPPTZxg==","shasum":"27386837399c6f63fddce4d48feadfe9672cf770","tarball":"https://registry.npmjs.org/@acdi/efem-crowdfunding/-/efem-crowdfunding-1.0.0-alfa.6.tgz","fileCount":181,"unpackedSize":22569634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEvm4CRA9TVsSAnZWagAAw6YP/A8oi1z/wnG7nR4Kj3QS\nA4Ykhn+p7ohnDJcZ1ESYnFLu1PuMrmiCFMSnJCT/F5eh5X4lUUunrk5yruq/\nRe0i6jbpBhWnOxwdHaqT82Gih6AakeheAJn5jWrnOt/w5FWruF+OWcgAfLu1\nmhjAVYcjQztJgdA1zj+4yUcbkRQNlB38lR2lYTcIA3BnvS87ozZRFJqj8fcU\n7Gd3RwmlouWCimtM/TdQlnLGcNpiqcFoM7dICt2HdtpoGhOtm8VSUPHdPlib\nuRnAV4tWiNgMoBCMWHES4y3hD90pHjSwOf4NADulXmB6qJ14ywB8rRfcJ0YC\n/kgGInTdJivJZ6QPLSWUgAGaPr0ElLzf6+hBs0nagpMT4zwhZduAFGnGxRiU\njNvMMHe9SspRxAZo+Zm/MfLd8YP8Cm5TERaRWb8+4wzLMsuk0q4XDZri57+l\nkCz+wuUDUXhfl+iZ6kSAF/bDIFJMO6T4C8grOkqv06VKpcJxcbc1WlB4mdcf\nsCqXFBmcxW4KuAfu5WMQyCwpeTdYMRoKaQaA15oavxqb+VAlvZN2/CeamJ8n\nlTJFHuo8GTsV7mlKLiIsE+LuAZKYK+tA/eOWRnFZaqIQE7eIiD/DbfJOVoOu\nHJLlJRcyc+CWtAjxocznnzzQ/yH9D39tXcBNIfLkuFe7roVdDO16oLdoKj54\nncwW\r\n=S1p4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEtlfxfy1TWQ08CN0H41F9BScZVWPDHYm0GHjBGlCnUoAiEAmjvyLocx98ZdAqdg8NUzQhnamvOOsyyGtKC1hzSIy5g="}]},"maintainers":[{"name":"mcoronel","email":"mcoronel@acdi.org.ar"}],"_npmUser":{"name":"mcoronel","email":"mcoronel@acdi.org.ar"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/efem-crowdfunding_1.0.0-alfa.6_1595079095766_0.7289477086710592"},"_hasShrinkwrap":false},"1.0.0-alfa.7":{"name":"@acdi/efem-crowdfunding","version":"1.0.0-alfa.7","description":"Crowdfunding Smart Contract de El Futuro está en el Monte","main":"index.js","scripts":{"build-app":"cd app && npm install && cd ..","compile":"buidler compile --force","test":"buidler test --network buidlerevm","start":"buidler start","test:rsk":"buidler test --network rsk","deploy:rsk":"buidler deploy --network rsk","publish:major":"buidler publish major","publish:minor":"buidler publish minor","publish:patch":"buidler publish patch"},"dependencies":{"@aragon/apps-vault":"^4.1.0","@aragon/os":"^4.4.0","bn.js":"^5.1.2","buidler-deploy":"^0.4.2","madr":"^2.1.2"},"devDependencies":{"@aragon/buidler-aragon":"^0.2.0","@aragon/contract-test-helpers":"0.0.1","@aragon/test-helpers":"^2.1.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","web3":"^1.2.0"},"_id":"@acdi/efem-crowdfunding@1.0.0-alfa.7","_nodeVersion":"12.16.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Q0U/OEHtb7gV7PkPFt2Mo0TD8ezU9yi8zTXVNc5gs3VQBdBHvg2XlbTi25JHpoGkdslRitC+vPb8mKgDsBU1qQ==","shasum":"ca9d11d49da5a5fb96c146e0fda243e96e4301b2","tarball":"https://registry.npmjs.org/@acdi/efem-crowdfunding/-/efem-crowdfunding-1.0.0-alfa.7.tgz","fileCount":182,"unpackedSize":22570003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEw+nCRA9TVsSAnZWagAAbGAP/jSK+Q+AnHK4wfk71uY5\nTf8moAOaNuGPke2jAsWIJyIR/X3UGK5VlVGN5ag++PMmyIHjk8F6jD+XR60I\njL7Lg3ievLIKcIAyMhlhUOzFOrSvG/Hrumpnlt/AfNdER3qTa+hEN8uTrZDP\nDTe6E1pOabzXmshmvR/Ry9jvt2ijswzqOGmbflLUM8oNhduHBOfuDZNMAF5y\nMPayIpjjAk8aNHK7+L2V1dJe3uIjNF/1ardBbhApACI8T5fSTJH137iEXiXZ\nEFtj0GW5cO51MOZMMNv8nwTTQ/V33gyQmtuRB+FnJHiKUIpllv/BkXbNdiUF\n6Fr/8dwObK4//4+4QcTCV9QCTUJC2JfyHnvtdQ1zVmlQUlafMvNQQgP3rxa8\nV0OkCHUNrooWaaXKNN+MoH0E56YfeTvO09tL1Qg3xIU4fKZBmCCEBzShGCkS\nBcOXrz8B/u72mn1j1IYubKQDVph7zeNqVDfrka0+Y7PebMEFLpjmrkazegA2\nMWIgSAqJXxXmOsxiGOQo5ENkPNiwGdynOv+xfi6Vh1Lu+sP9IkWxjXVUSP7y\nwpxuHIlUPHDoNwTikvtYTLSl+lyRTOFap5G8I8Zppwd5wPSa3zYQuTRlTiHw\nwkSpELqfp8TbgzffcPc1/tdRlfyqlVDCpoOqGQcmUxP0aZIAvz3Epx2RFgou\n4ed0\r\n=gJXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1qUc9OWQ2uhJMptCaHDlxuWCqyJv56Obi9wCQhGtuCAIgIMRKGnZHnSJmAOEG+CMRs4RDJPlEg8zB7DdnnX+TwcQ="}]},"maintainers":[{"email":"jonatanduttweiler@gmail.com","name":"jduttweiler"},{"email":"mcoronel@acdi.org.ar","name":"mcoronel"}],"_npmUser":{"name":"mcoronel","email":"mcoronel@acdi.org.ar"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/efem-crowdfunding_1.0.0-alfa.7_1595084710563_0.8960687671362202"},"_hasShrinkwrap":false},"1.0.0-alfa.8":{"name":"@acdi/efem-crowdfunding","version":"1.0.0-alfa.8","description":"Crowdfunding Smart Contract de El Futuro está en el Monte","main":"index.js","scripts":{"build-app":"cd app && npm install && cd ..","compile":"buidler compile --force","test":"buidler test --network buidlerevm","start":"buidler start","test:rsk":"buidler test --network rsk","deploy:rsk":"buidler deploy --network rsk","publish:major":"buidler publish major","publish:minor":"buidler publish minor","publish:patch":"buidler publish patch"},"dependencies":{"@aragon/apps-vault":"^4.1.0","@aragon/os":"^4.4.0","bn.js":"^5.1.2","buidler-deploy":"^0.4.2","madr":"^2.1.2","eth-contract-class":"^0.0.12"},"devDependencies":{"@aragon/buidler-aragon":"^0.2.0","@aragon/contract-test-helpers":"0.0.1","@aragon/test-helpers":"^2.1.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","web3":"^1.2.0"},"_id":"@acdi/efem-crowdfunding@1.0.0-alfa.8","_nodeVersion":"12.16.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-bVRsCOe5oo/Vv/euOG2oGOK6xMcYrBt0kfPme9+ZuJNoDy+GlnOJYVgHclN/qU7gogdO9p38ke61UgcG+w5ifQ==","shasum":"e5a21003363121642a2722e82f0453baa775f5bf","tarball":"https://registry.npmjs.org/@acdi/efem-crowdfunding/-/efem-crowdfunding-1.0.0-alfa.8.tgz","fileCount":182,"unpackedSize":22569998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFFGzCRA9TVsSAnZWagAAMzcP/jLOOkbvZt4fc+1LZeyO\n09c3sReQEevlYnvQfUpjh6JUcwTufn0imYP/yNXeDQ+Cxga7sjZI2jGpGvGu\nKfD/wwr0DTSmCYzNj2fuIMHhCjHj2xqpZpV4DwBd3AI1W7M0TDJlL/RNanfL\nQg3Ix1hCHiuP2rfxn1JMzjLqiuOcTZ2DRQPHqjnJOLC1XfAxhLkgJ4rdFOuX\ngNx3YSdMe6uNcxGy7q7uQDqXJraggZTGMmP255npMLUwXXysPbcxoMi7tbpv\ncNpdE4rZ+xKWdgH8huVZ8MGLO0wzYi3WZtmyzrMG8Wdk2M/LxUtJ6eRkifzd\nlVQUg5jtZJAIz14qBXO0L0T3fw8v9DqGRxEF7XU5CM8wXS73Z9f2zbX4RKKN\n2SFq0XtaQkNB4k7zV8EdieVkmmSZRz332wc+NwFRqc5Y6/szEPmNb2L8YJ/v\nbe/1knFAo9fWym8IShBBn56VouYmNJ8nZQjjVgyNXY91DBGbL9RGrSy7162n\nGwyXKNTInj0l/T0CDVm03oy813z/QQjTKykQ9V2h/meMJXz1PbrnCeFLfxRj\nr+h0miVdf87ZlYkIAH+4chgSJ0ICQtqXzlrplasFp92GUa6LTkfjuzNZuN3X\nDmqd4Z1XAciv2oCccEQjUhmldQUu5oaeYhyLPEFKghTof2Ce0jtejM3+xpHp\nIVln\r\n=1GpH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGT0VmBvaGBfSV2BxLnzFcqHmdM0c8+djFRfHjSyN/2QIhAObmLV5PHw1rAG6ZVLMyOa+ywL+GacwVbovx9YhGXnd2"}]},"maintainers":[{"email":"jonatanduttweiler@gmail.com","name":"jduttweiler"},{"email":"mcoronel@acdi.org.ar","name":"mcoronel"}],"_npmUser":{"name":"mcoronel","email":"mcoronel@acdi.org.ar"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/efem-crowdfunding_1.0.0-alfa.8_1595167155404_0.5330042023728141"},"_hasShrinkwrap":false},"1.0.0-alfa.9":{"name":"@acdi/efem-crowdfunding","version":"1.0.0-alfa.9","description":"Crowdfunding Smart Contract de El Futuro está en el Monte","main":"index.js","scripts":{"build-app":"cd app && npm install && cd ..","compile":"buidler compile --force","test":"buidler test --network buidlerevm","start":"buidler start","test:rsk":"buidler test --network rsk","deploy:rsk":"buidler deploy --network rsk","publish:major":"buidler publish major","publish:minor":"buidler publish minor","publish:patch":"buidler publish patch"},"dependencies":{"@aragon/apps-vault":"^4.1.0","@aragon/os":"^4.4.0","bn.js":"^5.1.2","buidler-deploy":"^0.4.2","madr":"^2.1.2","@acdi/eth-contract-class":"^1.0.0-alfa.1"},"devDependencies":{"@aragon/buidler-aragon":"^0.2.0","@aragon/contract-test-helpers":"0.0.1","@aragon/test-helpers":"^2.1.0","@nomiclabs/buidler":"^1.3.0","@nomiclabs/buidler-etherscan":"^1.3.0","@nomiclabs/buidler-truffle5":"^1.3.0","@nomiclabs/buidler-web3":"^1.3.0","abi-decoder":"^2.3.0","web3":"^1.2.0"},"_id":"@acdi/efem-crowdfunding@1.0.0-alfa.9","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-ind8iFQ6BjvS3yhIZD5lQrjelVQYZN+KklMtkMi3rbt3+T1+Yr/5i5BDuC49/WEsoXXnSRnEQ51csD0BRFJVyQ==","shasum":"aa7e3b1b4f6f9d851211f89bfff1e2f5b93c6cba","tarball":"https://registry.npmjs.org/@acdi/efem-crowdfunding/-/efem-crowdfunding-1.0.0-alfa.9.tgz","fileCount":182,"unpackedSize":22051641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNHEOCRA9TVsSAnZWagAAEQgP/0hXT5QH3jWQHE8C9tcq\nPUel9g4Iv0Pin8DpkhZJDfO7s8pa9s5g9L3t0yBF3bvD4m+c07m6iX9A8W8U\nhceLkgdDDcwgDtVerDYdqiByoY1bL0qdWyoEnVofkrK0ZPfRtAXDtR67RnKM\npCtDampoi2g3WmlNNpV5REoL9phrh+BYUU9E3KtiUKhbxp0y7pWqENCn3dFj\nJswI94Jl4kMqkLaZyL0c05hYVfVad4B3Cuy++9PLSqdFjMIGAgwqEG4cABF+\n2iSWFjhJgeev6NvNQ9nWZaICh5Zky8mCnCcz6abDa8SgKYCK+In7aGPLWJFF\nDfF9mTyAMbc5Yz9ZTXkUmVNkSyYK4iUsRvDvajSiD6XgVNHIE60zhglFFQsJ\nNeKFg8Wq6H6qE0cs1dib08cP9eWGUWaJ+fu86+dH0IhCpsqLWhZ50sEzZmcT\nNqZ8GrCoynRTiRkgnFe0oXJinnCaUy7KvBMwvHbB9QZbgkrSLg0WiFZsxfoN\nJ6uQsCxUKRazlxJ13VpvwWF8jYAPJ6nG5we/llemTlNoIdgr94p0bjMfXGAn\nk2/7hnH3ZsynLJvzwZiC3C9Kp+qgdUwQK7spV+cDa7TJ227BAreUleW57mPl\nSRmzjtqpYE9lmhDoy6yeBuqJ/S5HZACXqLSCA9qBypXm0CWc85N2upBxubab\nr2BW\r\n=lAkj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3z0KPD6RN5KRmuR/tMkRPYflFiJ7hz18JBsv+bB2aygIhAJBDG1ogk3DMmJH1CIKfY5hu1wJ67qvd5SFh4TJ4e2Gi"}]},"maintainers":[{"email":"jonatanduttweiler@gmail.com","name":"jduttweiler"},{"email":"mcoronel@acdi.org.ar","name":"mcoronel"}],"_npmUser":{"name":"mcoronel","email":"mcoronel@acdi.org.ar"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/efem-crowdfunding_1.0.0-alfa.9_1597272333791_0.31226180630790146"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-18T01:58:11.952Z","1.0.0-alfa1":"2020-07-18T01:58:12.334Z","modified":"2022-04-04T11:10:00.713Z","1.0.0-alfa2":"2020-07-18T12:06:17.043Z","1.0.0-alfa3":"2020-07-18T12:20:56.424Z","1.0.0-alfa4":"2020-07-18T12:22:41.312Z","1.0.0-alfa.5":"2020-07-18T12:47:14.778Z","1.0.0-alfa.6":"2020-07-18T13:31:36.012Z","1.0.0-alfa.7":"2020-07-18T15:05:10.780Z","1.0.0-alfa.8":"2020-07-19T13:59:15.603Z","1.0.0-alfa.9":"2020-08-12T22:45:34.017Z"},"maintainers":[{"email":"emanuelbanchio@gmail.com","name":"ebanchio"},{"email":"mcoronel@acdi.org.ar","name":"mcoronel"},{"email":"jonatanduttweiler@gmail.com","name":"jduttweiler"}],"description":"Crowdfunding Smart Contract de El Futuro está en el Monte","readme":"# Crowdfunding Smart Contract\r\n\r\nSmart contract de Crowdfunding.\r\n\r\nSe utiliza [Buidler](https://buidler.dev) como herramienta de ejecución de las tareas de compilación, testing y despliegue del smart contract.\r\n\r\nEn la sección [Architectural Decision Log](docs/adr/index.md) se encuentran los registros de decisiones de arquitectura que han sido tomadas.\r\n\r\n## Requisitos sobre sistema operativo\r\n\r\n### Windows\r\n\r\nInstalar Python.\r\n\r\n## Instalación de dependencias\r\n\r\nPrimero deben instalarse las dependencias del proyecto con el siguiente comando:\r\n\r\n```\r\nnpm install\r\n```\r\n\r\n## Compilación\r\n\r\nPara compilar el smart contract, debe ejecutarse el siguiente comando.\r\n\r\n```\r\nnpm run compile\r\n```\r\n\r\nSe requiere mantener reducido el bytecode generado por el smart contract para no superar la restricción [EIP 170](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-170.md). El siguiente comando mide la cantidad de bytes generados para cada contrato compilado.\r\n\r\n```\r\ngrep \\\"bytecode\\\" artifacts/* | awk '{print $1 \" \" length($3)/2}'\r\n```\r\n\r\n## Testing\r\n\r\nPara ejecutar los tests del smart contract, debe ejecutarse el siguiente comando.\r\n\r\n```\r\nnpm run test\r\n```\r\n\r\nLos test se ejecutan por defecto sobre la blockchain *buidlerevm*.\r\n\r\n## Publicar en NPM\r\n\r\nPara que el módulo quede públicamente accecible y pueda utilizarse por los demás módulos de la aplicación, es necesario publicar de la siguiente manera:\r\n\r\n```\r\nnpm login\r\nnpm publish --access public\r\n```\r\n\r\nEl módulo se publica con el scope de la organización **@acdi**.\r\n\r\n## Despliegue\r\n\r\nPara desplegar el smart contract sobre la blockchain de RSK, debe ejecutarse el siguiente comando con el nodo RSK accesible desde *http://localhost:4444*.\r\n\r\n```\r\nnpm run deploy:rsk\r\n```\r\n\r\nJunto con el smart contract de Crowdfunding se despliegan los smart contract de Aragon y librerías por lo que este proceso puede demandar algunos minutos.\r\n\r\nLas direcciones que aparecen en el log deben utilizarse para configurar la aplicación de Crowdfunding.\r\n\r\nAlgunas veces el script anterior falla al no encontrar algunos smart contracts de Aragon desplegados, por ejemplo, es posible encontrarse con el siguiente error: *Error: BDLR700: Artifact for contract \"Kernel\" not found.* En este caso ejecutamos ```npm start```. Esto último a menudo muestra algún error, pero lo que nos interesa es que despliegue los smart contracts faltantes. Una vez hecho esto volver a ejecutar ```npm run deploy:rsk```\r\n\r\n## Principios de desarrollo\r\n\r\nPara el desarrollo del smart contract se deben seguir los siguientes principios:\r\n\r\n- Seguir la [guía de estilos](https://solidity.readthedocs.io/en/v0.6.11/style-guide.html) de desarrollo de Solidity.\r\n- El orden los metodos debe ser: *external*, *public*, *internal* y *private*; Deben seguir un orden de relevancia.\r\n- Siempre que sea posible, el tratamiento sobre las entidades debe delegarse en las librerías para mantener el bytecode del smart contract reducido.\r\n- Sebe realizarse testing automático de las funcionalidades expuestas al exterior.\r\n\r\n## Running your app\r\n\r\nTo run the app in a browser with frontend and contract hot-reloading, simply run `npm start`.\r\n\r\n1. Add code quality tools, like JS and contract linting. You may also want to check existing [buidler plugins](https://buidler.dev/plugins/).\r\n2. Develop your [AragonApp contract](https://hack.aragon.org/docs/aragonos-building)\r\n3. Develop your [frontend](https://ui.aragon.org/getting-started/)\r\n4. [Publish](https://hack.aragon.org/docs/guides-publish)!\r\n\r\n## What's in this boilerplate?\r\n\r\n### npm Scripts\r\n\r\n- **postinstall**: Runs after installing dependencies.\r\n- **build-app**: Installs front end project (app/) dependencies.\r\n- **start** Runs your app inside a DAO.\r\n- **compile**: Compiles the smart contracts.\r\n- **test**: Runs tests for the contracts.\r\n- **publish:major**: Releases a major version to aragonPM.\r\n- **publish:minor**: Releases a minor version to aragonPM.\r\n- **publish:patch**: Releases a patch version to aragonPM.\r\n\r\n### Hooks\r\n\r\nThese hooks are called by the Aragon Buidler plugin during the start task's lifecycle. Use them to perform custom tasks at certain entry points of the development build process, like deploying a token before a proxy is initialized, etc.\r\n\r\nLink them to the main buidler configuration file (buidler.config.js) in the `aragon.hooks` property.\r\n\r\nAll hooks receive two parameters: 1) A params object that may contain other objects that pertain to the particular hook. 2) A \"bre\" or BuidlerRuntimeEnvironment object that contains environment objects like web3, Truffle artifacts, etc.\r\n\r\n```\r\n// Called before a dao is deployed.\r\npreDao: async ({ log }, { web3, artifacts }) => {},\r\n\r\n// Called after a dao is deployed.\r\npostDao: async ({ dao, _experimentalAppInstaller, log }, { web3, artifacts }) => {},\r\n\r\n// Called after the app's proxy is created, but before it's initialized.\r\npreInit: async ({ proxy, _experimentalAppInstaller, log  }, { web3, artifacts }) => {},\r\n\r\n// Called after the app's proxy is initialized.\r\npostInit: async ({ proxy, _experimentalAppInstaller, log  }, { web3, artifacts }) => {},\r\n\r\n// Called when the start task needs to know the app proxy's init parameters.\r\n// Must return an array with the proxy's init parameters.\r\ngetInitParams: async ({ log }, { web3, artifacts }) => {\r\n  return []\r\n}\r\n```\r\n\r\nIf you want an example of how to use these hooks, please see the [plugin's own tests for an example project](https://github.com/aragon/buidler-aragon/blob/master/test/projects/token-wrapper/scripts/hooks.js).\r\n\r\n## Structure\r\n\r\nThis boilerplate has the following structure:\r\n\r\n```md\r\nroot\r\n├── app\r\n├ ├── src\r\n├ └── package.json\r\n├── contracts\r\n├ └── CounterApp.sol\r\n├── test\r\n├── arapp.json\r\n├── manifest.json\r\n├── buidler.config.js\r\n└── package.json\r\n```\r\n\r\n- **app**: Frontend folder. Completely encapsulated: has its own package.json and dependencies.\r\n  - **src**: Source files.\r\n  - [**package.json**](https://docs.npmjs.com/creating-a-package-json-file): Frontend npm configuration file.\r\n- **contracts**: Smart contracts folder.\r\n  - `CounterApp.sol`: AragonApp contract example.\r\n- **test**: Tests folder.\r\n- [**arapp.json**](https://hack.aragon.org/docs/cli-global-confg#the-arappjson-file): Aragon configuration file. Includes Aragon-specific metadata for your app.\r\n- [**manifest.json**](https://hack.aragon.org/docs/cli-global-confg#the-manifestjson-file): Aragon configuration file. Includes web-specific configuration.\r\n- [**buidler.config.js**](https://buidler.dev/config/): Buidler configuration file.\r\n- [**package.json**](https://docs.npmjs.com/creating-a-package-json-file): Main npm configuration file.\r\n\r\n### Libraries\r\n\r\n- [**@aragon/os**](https://github.com/aragon/aragonos): AragonApp smart contract interfaces.\r\n- [**@aragon/api**](https://github.com/aragon/aragon.js/tree/master/packages/aragon-api): Aragon client application API.\r\n- [**@aragon/ui**](https://github.com/aragon/aragon-ui): Aragon UI components (in React).\r\n- [**@aragon/buidler-aragon**](https://github.com/aragon/buidler-aragon): Aragon Buidler plugin.","readmeFilename":"README.md"}