Skip to content

Commit 0ee5829

Browse files
committed
Update tables
1 parent 1780065 commit 0ee5829

File tree

6 files changed

+192
-8
lines changed

6 files changed

+192
-8
lines changed

components/AddressTable.tsx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { StyledTd } from "./Table";
2+
3+
const AddressTable = ({
4+
entries,
5+
explorer,
6+
}: {
7+
entries: { name: string; value: string }[];
8+
explorer: string;
9+
}) => {
10+
return (
11+
<table>
12+
<tbody>
13+
{entries.map(({ name, value }) => {
14+
const component = (
15+
<code
16+
className={
17+
"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white/10 dark:nx-bg-white/10 "
18+
}
19+
>
20+
{value}
21+
</code>
22+
);
23+
const addLink =
24+
explorer.includes("$ADDRESS") && value.startsWith("0x");
25+
return (
26+
<tr key={name}>
27+
<StyledTd>{name}</StyledTd>
28+
<StyledTd>
29+
{addLink ? (
30+
<a
31+
href={explorer.replace("$ADDRESS", value)}
32+
className={
33+
"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]"
34+
}
35+
target={"_blank"}
36+
>
37+
{component}
38+
</a>
39+
) : (
40+
component
41+
)}
42+
</StyledTd>
43+
</tr>
44+
);
45+
})}
46+
</tbody>
47+
</table>
48+
);
49+
};
50+
51+
export default AddressTable;
Lines changed: 125 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,133 @@
1-
# Contract Address
1+
import AddressTable from "../../components/AddressTable";
22

33
Express Relay is currently deployed on the following networks:
44

55
## Mainnets
66

7-
| Network | Contract address |
8-
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
7+
You can access the Auction Server via the following endpoint: https://pyth-express-relay-mainnet.asymmetric.re/
8+
9+
### Mode
10+
11+
Network Details:
12+
13+
<AddressTable
14+
explorer={"https://explorer.mode.network/address/$ADDRESS"}
15+
entries={[
16+
{
17+
name: "Express Relay",
18+
value: "0x5Cc070844E98F4ceC5f2fBE1592fB1ed73aB7b48",
19+
},
20+
{
21+
name: "Opportunity Adapter Factory",
22+
value: "0x59F78DE21a0b05d96Ae00c547BA951a3B905602f",
23+
},
24+
{
25+
name: "Network Id",
26+
value: "34443",
27+
},
28+
{
29+
name: "Chain Id",
30+
value: "mode",
31+
},
32+
{
33+
name: "Public RPC",
34+
value: "https://mainnet.mode.network/",
35+
},
36+
{
37+
name: "Wrapped ETH",
38+
value: "0x4200000000000000000000000000000000000006",
39+
},
40+
{
41+
name: "Permit2 Contract",
42+
value: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
43+
},
44+
]}
45+
/>
46+
47+
Assets:
48+
49+
<AddressTable
50+
explorer={"https://explorer.mode.network/address/$ADDRESS"}
51+
entries={[
52+
{ name: "WETH", value: "0x4200000000000000000000000000000000000006" },
53+
{ name: "USDC", value: "0xd988097fb8612cc24eeC14542bC03424c656005f" },
54+
{ name: "USDT", value: "0xf0F161fDA2712DB8b566946122a5af183995e2eD" },
55+
{ name: "WBTC", value: "0xcDd475325D6F564d27247D1DddBb0DAc6fA0a5CF" },
56+
{ name: "ezETH", value: "0x2416092f143378750bb29b79eD961ab195CcEea5" },
57+
{ name: "STONE", value: "0x80137510979822322193FC997d400D5A6C747bf7" },
58+
{ name: "wrsETH", value: "0xe7903B1F75C534Dd8159b313d92cDCfbC62cB3Cd" },
59+
{ name: "weETH.mode", value: "0x04C0599Ae5A44757c0af6F9eC3b93da8976c150A" },
60+
{ name: "M-BTC", value: "0x59889b7021243dB5B1e065385F918316cD90D46c" },
61+
{ name: "MODE", value: "0xDfc7C877a950e49D2610114102175A06C2e3167a" },
62+
]}
63+
/>
964

1065
## Testnets
1166

12-
| Network | Contract address |
13-
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
14-
| Optimism Sepolia | []() |
67+
You can access the Auction Server via the following endpoint: https://per-staging.dourolabs.app/
68+
69+
### Optimism Sepolia
70+
71+
Main info:
72+
73+
<AddressTable
74+
explorer={"https://optimism-sepolia.blockscout.com/address/$ADDRESS"}
75+
entries={[
76+
{
77+
name: "Express Relay",
78+
value: "0x2F968931d1B7326d2875E9500980211dcc535eE5",
79+
},
80+
{
81+
name: "Opportunity Adapter Factory",
82+
value: "0xfA119693864b2F185742A409c66f04865c787754",
83+
},
84+
{
85+
name: "Network Id",
86+
value: "11155420",
87+
},
88+
{
89+
name: "Chain Id",
90+
value: "op_sepolia",
91+
},
92+
{
93+
name: "Public RPC",
94+
value: "https://sepolia.optimism.io/",
95+
},
96+
{
97+
name: "Wrapped ETH",
98+
value: "0x74A4A85C611679B73F402B36c0F84A7D2CcdFDa3",
99+
},
100+
{
101+
name: "Permit2 Contract",
102+
value: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
103+
},
104+
]}
105+
/>
106+
107+
Assets:
108+
109+
<AddressTable
110+
explorer={"https://optimism-sepolia.blockscout.com/address/$ADDRESS"}
111+
entries={[
112+
{
113+
name: "BTC",
114+
value: "0x3745007F7C8DD8Bec89b3B35f33f13f58b008533 ",
115+
},
116+
{
117+
name: "USDC",
118+
value: "0x1e3d75F24296abBC7bd10D151F51d758bCE379Ef",
119+
},
120+
{
121+
name: "DOGE",
122+
value: "0x0160Ba0A02A910e27b4189040aC74febcc476687 ",
123+
},
124+
{
125+
name: "SOL",
126+
value: "0x193aD24BeeDfAf27f217395f52fA20C7A36D79B3",
127+
},
128+
{
129+
name: "PYTH",
130+
value: "0x20e0b5Ff7aa971dAd8f489112Ae009A70608d2D5",
131+
},
132+
]}
133+
/>
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# How to Integrate Express Relay as a Searcher
22

3-
This guide explains how to integrate Express Relay as a searcher for liquidation opportunities.
4-
To integrate Express Relay as a searcher, you need to:
3+
By integrating with Express Relay, searchers are able to access opportunities from various DeFi protocols via a simple and unified interface.
4+
Opportunities and searcher bids are communicated via the Express Relay server.
5+
The server exposes different endpoints for interaction which can be used directly via HTTP and WebSocket or via one of the SDKS for convenience.
6+
7+
The integration consists of 2 main steps:
8+
9+
- Integrate your searcher service with auction server
10+
- \[Optional\] Use [OpportunityAdapter](./integrate-as-searcher/opportunity-adapter) and setup a wallet with the necessary tokens and approvals
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"auction-server": "Integrate with the auction server",
3+
"opportunity-adapter": "Use Opportunity Adapter"
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Integrate with auction server
2+
3+
## TODO
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Integrate with opportunity adapter

0 commit comments

Comments
 (0)