diff --git a/packages/bridge/src/components/Footer/index.less b/packages/bridge/src/components/Footer/index.less
new file mode 100644
index 0000000..8263cb9
--- /dev/null
+++ b/packages/bridge/src/components/Footer/index.less
@@ -0,0 +1,4 @@
+.footer {
+ text-align: left;
+ margin: 20px 0 20px 0;
+}
diff --git a/packages/bridge/src/components/Footer/index.tsx b/packages/bridge/src/components/Footer/index.tsx
new file mode 100644
index 0000000..72f7202
--- /dev/null
+++ b/packages/bridge/src/components/Footer/index.tsx
@@ -0,0 +1,25 @@
+import React from 'react';
+import { GithubOutlined, TwitterOutlined } from '@ant-design/icons';
+import { Link } from 'react-router-dom';
+import { SecurityAuditButton } from '../SecurityAuditButton';
+import { Button } from 'antd';
+
+import './index.less';
+
+export const Footer = () => {
+ return (
+
+
+ }
+ style={{ marginRight: '20px' }}
+ >
+
+
+ }>
+
+
+
+ );
+};
diff --git a/packages/bridge/src/components/Layout/index.tsx b/packages/bridge/src/components/Layout/index.tsx
index 7ea6403..055c73b 100644
--- a/packages/bridge/src/components/Layout/index.tsx
+++ b/packages/bridge/src/components/Layout/index.tsx
@@ -10,6 +10,8 @@ import { contexts, AppBar, shortenAddress, useWallet } from '@oyster/common';
import Wormhole from '../Wormhole';
import { useEthereum } from '../../contexts';
import { useCorrectNetwork } from '../../hooks/useCorrectNetwork';
+import { SecurityAuditButton } from '../SecurityAuditButton';
+import { Footer } from '../Footer';
const { Header, Content } = Layout;
const { useConnectionConfig } = contexts.Connection;
@@ -30,51 +32,55 @@ export const AppLayout = React.memo((props: any) => {
[...Object.keys(paths)].find(key => location.pathname.startsWith(key)) ||
'';
return (
-
-
setWormholeReady(true)}
- show={true}
- rotate={true}
- >
-
- {isRoot && (
-
-
-
-
WORMHOLE
-
-
-
- {accounts[0] && (
-
- {hasCorrespondingNetworks ? (
- <>
-
- {shortenAddress(accounts[0], 4)}
- >
- ) : (
-
- )}
-
- )}
- >
- }
- />
-
- )}
- {props.children}
-
-
-
+ <>
+
+
setWormholeReady(true)}
+ show={true}
+ rotate={true}
+ >
+
+ {isRoot && (
+
+
+
+
WORMHOLE
+
+
+
+ {accounts[0] && (
+
+ {hasCorrespondingNetworks ? (
+ <>
+
+ {shortenAddress(accounts[0], 4)}
+ >
+ ) : (
+
+ )}
+
+ )}
+ >
+ }
+ />
+
+ )}
+
+ {props.children}
+
+
+
+
+ >
);
});
diff --git a/packages/bridge/src/components/SecurityAuditButton/index.less b/packages/bridge/src/components/SecurityAuditButton/index.less
new file mode 100644
index 0000000..20a3359
--- /dev/null
+++ b/packages/bridge/src/components/SecurityAuditButton/index.less
@@ -0,0 +1,7 @@
+.audit-button {
+ display: inline-block;
+ position: relative;
+ width: auto;
+ height: auto;
+ margin: 0 20px 0 20px;
+}
diff --git a/packages/bridge/src/components/SecurityAuditButton/index.tsx b/packages/bridge/src/components/SecurityAuditButton/index.tsx
new file mode 100644
index 0000000..10c3d53
--- /dev/null
+++ b/packages/bridge/src/components/SecurityAuditButton/index.tsx
@@ -0,0 +1,13 @@
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { Button } from 'antd';
+
+import './index.less';
+
+export const SecurityAuditButton = () => {
+ return (
+
+ );
+};
diff --git a/packages/bridge/src/components/Transfer/index.tsx b/packages/bridge/src/components/Transfer/index.tsx
index 6f73847..44e5c31 100644
--- a/packages/bridge/src/components/Transfer/index.tsx
+++ b/packages/bridge/src/components/Transfer/index.tsx
@@ -1,19 +1,13 @@
import React, { useEffect, useState } from 'react';
import { notification, Spin, Button } from 'antd';
-import {
- contexts,
- ConnectButton,
- programIds,
- formatAmount,
- notify,
-} from '@oyster/common';
-import { Input } from './../Input';
+import { contexts, ConnectButton, programIds, notify } from '@oyster/common';
+import { Input } from '../Input';
import './style.less';
import { ASSET_CHAIN, chainToName } from '../../utils/assets';
import { fromSolana, ProgressUpdate, toSolana, TransferRequest } from '../../models/bridge';
import { useEthereum } from '../../contexts';
-import { TokenDisplay } from './../TokenDisplay';
+import { TokenDisplay } from '../TokenDisplay';
import { WrappedAssetFactory } from '../../contracts/WrappedAssetFactory';
import { WormholeFactory } from '../../contracts/WormholeFactory';
import BN from 'bn.js';
diff --git a/packages/bridge/src/views/home/index.tsx b/packages/bridge/src/views/home/index.tsx
index 8fbc89d..505a6c0 100644
--- a/packages/bridge/src/views/home/index.tsx
+++ b/packages/bridge/src/views/home/index.tsx
@@ -7,6 +7,7 @@ import { Link } from 'react-router-dom';
import { useWormholeAccounts } from '../../hooks/useWormholeAccounts';
import { TokenDisplay } from '../../components/TokenDisplay';
import { toChainSymbol } from '../../contexts/chainPair';
+import { Footer } from '../../components/Footer';
export const HomeView = () => {
const {
@@ -108,35 +109,38 @@ export const HomeView = () => {
];
return (
-
-
-
- Wormhole
-
- Ethereum + Solana Bridge
-
-
-
-
-
-
-
-
-
-
a.name)}
- columns={columns}
- loading={loadingLockedAccounts}
- />
-
+ <>
+
+
+
+ Wormhole
+
+ Ethereum + Solana Bridge
+
+
+
+
+
+
+
+
+
+
a.name)}
+ columns={columns}
+ loading={loadingLockedAccounts}
+ />
+
+
+ >
);
};
diff --git a/packages/bridge/src/views/transfer/index.tsx b/packages/bridge/src/views/transfer/index.tsx
index 38ee239..26d2650 100644
--- a/packages/bridge/src/views/transfer/index.tsx
+++ b/packages/bridge/src/views/transfer/index.tsx
@@ -1,17 +1,22 @@
import React from 'react';
import { Card } from 'antd';
import { Transfer } from '../../components/Transfer';
+import { Footer } from '../../components/Footer';
export const TransferView = () => {
return (
-
-
-
-
-
+ <>
+
+
+
+
+
+
+
+ >
);
};