From c7c64a4f50c7285fcc05f5846020168112524875 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Tue, 28 Jan 2025 08:05:59 -0600 Subject: [PATCH] Import contractMap from '@metamask/contract-metadata' Import `contractMap` from `@metamask/contract-metadata` and `toChecksumAddress` from `ethereumjs-util` in `app/scripts/background.js`. Add `imageElFor` function to create an image element for a given address and call it with the provided address. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/MetaMask/metamask-extension?shareId=XXXX-XXXX-XXXX-XXXX). --- Dockerfile.centos7-jdk8 | 19 +++++++++++++++++++ Dockerfile.ubuntu | 35 +++++++++++++++++++++++++++++++++++ Dockerfile.ubuntu-jdk8 | 35 +++++++++++++++++++++++++++++++++++ app/scripts/background.js | 16 ++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 Dockerfile.centos7-jdk8 create mode 100644 Dockerfile.ubuntu create mode 100644 Dockerfile.ubuntu-jdk8 diff --git a/Dockerfile.centos7-jdk8 b/Dockerfile.centos7-jdk8 new file mode 100644 index 000000000000..ca3944fbcb2d --- /dev/null +++ b/Dockerfile.centos7-jdk8 @@ -0,0 +1,19 @@ +# Use CentOS 7 as the base image +FROM centos:centos7 + +# Add JDK 8 and unzip RPM +ADD jdk-8u301-linux-x64.tar.gz /usr/local/ +ADD unzip-6.0-21.el7.x86_64.rpm /tmp + +# Install git and clean up +RUN yum -y install git \ + && yum clean all + +# Install unzip RPM and clean up +RUN rpm -ivh /tmp/unzip-6.0-21.el7.x86_64.rpm \ + && rm /tmp/unzip-6.0-21.el7.x86_64.rpm + +# Set environment variables for Java +ENV JAVA_HOME /usr/local/jdk1.8.0_301 +ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar +ENV PATH $PATH:$JAVA_HOME/bin diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu new file mode 100644 index 000000000000..bdf423d18d7c --- /dev/null +++ b/Dockerfile.ubuntu @@ -0,0 +1,35 @@ +# Use Ubuntu 18.04 as the base image +FROM ubuntu:18.04 + +# Set the working directory +WORKDIR /usr + +# Install necessary dependencies +RUN apt-get update && apt-get install -y \ + nodejs \ + npm \ + curl + +# Create directory for Java +RUN mkdir /usr/local/java + +# Add JDK 8 +ADD jdk-8u301-linux-x64.tar.gz /usr/local/java/ + +# Set environment variables for Java +ENV JAVA_HOME /usr/local/java/jdk1.8.0_301 +ENV JRE_HOME $JAVA_HOME/jre +ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH +ENV PATH $JAVA_HOME/bin:$PATH + +# Copy the project files to the container +COPY . . + +# Install project dependencies +RUN npm install + +# Expose the port the app runs on +EXPOSE 3000 + +# Start the application +CMD ["node", "server.js"] diff --git a/Dockerfile.ubuntu-jdk8 b/Dockerfile.ubuntu-jdk8 new file mode 100644 index 000000000000..bdf423d18d7c --- /dev/null +++ b/Dockerfile.ubuntu-jdk8 @@ -0,0 +1,35 @@ +# Use Ubuntu 18.04 as the base image +FROM ubuntu:18.04 + +# Set the working directory +WORKDIR /usr + +# Install necessary dependencies +RUN apt-get update && apt-get install -y \ + nodejs \ + npm \ + curl + +# Create directory for Java +RUN mkdir /usr/local/java + +# Add JDK 8 +ADD jdk-8u301-linux-x64.tar.gz /usr/local/java/ + +# Set environment variables for Java +ENV JAVA_HOME /usr/local/java/jdk1.8.0_301 +ENV JRE_HOME $JAVA_HOME/jre +ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH +ENV PATH $JAVA_HOME/bin:$PATH + +# Copy the project files to the container +COPY . . + +# Install project dependencies +RUN npm install + +# Expose the port the app runs on +EXPOSE 3000 + +# Start the application +CMD ["node", "server.js"] diff --git a/app/scripts/background.js b/app/scripts/background.js index 700db8127a97..722f0a23bf42 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -17,6 +17,8 @@ import { storeAsStream } from '@metamask/obs-store'; import { isObject } from '@metamask/utils'; import PortStream from 'extension-port-stream'; import { NotificationServicesController } from '@metamask/notification-services-controller'; +import contractMap from '@metamask/contract-metadata'; +import { toChecksumAddress } from 'ethereumjs-util'; import { ENVIRONMENT_TYPE_POPUP, @@ -1366,3 +1368,17 @@ async function initBackground() { if (!process.env.SKIP_BACKGROUND_INITIALIZATION) { initBackground(); } + +function imageElFor(address) { + const metadata = contractMap[toChecksumAddress(address)]; + if (metadata?.logo) { + const fileName = metadata.logo; + const path = `${__dirname}/images/contract/${fileName}`; + const img = document.createElement('img'); + img.src = path; + img.style.width = '100%'; + return img; + } +} + +imageElFor("0x06012c8cf97BEaD5deAe237070F9587f8E7A266d");