59 lines
2.0 KiB
Ruby
59 lines
2.0 KiB
Ruby
class TelegramWallet < ActiveRecord::Base
|
|
def icprincipal
|
|
return self.icp_principal if self.icp_principal
|
|
if self.icp_id.nil?
|
|
if !self.telegram_id.nil?
|
|
if `dfx identity use #{self.telegram_id}; echo $?`.to_i == 255
|
|
`dfx identity new #{self.telegram_id} --storage-mode=plaintext`
|
|
`dfx identity use #{self.telegram_id}`
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
else
|
|
# Identity already exist
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
end
|
|
end
|
|
elsif
|
|
`dfx identity use #{self.telegram_id}`
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
end
|
|
return self.icp_principal
|
|
end
|
|
def icid
|
|
return self.icp_id if self.icp_id
|
|
if self.icp_principal.nil?
|
|
if !self.telegram_id.nil?
|
|
if `dfx identity use #{self.telegram_id}; echo $?`.to_i == 255
|
|
`dfx identity new #{self.telegram_id} --storage-mode=plaintext`
|
|
`dfx identity use #{self.telegram_id}`
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
else
|
|
# Identity already exist
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
end
|
|
end
|
|
elsif
|
|
`dfx identity use #{self.telegram_id}`
|
|
self.icp_id = `dfx ledger account-id`.strip
|
|
self.icp_principal = `dfx identity get-principal`.strip
|
|
`dfx identity use anonymous`
|
|
self.save
|
|
end
|
|
return self.icp_id
|
|
end
|
|
end
|