diff --git a/app/assets/stylesheets/tokens.sass b/app/assets/stylesheets/tokens.sass
index 5f4904a7..6e4d6044 100644
--- a/app/assets/stylesheets/tokens.sass
+++ b/app/assets/stylesheets/tokens.sass
@@ -1,5 +1,6 @@
.token-logo
max-width: 100%
+ width: 4.20rem
.table-container
background: #39272799
@@ -12,3 +13,6 @@ table.token-index
.token-logo
max-width: 4rem
vertical-align: middle
+
+.token-show
+ font-size: 1rem
diff --git a/app/controllers/tokens_controller.rb b/app/controllers/tokens_controller.rb
index 34709fb1..04bac67c 100644
--- a/app/controllers/tokens_controller.rb
+++ b/app/controllers/tokens_controller.rb
@@ -26,11 +26,17 @@ class TokensController < ApplicationController
# if call icrc1_metadata #icrc1
metadata = `dfx canister --network ic call #{@token.canister_id} icrc1_metadata 2>&1`
if metadata.scan(/no update method/).present?
+ # TODO: Use getTokenInfo instead of getMetadata
metadata = `dfx canister --network ic call #{@token.canister_id} getMetadata 2>&1`
if metadata.scan(/no update method/).present?
@token.standard = :unknown
else
@token.standard = :dip20
+
+ # TODO: Use getTokenInfo instead of getMetadata
+ tokenInfo = `dfx canister --network ic call #{@token.canister_id} getTokenInfo 2>&1`
+ @token.holder_number = tokenInfo.lines[2].split[2]
+
@token.transfer_fee = metadata.lines[2].split[2].to_i
@token.decimals = metadata.lines[3].split[2]
# @token.owner = metadata.lines[4].split[3]
diff --git a/app/models/token.rb b/app/models/token.rb
index 926b14ff..9e3d60fd 100644
--- a/app/models/token.rb
+++ b/app/models/token.rb
@@ -9,4 +9,13 @@ class Token < ActiveRecord::Base
return nil
end
end
+
+ def get_holder_number
+ if self.standard == "dip20"
+ tokenInfo = `dfx canister --network ic call #{self.canister_id} getTokenInfo 2>&1`
+ tokenInfo.lines[2].split[2]
+ else
+ "Get holder number coming soon."
+ end
+ end
end
diff --git a/app/views/tokens/show.html.haml b/app/views/tokens/show.html.haml
index e26f9f83..54bdbee1 100644
--- a/app/views/tokens/show.html.haml
+++ b/app/views/tokens/show.html.haml
@@ -1,35 +1,42 @@
+.contain
+ %h1
+ = @token.name
-- if policy(@token).edit?
- = link_to 'Edit', edit_token_path(@token)
- = link_to 'Delete', @token, method: :delete, data: { confirm: 'Are you sure?' }
+ - if policy(@token).edit?
+ = link_to 'Edit', edit_token_path(@token)
+ = link_to 'Delete', @token, method: :delete, data: { confirm: 'Are you sure?' }
-= link_to "Refresh Data", refresh_token_path(@token)
+ = link_to "Refresh Data", refresh_token_path(@token)
-%p
- %b Canister:
- = @token.canister_id
-%p
- %b Logo:
- - if @token.logo_url.present?
- -# %img{src: @token.logo_url}
- -# :escaped
- =raw "
"
-%p
- %b Standard:
- = @token.standard
-%p
- %b Symbol:
- = @token.symbol
-%p
- %b Name:
- = @token.name
-%p
- %b Total supply:
- = @token.total_supply
-%p
- %b Decimals:
- = @token.decimals
-%p
- %b Transfer fee:
- = @token.transfer_fee_to_f
+.token-show
+ %p
+ %b Canister:
+ = @token.canister_id
+ %p
+ %b Logo:
+ - if @token.logo_url.present?
+ -# %img{src: @token.logo_url}
+ -# :escaped
+ =raw "
"
+ %p
+ %b Standard:
+ = @token.standard
+ %p
+ %b Symbol:
+ = @token.symbol
+ %p
+ %b Name:
+ = @token.name
+ %p
+ %b Total supply:
+ = @token.total_supply
+ %p
+ %b Decimals:
+ = @token.decimals
+ %p
+ %b Transfer fee:
+ = @token.transfer_fee_to_f
+ %p
+ %b Holders:
+ = @token.holder_number
diff --git a/db/migrate/20231208104330_add_holder_number_to_token.rb b/db/migrate/20231208104330_add_holder_number_to_token.rb
new file mode 100644
index 00000000..ce533ba8
--- /dev/null
+++ b/db/migrate/20231208104330_add_holder_number_to_token.rb
@@ -0,0 +1,5 @@
+class AddHolderNumberToToken < ActiveRecord::Migration[7.1]
+ def change
+ add_column :tokens, :holder_number, :integer
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 6f26b50a..c814df3c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.1].define(version: 2023_12_04_083004) do
+ActiveRecord::Schema[7.1].define(version: 2023_12_08_104330) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -250,6 +250,7 @@ ActiveRecord::Schema[7.1].define(version: 2023_12_04_083004) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "logo_url"
+ t.integer "holder_number"
t.index ["canister_id"], name: "index_tokens_on_canister_id", unique: true
end