Skip to content

Commit 2c62f91

Browse files
committed
feat(optimism): integrate optimism into Mask ecosystem #4868
1 parent f29281a commit 2c62f91

File tree

53 files changed

+648
-178
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+648
-178
lines changed

.vscode/schema/constants.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@
3030
"Matic",
3131
"Mumbai",
3232
"Arbitrum",
33-
"Arbitrum_Rinkeby"
33+
"Arbitrum_Rinkeby",
34+
"Optimistic",
35+
"Optimistic_Kovan",
36+
"Optimistic_Goerli"
3437
]
3538
},
3639
"primitive": {

cspell.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"ampl",
4848
"anchorme",
4949
"arbitrum",
50+
"optimistic",
5051
"arweave",
5152
"bgcolor",
5253
"bignumber",

packages/dashboard/src/pages/Labs/components/SwapSettingDialog.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
usePolygonNetworkTradeProvider,
1010
useArbitrumNetworkTradeProvider,
1111
useXDaiNetworkTradeProvider,
12+
useOptimisticNetworkTradeProvider,
1213
} from '../../Settings/api'
1314

1415
import SettingItem from './SettingItem'
@@ -45,6 +46,8 @@ export default function SwapSettingDialog({ open, onClose }: SettingDialogProps)
4546

4647
const arbitrumOptions = [{ label: 'UniSwap V3', value: TradeProvider.UNISWAP_V3 }]
4748

49+
const optimisticOptions = [{ label: 'UniSwap V3', value: TradeProvider.UNISWAP_V3 }]
50+
4851
const xDaiOptions = [{ label: 'SushiSwap', value: TradeProvider.SUSHISWAP }]
4952

5053
const t = useDashboardI18N()
@@ -80,6 +83,12 @@ export default function SwapSettingDialog({ open, onClose }: SettingDialogProps)
8083
options: xDaiOptions,
8184
onChange: (value: any) => Services.Settings.setxDaiNetworkTradeProvider(+value),
8285
},
86+
{
87+
legend: t.labs_settings_swap_network({ network: 'Optimism' }),
88+
value: useOptimisticNetworkTradeProvider(),
89+
options: optimisticOptions,
90+
onChange: (value: any) => Services.Settings.setOptimisticNetworkTradeProvider(+value),
91+
},
8392
]
8493

8594
return (

packages/dashboard/src/pages/Settings/api.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ export const [useXDaiNetworkTradeProvider] = createGlobalState(
3434
Messages.events.xdaiNetworkTradeProviderSettings.on,
3535
)
3636

37+
export const [useOptimistcNetworkTradeProvider] = createGlobalState(
38+
Services.Settings.getOptimisticNetworkTradeProvider,
39+
Messages.events.optimisticNetworkTradeProviderSettings.on,
40+
)
41+
3742
const BASE_RUL = 'https://vaalh28dbi.execute-api.ap-east-1.amazonaws.com/api'
3843

3944
interface BackupBaseRequest {

packages/maskbook/src/extension/background-script/SettingsService.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
polygonNetworkTradeProviderSettings,
1515
arbitrumNetworkTradeProviderSettings,
1616
xdaiNetworkTradeProviderSettings,
17+
optimismNetworkTradeProviderSettings,
1718
} from '../../plugins/Trader/settings'
1819
import { queryMyPersonas } from './IdentityService'
1920
import {
@@ -70,6 +71,10 @@ export const [getArbitrumNetworkTradeProvider, setArbitrumNetworkTradeProvider]
7071
)
7172
export const [getxDaiNetworkTradeProvider, setxDaiNetworkTradeProvider] = create(xdaiNetworkTradeProviderSettings)
7273

74+
export const [getOptimismNetworkTradeProvider, setOptimismNetworkTradeProvider] = create(
75+
optimismNetworkTradeProviderSettings,
76+
)
77+
7378
export const [getCurrentSelectedWalletProvider, setCurrentSelectedWalletProvider] = create(currentProviderSettings)
7479

7580
export const [getCurrentSelectedWalletNetwork, setCurrentSelectedWalletNetwork] = create(currentNetworkSettings)

packages/maskbook/src/plugins/ITO/SNSAdaptor/ClaimAllDialog.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,9 @@ export function ClaimAllDialog(props: ClaimAllDialogProps) {
224224
} = useSpaceStationCampaignInfo(account, Flags.nft_airdrop_enabled)
225225

226226
const [chainId, setChainId] = useState(
227-
[ChainId.Mainnet, ChainId.BSC, ChainId.Matic, ChainId.Arbitrum, ChainId.xDai].includes(currentChainId)
227+
[ChainId.Mainnet, ChainId.BSC, ChainId.Matic, ChainId.Arbitrum, ChainId.xDai, ChainId.Optimistic].includes(
228+
currentChainId,
229+
)
228230
? currentChainId
229231
: ChainId.Mainnet,
230232
)
@@ -352,8 +354,16 @@ export function ClaimAllDialog(props: ClaimAllDialogProps) {
352354
createTabItem('Polygon/Matic', ChainId.Matic),
353355
createTabItem('Arbitrum', ChainId.Arbitrum),
354356
createTabItem('xDai', ChainId.xDai),
357+
createTabItem('Optimistic', ChainId.Optimistic),
355358
],
356-
index: [ChainId.Mainnet, ChainId.BSC, ChainId.Matic, ChainId.Arbitrum, ChainId.xDai].indexOf(chainId),
359+
index: [
360+
ChainId.Mainnet,
361+
ChainId.BSC,
362+
ChainId.Matic,
363+
ChainId.Arbitrum,
364+
ChainId.xDai,
365+
ChainId.Optimistic,
366+
].indexOf(chainId),
357367
classes,
358368
hasOnlyOneChild: true,
359369
}

