Add basic icrc1 standard token parsing

This commit is contained in:
Jesse C. Fisher 2023-11-11 15:00:17 +00:00
parent 73ae43632c
commit c282a09b17
2 changed files with 12 additions and 2 deletions

View File

@ -31,13 +31,23 @@ class TokensController < ApplicationController
@token.standard = :unknown @token.standard = :unknown
else else
@token.standard = :dip20 @token.standard = :dip20
@token.transfer_fee = metadata.lines[2].split[2] @token.transfer_fee = metadata.lines[2].split[2].to_i
@token.decimals = metadata.lines[3].split[2] @token.decimals = metadata.lines[3].split[2]
# @token.owner = metadata.lines[4].split[3] # @token.owner = metadata.lines[4].split[3]
@token.logo_url = metadata.lines[5].split[2] @token.logo_url = metadata.lines[5].split[2]
@token.name = metadata.lines[6].split("\"")[1]
@token.total_supply = metadata.lines[7].split[2].to_i/(10**@token.decimals)
@token.symbol = metadata.lines[8].split("\"")[1]
end end
else else
@token.standard = :icrc1 @token.standard = :icrc1
@token.transfer_fee = metadata.lines[2].split[5].to_i
@token.decimals = metadata.lines[5].split[7].to_i
@token.logo_url = metadata.lines[9].split[2]
@token.name = metadata.lines[3].split("\"")[3]
total_supply = `dfx canister --network ic call #{@token.canister_id} icrc1_total_supply 2>&1`
@token.total_supply = total_supply.split[0][1..-1].to_i/(10**@token.decimals)
@token.symbol = metadata.lines[4].split("\"")[3]
end end
# elsif call getMetadata #dip20 # elsif call getMetadata #dip20
respond_to do |format| respond_to do |format|

View File

@ -30,5 +30,5 @@
= @token.decimals = @token.decimals
%p %p
%b Transfer fee: %b Transfer fee:
= @token.transfer_fee = @token.transfer_fee/(10.0**@token.decimals)