Uniscan is a NFT Explorer for blockchains.
- Ruby on Rails - Web framework
- Hotwire - An alternative approach to building modern web applications
- ImageMagick - Convert image, resize image, identify image
- FFmpeg - Convert video to gif
- Alibabacloud OSS - Online image storage and access service
- Sidekiq - Simple, efficient background processing for Ruby
Architecture and components
Provide web pages for users to use.
NFT trackers for blockchains
Track and get the NFT on the blockchains.
There are now trackers for Ethereum and Darwinia as examples.
A NFT worker is a long-running process.
It is responsible for collecting the NFT discovered by the tracker and storing it in the database.
The data from the tracker is packaged into a
sidekiq message for delivery.
NFT token_uri processor
It reads the token_uri of NFT from the database, and then obtains the metadata.
And, it will download and process the image from the metadata.
A model is a Ruby class that is used to represent data. Additionally, models can have most of the application's logic.
The relationship between the models:
Controllers handle the incoming web requests and eventually respond with a rendered view.
You can also test in docker container.
Install Ruby ~> 2.7.0
See Installing Ruby
Install ImageMagick & FFmpeg
Download or clone the code to local, and go to the root directory.
Run all tests
Run a single test file
rails test test/models/transfer_test.rb
- Run mysql and redis.
docker-compose up -d db redis
- Create tables and generate seed data.
docker-compose run --rm uniscan rails db:migrate docker-compose run --rm uniscan rails db:seed
- Run services
docker-compose up -d uniscan sidekiq eth_scan
Run mysql if not running
docker-compose up -d db
Create test database
docker-compose run --rm uniscan_test rails db:create docker-compose run --rm uniscan_test rails db:migrate
docker-compose run --rm uniscan rails test
Bug reports and pull requests are welcome on GitHub at https://github.com/uni-arts-chain/uniscan.
The gem is available as open source under the terms of the MIT License.
Supported by web3 foundation