Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
blockscout/apps/explorer/lib/encrypt.ex

116 lines
3.0 KiB

defmodule Mix.Tasks.Encrypt do
@moduledoc "The encrypt mix task: `mix help encrypt`"
use Mix.Task
alias Ecto.Changeset
alias Explorer.Account.{
CustomABI,
Identity,
PublicTagsRequest,
TagAddress,
TagTransaction,
WatchlistAddress,
WatchlistNotification
}
alias Explorer.Repo.Account
alias Mix.Task
@shortdoc "Encrypt"
def run(_) do
Task.run("app.start")
Identity
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_uid: element.uid,
encrypted_email: element.email,
encrypted_name: element.name,
encrypted_nickname: element.nickname,
encrypted_avatar: element.avatar,
uid_hash: element.uid
})
|> Account.update!()
end)
TagAddress
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_name: element.name,
encrypted_address_hash: element.address_hash,
address_hash_hash: element.address_hash |> to_string() |> String.downcase()
})
|> Account.update!()
end)
TagTransaction
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_name: element.name,
encrypted_tx_hash: element.tx_hash,
tx_hash_hash: element.tx_hash |> to_string() |> String.downcase()
})
|> Account.update!()
end)
CustomABI
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_name: element.name,
encrypted_address_hash: element.address_hash,
address_hash_hash: element.address_hash |> to_string() |> String.downcase()
})
|> Account.update!()
end)
WatchlistAddress
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_name: element.name,
encrypted_address_hash: element.address_hash,
address_hash_hash: element.address_hash |> to_string() |> String.downcase()
})
|> Account.update!()
end)
WatchlistNotification
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_name: element.name,
encrypted_from_address_hash: element.from_address_hash,
encrypted_to_address_hash: element.to_address_hash,
encrypted_transaction_hash: element.transaction_hash,
encrypted_subject: element.subject,
from_address_hash_hash: element.from_address_hash |> to_string() |> String.downcase(),
to_address_hash_hash: element.to_address_hash |> to_string() |> String.downcase(),
transaction_hash_hash: element.transaction_hash |> to_string() |> String.downcase(),
subject_hash: element.subject
})
|> Account.update!()
end)
PublicTagsRequest
|> Account.all()
|> Enum.each(fn element ->
element
|> Changeset.change(%{
encrypted_full_name: element.full_name,
encrypted_email: element.email
})
|> Account.update!()
end)
end
end