Status: Assigned
Size: 1,000 ICP Γ 2 slots (We will select up to two teams)
Deadline: - (First come, first served)
Background of this bounty
Chainsight provides a tool to collect and process data, which is used within your on-chain application. One of the most essential parts is an asset rating, where some assets would be scored based on the historical and real-time updated data you can handle with Chainsight. In fact, the definition of the asset rating should be changed according to the situation or user demand. For instance, liquidity stability and price stability are different things. However, it would be beneficial for the ecosystem to build a general-purpose asset rating that can be seen from other applications on production because it might inspire someone who wants to create something new based on the asset rating oracle. We expect this bounty would be a trigger to the upcoming use cases.
What we want in this bounty
The purpose of this bounty is to develop an asset rating to asset some ERC-20 tokens based on on-chain data. It is preferable that the tokens be popular ones that are commonly used in many protocols (e.g. DAI, USDC, UNI) because anyone can understand and use them, but you can choose whatever.
Currently, only the EVM chains are supported, and you need to collect data from an EVM chain and process them on ICP.
Asset rating must be expressed quantitatively. However, based on the quantitative score, we recommend that it be expressed as a one-dimensional symbol with the quantitative data, such as AA or B+ to be understood easily by anyone.
You may define any asset rating, but you must have a hypothesis as to whom the asset rating is beneficial.
At a minimum, four assets must be selected and their data collected.
Only one assessment item is acceptable. However, it would be much greater if multiple assessment items were combined to produce an overall assessment.
We expect you to design so that one canister has the minimum responsibility. For example, separate a canister that only collects data on a token from a canister that assesses them based on the data. This is with the expectation that your canisters will be reused by someone else in the future.
Template code can be generated from Chainsight CLI. The project should be created based on this, and the final code must be open-sourced.
You must use the Chainsight CLI and provide feedback on it; if the Chainsight CLI is not available for some reason, you may create your own Canister after explaining the reason to the team.
You donβt need any front-end-related code. After launching Chainsight Dashboard, your asset rating can be searched on the dashboard.
Thank you guys for your application @furkan@timk11@hude
I am happy to get applications from three different perspectives. I originally intended to give two teams the right to participate in the bounty, but since all of the projects are interesting, I would like to increase the number of participation slots from 2 to 3, providing 1,000 ICP for each after the completion. Now, Iβll change the status Open to Assigned. Please post any questions in this thread when you need.
@furkan@timk11@hude Once again, thank you guys for your participation. There are still few docs explaining Chainsight and how to use CLI since it is beta, which would sometimes be difficult to understand when developing at this stage. Considering that, we propose the following support to you guys:
You can ask questions to the Chainsight core team on Slack.
If you need, you can connect Slack with us and ask questions directly to the Chainsight team. Feel free to ask about development issues, component designs, or whatever.
A sample project made by CLI is now available
The sample code for price oracle developed with Chainsight CLI is now public. We hope this code will help your development.
If you want any other specific sample code, please request details in this thread. We may not be able to develop it right away due to priorities, but we intend to receive important feedback from you.
@hawk Can you also email or DM me the Google form that I submitted? I have all the details written down in a couple of places but I didnβt save a copy of the submitted version before I sent it.
Question: Can a Solidity contract that consumes gas be used as part of a Chainsight project? If so, how is the gas paid insofar as what needs to be included in the canister code?
Iβve put together a Solidity contract in order to compile the required on-chain data (from an EVM-based chain) but after deploying it locally with Remix I realised that gas is needed if a view function is called by another function, and for some other things. I suppose one option is to move all of the gas-consuming logic out of the contract and put it in canisters, but Iβm wondering if thatβs the only option.
Hey @timk11,
If you want to write gas-consuming logic within a view function on EVM, it should definitely be outside the view function. If you are facing some troubles to write the code to fetch something from a solidity smart contract to a canister with Chainsight CLI, I suggest you refer to this sample logic:
~/ic/csx/uniswap_edpr$ csx build
Nov 15 07:43:15.477 INFO Building project...
Nov 15 07:43:15.481 INFO Processing for codegen
Nov 15 07:43:15.490 INFO ./artifacts/pool_fees_usdceth_0_3/src/app.rs/app.rs already exists, skip creating
Nov 15 07:43:15.490 INFO project Cargo.toml already exists, skip creating
Nov 15 07:43:15.492 INFO Interface file "UniswapV3Pool.json" copied by user's interface
Nov 15 07:43:15.511 ERRO ic_solidity_bindgen::internal::Unimplemented
./artifacts/tcumul_28x6hr_usdceth_0_3/src/lib.rs is an empty file.