{"id":26794836,"url":"https://github.com/blockclusterapp/proxy-contract","last_synced_at":"2026-04-27T23:35:11.446Z","repository":{"id":81352048,"uuid":"147402199","full_name":"BlockClusterApp/proxy-contract","owner":"BlockClusterApp","description":"A minimal Dynamo Proxy Contract Boilerplate","archived":false,"fork":false,"pushed_at":"2018-09-06T12:11:17.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T17:34:43.095Z","etag":null,"topics":["blockcluster","mocha-chai","solidity","truffle-framework","web3js"],"latest_commit_sha":null,"homepage":"https://www.blockcluster.io","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/BlockClusterApp.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":"2018-09-04T19:30:10.000Z","updated_at":"2024-07-09T09:51:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"95087c0d-ac3d-446f-a972-90305ba7d6c7","html_url":"https://github.com/BlockClusterApp/proxy-contract","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BlockClusterApp/proxy-contract","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockClusterApp%2Fproxy-contract","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockClusterApp%2Fproxy-contract/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockClusterApp%2Fproxy-contract/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockClusterApp%2Fproxy-contract/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlockClusterApp","download_url":"https://codeload.github.com/BlockClusterApp/proxy-contract/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockClusterApp%2Fproxy-contract/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32360113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"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":["blockcluster","mocha-chai","solidity","truffle-framework","web3js"],"created_at":"2025-03-29T17:30:07.294Z","updated_at":"2026-04-27T23:35:11.439Z","avatar_url":"https://github.com/BlockClusterApp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A minimal, beginner friendly boilerplate for writing dynamo proxy contracts in BlockCluster platform.\n\n# Proxy Contract\n\nA proxy contract in dynamo is used to implement custom logic such as advanced permissions, implementing new actors, calculating or conditioning assets metadata and so on. \n\nIt's useful when you need more customized and advanced operations over Dynamo's native assets and streams protocol. For example: if you have an asset and want to give two different members the ability to modify the asset then you would require to write a proxy contract as native set of operations over assets doesn't provide this feature.  \n\n### Configuring\n\nTo run this truffle project you need to configure your networks smart contract addresses and replace the node URL with your's node URL.\n\nFirst of all create a new network on [app.blockcluster.io](http://app.blockcluster.io/login). The you will see this control panel for your network:\n\n![Screen Shot 2018-09-06 at 12.52.48 AM](https://s22.postimg.cc/c363yy9s1/Screen_Shot_2018-09-06_at_12.52.48_AM.png)\n\nThen click on \u003cu\u003eNode Info and Settings\u003c/u\u003e option to view your dynamo node's network and contracts information. You would see a screen similar to this:\n\n![Screen Shot 2018-09-06 at 12.54.43 AM](https://s22.postimg.cc/itml8d22p/Screen_Shot_2018-09-06_at_12.54.43_AM.png)\n\nNow copy the assets, streams and atomic swap contracts addresses and replace with the dummy ones provided in the [contracts/Example.sol](https://github.com/BlockClusterApp/proxy-contract/blob/master/contracts/Example.sol) file.\n\nThe next step is to go to the \u003cu\u003eAPI\u003c/u\u003e option on the control panel page. You will see a screen similar to this:\n\n![Screen Shot 2018-09-06 at 12.58.39 AM](https://s22.postimg.cc/3xo20qgdd/Screen_Shot_2018-09-06_at_12.58.39_AM.png)\n\nNow copy the Dynamo APIs URL and replace with the dummy one provided in the [truffle.js](https://github.com/BlockClusterApp/proxy-contract/blob/master/truffle.js) file.\n\n## Testing\n\nJust like testing any other truffle project you need to first compile smart contracts, then deploy the contracts and finally run Mocha tests.\n\nLet's first install the dependencies:\n\n```shell\nnpm install\n```\n\nThen compile the contracts:\n\n```shell\ntruffle compile\n```\n\nThen deploy the contracts:\n\n```shell\ntruffle migrate --reset --network development\n```\n\nFinally, run the mocha tests:\n\n```shell\ntruffle test\n```\n\n## Auditing\n\nTo convert the transactions related to the proxy contract into readable format in Audit explorer you would need to add the proxy contract's bytecode and ABI in dynamo. \n\nTo do this, click on \u003cu\u003eAdd Smart Contracts\u003c/u\u003e option in control panel. You will see a screen similar to this:\n\n![Screen Shot 2018-09-06 at 1.08.34 AM](https://s22.postimg.cc/5ph0vm4v5/Screen_Shot_2018-09-06_at_1.08.34_AM.png)\n\nNow copy the bytecode and ABI from your projects \u003cu\u003ebuild/contracts/Example.json\u003c/u\u003e file and paste it in the form. Then submit the form. Now you will be able to audit all `Example` contracts transactions in the explorer.\n\nHere is how a transaction will look when viewed in explorer:\n\n![Screen Shot 2018-09-06 at 4.09.42 PM](https://s22.postimg.cc/x30gf7wld/Screen_Shot_2018-09-06_at_4.09.42_PM.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockclusterapp%2Fproxy-contract","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblockclusterapp%2Fproxy-contract","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockclusterapp%2Fproxy-contract/lists"}