packages/maskbook/src/plugins/ITO/base.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const base: Plugin.Shared.Definition = {
2222
ChainId.Mumbai,
2323
ChainId.Arbitrum,
2424
ChainId.xDai,
25+
ChainId.Optimistic,
2526
],
2627
},
2728
},

packages/maskbook/src/plugins/RedPacket/base.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,14 @@ export const base: Plugin.Shared.Definition = {
1616
networks: { type: 'opt-out', networks: {} },
1717
target: 'stable',
1818
web3: {
19-
operatingSupportedChains: [ChainId.Mainnet, ChainId.BSC, ChainId.Matic, ChainId.Arbitrum, ChainId.xDai],
19+
operatingSupportedChains: [
20+
ChainId.Mainnet,
21+
ChainId.BSC,
22+
ChainId.Matic,
23+
ChainId.Arbitrum,
24+
ChainId.xDai,
25+
ChainId.Optimistic,
26+
],
2027
},
2128
},
2229
}

packages/maskbook/src/plugins/Trader/apis/trader/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ export async function getAvailableTraderProviders(chainId: ChainId) {
2525
return [TradeProvider.UNISWAP_V3]
2626
case NetworkType.xDai:
2727
return [TradeProvider.SUSHISWAP]
28+
case NetworkType.Optimistic:
29+
return [TradeProvider.UNISWAP_V3]
2830
default:
2931
safeUnreachable(networkType)
3032
return []

packages/maskbook/src/plugins/Trader/apis/trending/hotfix.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,15 @@ const ID_NETWORK_MAP: Record<DataProvider, Record<string, NetworkType>> = {
9595
'polygon-pos': NetworkType.Polygon,
9696
'arbitrum-one': NetworkType.Arbitrum,
9797
xdai: NetworkType.xDai,
98+
optimistic: NetworkType.Optimistic,
9899
},
99100
[DataProvider.COIN_MARKET_CAP]: {
100101
'1027': NetworkType.Ethereum,
101102
'1839': NetworkType.Binance,
102103
'3890': NetworkType.Polygon,
103104
'11841': NetworkType.Arbitrum,
104105
'5601': NetworkType.xDai,
106+
'10': NetworkType.Optimistic,
105107
},
106108
[DataProvider.UNISWAP_INFO]: {},
107109
}

0 commit comments

Comments
 (0)