{"id":15688102,"url":"https://github.com/kevinbluer/bento","last_synced_at":"2025-09-03T00:41:11.374Z","repository":{"id":146484262,"uuid":"308740428","full_name":"kevinbluer/bento","owner":"kevinbluer","description":"🍱 Truffle box that provides examples of the various ways in which you can extend Truffle's functionality through exec scripts, plugins, etc.","archived":false,"fork":false,"pushed_at":"2020-11-05T18:49:59.000Z","size":3757,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-26T04:22:44.536Z","etag":null,"topics":["blockchain","extensions","plugins","scripts","truffle-framework"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinbluer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-10-30T20:46:20.000Z","updated_at":"2022-02-05T08:11:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b004f8d-ac4e-47a0-b741-3b6ae87c5ed0","html_url":"https://github.com/kevinbluer/bento","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbluer%2Fbento","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbluer%2Fbento/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbluer%2Fbento/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbluer%2Fbento/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinbluer","download_url":"https://codeload.github.com/kevinbluer/bento/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243025479,"owners_count":20223806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","extensions","plugins","scripts","truffle-framework"],"created_at":"2024-10-03T17:54:45.935Z","updated_at":"2025-03-11T11:32:18.185Z","avatar_url":"https://github.com/kevinbluer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](box-img-sm.png)\n\n# Bento 🍱\n\nA Truffle box that explores the various ways in which you can extend Truffle's functionality through exec scripts, plugins, etc.\n\n\u003e Warning - Copious emojis have been used in the preparation of this box \n\n## Executable Scripts 🍣\n\nSimple example...\n\n```\n\u003e truffle develop\ntruffle(develop)\u003e exec scripts/example.js\n```\n\nInteracting with an existing chain...\n\n```\n\u003e truffle develop\ntruffle(develop)\u003e exec scripts/bento.js\n```\n\n## Truffle Plugin 🍤\n\nSingle command...\n\n```\n\u003e cd plugin\n\u003e npm link\n\u003e cd ..\n\u003e npm link /path/to/project/plugin\n\u003e truffle run boooom\n```\n\n\u003e Note that `npm link`-ing is useful while developing the plugin as any changes are immediately reflected\n\nCommand with parameters...\n\n```\n\u003e truffle run boooom liftoff\n\u003e truffle run boooom landing\n\u003e truffle run boooom landing https://moon.io\n```\n\nA more complete example of a plugin is available [here](https://github.com/kevinbluer/truffle-plugin-caramel).\n\n## Truffle Box 🥒\n\nTo package a repository you'll need the following...\n\n- [truffle-box.json](truffle-box.json)\n- [box-img-lg.png](box-img-lg.png)\n- [box-img-sm.png](box-img-sm.png)\n\nAs you may have spotted, this is repository is actually already a box meaning you could install it via the following:\n\n```\n\u003e truffle unbox kevinbluer/bento\n```\n\nBoxes can be include plugins pre-installed. For example, this [plugin](https://github.com/kevinbluer/truffle-plugin-caramel) is added as a dependency, meaning you can use it immediately (although you'll need to add your [Pinata](https://pinata.cloud/) details first).\n\n```\n\u003e truffle run caramel list\n```\n\n## Alternatives Approaches 🦞\n\nAnother example of an means of extending Truffle's functionality is the [OpenZeppelin Upgrades](https://docs.openzeppelin.com/upgrades-plugins/1.x/) plugin. This is different to the Truffle Plugins system mention above in that's more of a framework and pattern for both deploying and managing upgradable contracts.\n\nTry it yourself...\n\n```\n\u003e truffle develop\ntruffle(develop)\u003e compile --all\ntruffle(develop)\u003e migrate --to 3\ntruffle(develop)\u003e i = await BentoBase.deployed()\ntruffle(develop)\u003e i.getValue() \ntruffle(develop)\u003e i.setValue(888) // 🚫\ntruffle(develop)\u003e migrate --f 4\ntruffle(develop)\u003e i = await BentoUpgrade.deployed()\ntruffle(develop)\u003e i.setValue(888)\n```\n\n## Other\n\n- `npx` is your friend :)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbluer%2Fbento","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinbluer%2Fbento","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbluer%2Fbento/lists"}