[Periodic Report] OpenDevICON (ODI) Continuing Development

Report Name:

OpenDevICON Continuing Development (Month 1)

Reporting Period:

2020.08.12 - 2020.9.12

Report Description:

In this phase, the following tasks were completed.

  • IRC3 Library available on ODI site

    • IRC3

    • IRC3Mintable

    • IRC3Burnable

    • IRC3Updatable

    • IRC3Pausable

    • Roles

  • Jupyter Notebook autofill methods to interact with SCORE.

Project Completion Percentage:

33%, completed all tasks planned for this period (Month 1).

Remaining Time to Completion:

2 months

Expected Results for Next Period:

At the end of the next phase, further testing and cleanup of the SCORE libraries, addition of IRC16 library will be done and a demo app for Band Protocol Oracle Integration.

Summary of Materials Produced Last Period:

The output from the work completed last month is summarized below. It includes the IRC3 Library and jupyter-notebook autofill methods for easy interaction with SCORE.

IRC3 Library:

Just like the IRC2 library, we have initiated a SCORE library for Non Fungible Tokens(NFT) as well. We have created an IRC3 Library based on IRC3 standard, that will support creation of IRC3 tokens providing additional functionality than IRC3 standard.

  • IRC3 Mintable Token

  • IRC3 Burnable Token

  • IRC3 Updatable Token

  • IRC3 Pausable Token

We have added roles feature in this IRC3 Library, so that only the address with roles to mint/burn the tokens can do respective token operations.

Jupyter Notebook Autofill:

[Jupyter Notebook approach for testing SCORE Methods was faster and convenient for developers to develop and test their SCORES. Despite being much easier than default tbears way of testing, the developers still need to manually fill the blocks for individual methods to test that method from SCORE.

Using this checkscore package, all the methods in SCORE will be auto filled in jupyter notebooks for direct interaction. The github repo can be found here .

To use this, a light python package called checkscore needs to be installed via python package manager.

pip3 install checkscore

The developer needs to import this checkscore package and load a wallet to interact with every method in their SCORE. Then using the SCORE ADDRESS of our SCORE, we can generate the blocks with this command:

Checkscore(SCORE_ADDRESS).fill_methods()

It fetches the ABI of the SCORE, filters out fallback functions and event logs. Then, the external, readonly and payable methods remain. The methods in the SCORE are separated to external, readonly and payable functions and they appear alphabetically on jupyter-notebook blocks.

To interact, one needs to select a wallet and parameters(if any) for that method and execute the block. The results are shown under the block after the execution. The common large block of code like CallTransacationBuilder and other sdk methods, step cost estimation and fetching the results will be in the backend of the checkscore library which makes it easy for the developers to test the interaction of their SCORE with the ICON blockchain, not to mention much faster and more convenient as well. Currently, it is available for yeouido testnet only.

Review Result Comments

Review Result

Approve

Review Comments

Thank you for your effort.