使用 OpenDAX v4 创建自己的加密交易经纪平台

使用本教程,我们将使用OpenDAX WEB SDK从头创建一个加密交易平台,并通过交易页面、工具栏和图表启动并运行它。
OpenDAX WEB SDK为标准的WEB接口提供可重用的UI组件,可创建交换平台应用程序,包括UI组件和小部件。
所有组件都采用简单、现代的设计,可以原样使用,也可以用自定义主题进行重新设计。
除了UI组件外,该库还利用React状态管理工具(如Providers、Hooks和Utils)连接到用于JavaScript的OpenDAX WEB SDK,并将数据传递到UI层,从而简化了状态同步,使开发人员可以专注于构建。
生成一个新的应用程序
我们可以创建一个新的ReactJS或NextJS应用程序。对于本教程,我决定使用NextJS。
NextJS vs ReactJS的优点:
可以开箱即用地获得 SSR 和 SSG。
我们几乎可以配置所有内容。
更容易维护。
比React和CRA更快。
让我们生成一个NextJS应用程序。
npx create-next-app@latest --ts#or
yarn create next-app --typescript
运行初始脚本后,CLI会提示如下问题:
? What is your project named? >
在输入项目名称并按下Enter键后,就可以开始了!(至少对于基本的NextJS设置来说)。
现在,我们可以通过在命令提示符中运行“npm run dev”(yarn dev),并在浏览器上打开端口(通常是 localhost:3000)来测试设置是否顺利:
cd my-appnpm run dev# or
yarn dev
我们已经完成了第一步,现在准备安装OpenDAX WEB-SDK。
安装OpenDAX WEB SDK
现在我们的应用程序准备好了,我们可以安装OpenDAX WEB-SDK了。
npm install @openware/opendax-web-sdk@latest
现在,我们已经安装了应用程序和OpenDAX WEB SDK。让我们构建我们的应用程序。
添加CoreProvider
让我们在代码编辑器中打开项目文件夹(我推荐VSCode)。
CoreProvider是构建应用程序的根提供程序。
按照以下步骤添加CoreProvider:
打开编辑器:pages/_app.tsx
├── pages│ ├── _app.tsx│ ├── api│ │ └── hello.ts
│ └── index.tsx
下面是_app.tsx.2中的代码。
import '../styles/globals.css'import type { AppProps } from 'next/app'import { CoreProvider } from '@openware/opendax-web-sdk'function MyApp({ Component, pageProps }: AppProps) { return ( <CoreProvider> <Component {…pageProps} /> </CoreProvider> );}
export default MyApp
现在我们已经设置了所有的提供程序,让我们创建一些布局和导航栏。
添加布局
对于布局,我们有两个选择。可以使用OpenDAX WEB SDK中的布局,它已经包含了侧边栏(导航),或者也可以创建一个新的侧边栏。
在本教程中,我们将使用OpenDAX WEB SDK中的布局。
一开始,我们需要导入样式。
更新_app.tsx中的代码:
import '../styles/globals.css'import '@openware/opendax-web-sdk/index.css'import type { AppProps } from 'next/app'import { CoreProvider } from '@openware/opendax-web-sdk'function MyApp({ Component, pageProps }: AppProps) { return ( <CoreProvider> <Component {…pageProps} /> </CoreProvider> );}
export default MyApp
让我们导入布局。
对于Layout组件,我们需要发送侧边栏道具。
下面是在_app.tsx中编写的代码:
import "../styles/globals.css";import "@openware/opendax-web-sdk/index.css";import React, { useState } from "react";import type { AppProps } from "next/app";import { CoreProvider, Layout, SidebarProps, AccountButtonWidget,} from "@openware/opendax-web-sdk";function MyApp({ Component, pageProps }: AppProps) { const [collapseLeftBar, setCollapseLeftBar] = useState<boolean>(true); const sidebarProps: SidebarProps = { classNames: 'bg-navbar-background-color sm:border-r border-divider-color-20', buttonsList: [ { name: "Metamask", component: <AccountButtonWidget collapsed={collapseLeftBar} />, label: "", }, ], onSidebarCollapse: (collapseLeftBar: boolean) => { setCollapseLeftBar(collapseLeftBar); }, }; return ( <CoreProvider> <Layout sidebarProps={sidebarProps}> <Component {...pageProps} /> </Layout> </CoreProvider> );}
export default MyApp;
现在有一个布局和侧边栏。我们可以开始建立自己的经纪交易页面。

