diff --git a/apps/explorer_web/lib/explorer_web/templates/address_internal_transaction/index.html.eex b/apps/explorer_web/lib/explorer_web/templates/address_internal_transaction/index.html.eex
index 602fd4326f..713b18a161 100644
--- a/apps/explorer_web/lib/explorer_web/templates/address_internal_transaction/index.html.eex
+++ b/apps/explorer_web/lib/explorer_web/templates/address_internal_transaction/index.html.eex
@@ -103,7 +103,18 @@
<%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.from_address %>
- <%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.to_address %>
+ <%= if ExplorerWeb.InternalTransactionView.create?(internal_transaction) do %>
+
+ <%= link(
+ gettext("Contract Creation"),
+ class: "transaction__link",
+ "data-address-hash": internal_transaction.created_contract_address_hash,
+ to: address_path(ExplorerWeb.Endpoint, :show, @locale, internal_transaction.created_contract_address_hash),
+ title: internal_transaction.created_contract_address_hash
+ ) %>
+ <% else %>
+ <%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.to_address %>
+ <% end %>
|
<%= ExplorerWeb.TransactionView.value(internal_transaction, include_label: false) %> |
diff --git a/apps/explorer_web/lib/explorer_web/templates/transaction_internal_transaction/index.html.eex b/apps/explorer_web/lib/explorer_web/templates/transaction_internal_transaction/index.html.eex
index 34c4a9b2ec..5d017d1d00 100644
--- a/apps/explorer_web/lib/explorer_web/templates/transaction_internal_transaction/index.html.eex
+++ b/apps/explorer_web/lib/explorer_web/templates/transaction_internal_transaction/index.html.eex
@@ -41,7 +41,18 @@
<%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.from_address %>
- <%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.to_address %>
+ <%= if ExplorerWeb.InternalTransactionView.create?(internal_transaction) do %>
+
+ <%= link(
+ gettext("Contract Creation"),
+ class: "transaction__link",
+ "data-address-hash": internal_transaction.created_contract_address_hash,
+ to: address_path(ExplorerWeb.Endpoint, :show, @locale, internal_transaction.created_contract_address_hash),
+ title: internal_transaction.created_contract_address_hash
+ ) %>
+ <% else %>
+ <%= render ExplorerWeb.AddressView, "_link.html", conn: @conn, address: internal_transaction.to_address %>
+ <% end %>
|
<%= ExplorerWeb.TransactionView.value(internal_transaction, include_label: false) %> |
<%= ExplorerWeb.TransactionView.gas(internal_transaction) %> |
diff --git a/apps/explorer_web/lib/explorer_web/views/internal_transaction_view.ex b/apps/explorer_web/lib/explorer_web/views/internal_transaction_view.ex
index 5b82153dc0..c7972efa47 100644
--- a/apps/explorer_web/lib/explorer_web/views/internal_transaction_view.ex
+++ b/apps/explorer_web/lib/explorer_web/views/internal_transaction_view.ex
@@ -1,4 +1,9 @@
defmodule ExplorerWeb.InternalTransactionView do
use ExplorerWeb, :view
@dialyzer :no_match
+
+ alias Explorer.Chain.InternalTransaction
+
+ def create?(%InternalTransaction{type: :create}), do: true
+ def create?(_), do: false
end
diff --git a/apps/explorer_web/priv/gettext/default.pot b/apps/explorer_web/priv/gettext/default.pot
index 941e7de75d..acd1a97fcc 100644
--- a/apps/explorer_web/priv/gettext/default.pot
+++ b/apps/explorer_web/priv/gettext/default.pot
@@ -355,8 +355,8 @@ msgstr ""
msgid "Search by address, transaction hash, or block number"
msgstr ""
-#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:114
-#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:53
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:125
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:64
msgid "There are no Internal Transactions"
msgstr ""
@@ -504,13 +504,13 @@ msgstr ""
msgid "There are no Transactions"
msgstr ""
-#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:120
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:131
#: lib/explorer_web/templates/address_transaction/index.html.eex:139
#: lib/explorer_web/templates/block/index.html.eex:60
#: lib/explorer_web/templates/block_transaction/index.html.eex:200
#: lib/explorer_web/templates/pending_transaction/index.html.eex:69
#: lib/explorer_web/templates/transaction/index.html.eex:90
-#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:60
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:71
msgid "Older"
msgstr ""
@@ -544,3 +544,9 @@ msgstr ""
#: lib/explorer_web/templates/transaction_log/index.html.eex:73
msgid "Newer"
msgstr ""
+
+#, elixir-format
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:109
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:47
+msgid "Contract Creation"
+msgstr ""
diff --git a/apps/explorer_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/explorer_web/priv/gettext/en/LC_MESSAGES/default.po
index 508d684272..25bc9849a5 100644
--- a/apps/explorer_web/priv/gettext/en/LC_MESSAGES/default.po
+++ b/apps/explorer_web/priv/gettext/en/LC_MESSAGES/default.po
@@ -367,8 +367,8 @@ msgstr ""
msgid "Search by address, transaction hash, or block number"
msgstr ""
-#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:114
-#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:53
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:125
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:64
msgid "There are no Internal Transactions"
msgstr ""
@@ -516,13 +516,13 @@ msgstr ""
msgid "There are no Transactions"
msgstr ""
-#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:120
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:131
#: lib/explorer_web/templates/address_transaction/index.html.eex:139
#: lib/explorer_web/templates/block/index.html.eex:60
#: lib/explorer_web/templates/block_transaction/index.html.eex:200
#: lib/explorer_web/templates/pending_transaction/index.html.eex:69
#: lib/explorer_web/templates/transaction/index.html.eex:90
-#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:60
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:71
msgid "Older"
msgstr ""
@@ -556,3 +556,9 @@ msgstr ""
#: lib/explorer_web/templates/transaction_log/index.html.eex:73
msgid "Newer"
msgstr ""
+
+#, elixir-format
+#: lib/explorer_web/templates/address_internal_transaction/index.html.eex:109
+#: lib/explorer_web/templates/transaction_internal_transaction/index.html.eex:47
+msgid "Contract Creation"
+msgstr ""
diff --git a/apps/explorer_web/test/explorer_web/views/internal_transaction_view_test.exs b/apps/explorer_web/test/explorer_web/views/internal_transaction_view_test.exs
new file mode 100644
index 0000000000..4effc5564d
--- /dev/null
+++ b/apps/explorer_web/test/explorer_web/views/internal_transaction_view_test.exs
@@ -0,0 +1,19 @@
+defmodule ExplorerWeb.InternalTransactionViewTest do
+ use ExplorerWeb.ConnCase, async: true
+
+ alias ExplorerWeb.InternalTransactionView
+
+ describe "create?/1" do
+ test "with internal transaction of type create returns true" do
+ internal_transaction = build(:internal_transaction_create)
+
+ assert InternalTransactionView.create?(internal_transaction)
+ end
+
+ test "with non-create type internal transaction returns false" do
+ internal_transaction = build(:internal_transaction)
+
+ refute InternalTransactionView.create?(internal_transaction)
+ end
+ end
+end