Next.js 应用欢迎页面
添加CDN加密图标
对于加密图标,我们需要更新我们的next.config.js。
module.exports = { images: { domains: ['cdn.jsdelivr.net'] },
};
添加交易页面
在本教程的这一部分中,我们将只添加工具栏和交易图表。
对于交易页面,我们需要创建两个文件:index.tsx 和 [marketID].tsx。
index.tsx - http://localhost:3001/trade page where we will display loader and fetch data. [marketID].tsx - http://localhost:3001/trade/[marketID]
创建一个新页面
cd pages mkdir trade touch index.tsx touch [marketID].tsx
获取市场后更新 index.tsx 并添加重定向到交易页面
import { useAppSelector } from '@openware/opendax-web-sdk'import { useRouter } from 'next/router'import { FC, useEffect } from 'react'const Trading: FC = (): JSX.Element | null => { const currentMarket = useAppSelector((state) => state.markets.currentMarket) const router = useRouter() useEffect(() => { if (currentMarket) { router.push(`/trade/${currentMarket.id}`) } }, [currentMarket]) return <div>Loading...</div>}
export default Trading
为了让我们的交易图表运行起来,我们需要从web-sdk中复制charting_library并将其公开:
cp -R node_modules/@openware/opendax-web-sdk/public/* public
更新[marketID] .tsx:
import { Toolbar, useAppDispatch, useAppSelector, setCurrentMarket,} from '@openware/opendax-web-sdk'import dynamic from 'next/dynamic'import { useRouter } from 'next/router'import React, { FC, useEffect } from 'react'const TradingChart = dynamic(() => import('@openware/opendax-web-sdk'), { ssr: false,})const TradeByMarket: FC<{}> = (): JSX.Element => { const router = useRouter() const { marketID } = router.query const markets = useAppSelector((state) => state.markets.markets) const currentMarket = useAppSelector((state) => state.markets.currentMarket) const dispatch = useAppDispatch() useEffect(() => { if (currentMarket && currentMarket.id === marketID) { return } if (!marketID) { return } const marketIDFromRoute = (marketID as string).toLowerCase() const marketFromRoute = markets.find( (market) => market.id.toLowerCase() === marketIDFromRoute, ) const [fallbackMarket] = markets if (marketFromRoute) { dispatch(setCurrentMarket(marketFromRoute || fallbackMarket)) } else { fallbackMarket?.id && router.push(`/trading/${fallbackMarket.id}`) }; }, [markets, marketID]) return ( <> <div style={{height: '56px'}}> <Toolbar /> </div> <TradingChart /> </> )}
export default TradeByMarket
运行一个模拟服务器获取一些OpenDAX BE数据,如市场、货币、kline等。
npm i npm-run-all colors header-case-normalizer js-combinatorics --save-dev
npm explore @openware/opendax-web-sdk -- npm run mockserver
一旦一切就绪并开始运行,我们将能够看到交易页面:

OpenDAX 驱动的加密经纪商的默认交易页面
我们已经启动了我们的加密经纪业务!
我们将加密经纪公司与流动性网络连接起来并运行,有交易页面、工具栏和图表。完全免费和开源启动
Source:https://medium.com/openware/create-your-own-crypto-trading-brokerage-platform-with-opendax-v4-2b452c90b2b9
关于
ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。
Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”。

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
华尔街警告:市场对通胀过于乐观,小心「鹰派意外」风险
德银与摩根大通警告,投资者或低估了通胀的持久性与关税的滞后影响。撰文:张雅琦来源:华尔街见闻随着近期国际贸易紧张局势出现缓和,金融市场对通胀的担忧显著降温,但德银和摩根大通的最新分析警告称,这种乐观情
-
美股散户的「黑色星期二」:财报与空头夹击之下,妖股与币圈齐跌
尽管散户当日仍净买入5.6亿美元,但未能阻止纳指重挫超2%。撰文:鲍奕龙来源:华尔街见闻对于热衷追逐热门股票的散户投资者而言,隔夜美股成为了自四月份以来最糟糕的交易日。周二在 Palantir 的财报
-
HashKey 集团携手 Kraken 达成战略合作,加速机构层面资产代币化进程
双方将整合资源,围绕产品、生态、以及市场拓展展开协作,加速推动传统金融与加密资产之间的融合,释放亚太市场在真实世界资产(RWA)代币化领域的潜力。亚洲领先的数字资产金融服务集团 HashKey Gro
-
亚洲股市熔断式暴跌,韩国盘中触发熔断机制,日经跌破5万点大关
华尔街警告:这只是开始,AI泡沫破裂引发的恐慌才刚刚开始。作者:金十数据周三亚洲股市追随隔夜美股的抛售,投资者对估值过高的担忧削弱了市场信心。截至发稿,韩国股市以逾6%的跌幅领跌,因估值担忧重创了近期
-
早报 | 美股收盘,道指跌 225 点,纳指涨 0.46%;比特币借贷平台 Lava 宣布完成 2 亿美元融资;代币网络协议遭黑客攻击,以太坊一度暴跌 9%整理:ChainCatcher 重要资讯:代币网络协议遭黑客攻击,以太坊一度暴跌 9% 数据:加密板块全线下挫,BTC 跌破 10.8 万美元,ETH 一度跌近 8% 易理华:当前加密市场过度恐慌,
-
加密早报:BTC 今晨跌破 10 万美元,渣打将于香港推出 BTC 和 ETH 托管服务
AlphaTON Capita成立合资公司拟推出TON Card加密支付卡项目。作者:深潮 TechFlow昨日市场动态BTC今晨跌破10万美元大关,ETH失守3100美元HTX行情显示,BTC今晨跌
-
华尔街持续抛售,比特币还要跌到哪里11 月的第一周,币圈情绪很差。比特币已经下探到「10.11」大暴跌的更低点,没守住 10 万美元大关,甚至跌破 9.9 万美元,是这半年里的新低,以太坊最低触及 3000 美元。全网 24 小时爆仓
-
市场面临显着回调,这次是周期中点还是终点?作者: Chloe, ChainCatcher11 月才刚过四天,加密市场就经历了显着回调,比特币过去一个月下跌近 13%,从此前的高点回落至 10.4 万美元附近,价格反复震荡。ETH 交易价格同期
- 成交量排行
- 币种热搜榜
Momentum
OFFICIAL TRUMP
Aster
泰达币
以太坊
比特币
Solana
USD Coin
瑞波币
币安币
First Digital USD
狗狗币
大零币
达世币
Sui
ZEN
ICP
OKB
FIL
AR
LPT
MINA
BSV
EOS
DYDX