@aurora-is-near/intents-swap-widget (英语)
反应 跨链互换部件 由 近亲意向并让用户将任何支持的资产互换到您的应用程序中 35个以上连锁店 从一个UI,而你每次交换都收费.
[TIP] 只需要一个有钱包连接的工作部件? 使用
@aurora-is-near/intents-swap-widget-standalone。这个软件包(核心)用于应用 已连接钱包 并想要完全控制.
目录
看着
| 什麽 | 反相交换 UI 加上它后面的钩子、状态机器和组件 |
| 路线 | 通过Aurora Intents API (1Click-compatible) 的 NEAR Intents 输入器 |
| 链条 | 35+:EVM连锁店,索拉纳,NEAR,斯特拉尔,TON,Bitcoin,Sui,Tron,XRP等完整列表(中文(简体) ) |
| 资产 | 意向性 API 列表中的任何辅助资产(中文(简体) ) |
| 要求数 | 反应 >=18.2,一个 API 密钥 从 部件工作室 |
| 钱包 | 你带他们来:通行证地址和提供者(见 钱包(中文(简体) ) |
| 收费 | 在 Studio 中设定每个 API 密钥, 或与 appFees |
| 隐私 | 可选 保密互换 (单位:千美元)confidentialMode(中文(简体) ) |
部件工作室
部件工作室 用于部件的无码仪表板。 用来:
- 🔑 拿你的API钥匙. 需要这种服务,费用也是在其中配置的.
- 🌐 选择网络和符号,设置默认销售/购买令牌,并选择保密模式.
- 🎨 设计它:干净或粗体风格,口音和背景颜色,角半径,容器.
- 👀 预览现场 在运输之前.
- 📦 装入里面数字 : 嵌入您的应用程序 给你一个 iframe 链接 或现成的 反应片段。 。 。 .
- 📊 下载报表 使用您的 API 密钥( CSV) 进行互换.
[注] API 密钥是 不是秘密的,我告诉你. 以前端代码运输是安全的.
选择您的整合
flowchart TD
A[I want a swap widget in my app] --> B{Need code-level control?}
B -- No --> IF["<b>iframe</b><br/>Copy the link from Widget Studio"]
B -- Yes --> C{Does your app already<br/>connect wallets?}
C -- No --> SA["<b>@aurora-is-near/intents-swap-widget-standalone</b><br/>Wallet modal built in"]
C -- Yes --> CORE["<b>@aurora-is-near/intents-swap-widget</b><br/>+ chain adapters you need"]
| iframe 图像 | 独立软件包 | 核心一揽子计划(本项) | |
|---|---|---|---|
| 设置工作 | 1行线 | ~5行线 | 温和 |
| 钱包连接 | 内建 | 建于( AppKit, NEAR Connect, Stellar 钱包 Kit) | 属于你的 |
| TON 钱包 | – 说吧 – | ❌ | ✅ |
虎克会和活动onMsg(中文(简体) ) | ❌ | ✅ | ✅ |
自定义转让( E)makeTransfer(中文(简体) ) | ❌ | ✅ | ✅ |
| 套装大小控制 | – 说吧 – | 包括所有链式SDK | 只安装适配器 |
快开始
1. 安装 核心软件包和 适配器 对于每个链条家族,您的钱包支持:
npm install @aurora-is-near/intents-swap-widget
# Add only what you need:
npm install @aurora-is-near/intents-swap-widget-evm # Ethereum, Base, Arbitrum, …
npm install @aurora-is-near/intents-swap-widget-solana # Solana
npm install @aurora-is-near/intents-swap-widget-stellar # Stellar
2. 招标 内部部件 WidgetConfigProvider数字 :
import '@aurora-is-near/intents-swap-widget/styles.css';
import {
Widget,
WidgetConfigProvider,
} from '@aurora-is-near/intents-swap-widget';
import { evm } from '@aurora-is-near/intents-swap-widget-evm';
export function Swap() {
const { address, connect, disconnect } = useYourEvmWallet(); // your wallet lib
return (
<WidgetConfigProvider
config={{
apiKey: 'YOUR_STUDIO_API_KEY',
connectedWallets: { default: address },
providers: { evm: window.ethereum }, // any EIP-1193 provider
plugins: { evm },
onWalletSignin: connect,
onWalletSignout: disconnect,
}}
theme={{ colorScheme: 'dark', accentColor: '#bc9cf8' }}>
<Widget />
</WidgetConfigProvider>
);
}
这是一个工作交换部件。 下一个 : 添加更多链条, (中文(简体) ), 限制符号,或 和牌子对齐。 。 。 .
如何运作
部件从未持有用户资金 。 每次交换都是 引文 存款 结算 流程 :
sequenceDiagram
autonumber
actor U as User
participant W as Swap Widget
participant API as Aurora Intents API
participant P as Chain adapter + wallet
participant NI as NEAR Intents
U->>W: Pick tokens and amount
W->>API: Request quote (apiKey, fees, slippage)
API-->>W: Quote + one-time deposit address
U->>W: Click "Swap"
W->>P: makeTransfer(amount → deposit address)
P-->>W: Transaction hash (user signs in wallet)
NI->>NI: Solvers fill the intent
W->>API: Poll swap status
API-->>W: Success, funds sent to recipient
链式适配器plugins.evm, (中文(简体) ), plugins.sol,.)只有手柄 步骤 5:从用户钱包中将资金送到源链上的存款地址. 其余由一切连锁所分.
钱包和链式适配器
核心包不捆绑链式SDK. 每个连锁店都传三道:
| 配置密钥 | 这是什么 |
|---|---|
connectedWallets | 按链键的地址, 例如 . { default: '0x…', sol: '…', ton: 'UQ…' }。部件使用选中的符号链,返回到 default。 。 。 . |
providers | 签名部件使用 : evm, (中文(简体) ), sol, (中文(简体) ), stellar, (中文(简体) ), near |
plugins | 履行存款转移的每个链条家族的适应者 |
| 源链家族 | 适配软件包 | plugins 键 | providers 价值 |
|---|---|---|---|
| EVM( 视频) (伊出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克出克 | intents-swap-widget-evm | evm | EIP-1193供应商,或 () => Promise<provider> |
| 索拉纳 | intents-swap-widget-solana | sol | { publicKey, signMessage, signTransaction } |
| 斯特拉尔 | intents-swap-widget-stellar | stellar | { publicKey, signMessage, signTransaction } |
| 没有 | 内建,不需要适配器 | – 说吧 – | () => nearWallet |
| TON等组织 | 无:通过自己的 makeTransfer 到部件 | – 说吧 – | – 说吧 – |
任何支持的链条可以是 目标,无论用户是否有钱包。 与 allowSwapWithExternalWallet,用户也可以通过发送到QR-代码地址从任何链中存入.
多链实例 (EVM + Solana + Stellar + NEAR + TON)
import { evm } from '@aurora-is-near/intents-swap-widget-evm';
import { sol } from '@aurora-is-near/intents-swap-widget-solana';
import { stellar } from '@aurora-is-near/intents-swap-widget-stellar';
const config = {
apiKey: 'YOUR_STUDIO_API_KEY',
connectedWallets: {
default: evmAddress,
sol: solanaAddress,
stellar: stellarAddress,
near: nearAccountId,
ton: tonAddress,
},
providers: {
evm: window.ethereum,
sol: { publicKey, signMessage, signTransaction },
stellar: { publicKey: stellarAddress, signMessage, signTransaction },
near: () => nearWallet,
},
plugins: { evm, sol, stellar },
onWalletSignin: openWalletModal,
onWalletSignout: disconnect,
};
Privy、NEAR和TON的适应指南: 钱包连接文件。 。 。 .
配置
一切经过 config 参考文献 WidgetConfigProvider其他道具: theme, (中文(简体) ), localisation, (中文(简体) ), rpcs, (中文(简体) ), balanceViaRpc。这些是大多数集成方法:
| 选项 | 类型 | 目的 |
|---|---|---|
apiKey | string | 要求. 你的钥匙来自 部件工作室 |
appFees | { recipient, fee }[] | 发给NEAR Intents账户的基点额外费用 |
allowedTokensList | string[] | 只允许两侧的这些符号( 资产 ID 或符号) |
allowedSourceTokensList 编号 : allowedTargetTokensList | string[] | 一样,只限一方 |
allowedChainsList | Chains[] | 只允许这些锁链,例如:. ['eth', 'base', 'sol'] |
defaultSourceToken 编号 : defaultTargetToken | 符号或 null | 预选令牌 |
slippageTolerance | number | 在bps中: 100 =1% = 1% = = 1 |
sendAddress | string | 固定收件人( 默认发送地址) |
confidentialMode | 'public' | 'confidential' | 'user-choice' | 保密互换 |
allowSwapWithExternalWallet | boolean | 为任何链条添加 QR- 编码存款选项 |
alchemyApiKey | string | 更可靠的平衡和索拉纳RPC(建议生产) |
tonCenterApiKey | string | TON 余额 |
fetchQuote | fn | 代理引用通过您的后端 |
<WidgetConfigProvider
config={{
apiKey: 'YOUR_STUDIO_API_KEY',
allowedChainsList: ['eth', 'base', 'arb', 'sol', 'near'],
allowedTokensList: ['USDC', 'USDT', 'ETH', 'SOL'],
appFees: [{ recipient: 'your-app.near', fee: 20 }], // 0.2%
slippageTolerance: 50, // 0.5%
}}>
<Widget />
</WidgetConfigProvider>
📖 充分参考(40+选项): 部件配置文件。一个内存副本住在 docs/configuration.md,则 WidgetConfig 类型在 src/types/config.ts。 。 。 . yarn check-docs 保持医生和类型同步.
链式标识 配置中使用( e)allowedChainsList, (中文(简体) ), connectedWallets 键,...)
| 家属 | 身份证 |
|---|---|
| EVM( 视频) | eth base arb bsc pol op avax gnosis bera monad adi plasma scroll xlayer hood aurora |
| 非欧洲议会 | near sol stellar ton btc sui xrp doge tron zec ltc cardano aleo bch dash starknet hypercore qtc |
资料来源: src/constants/chains.ts。 。 。 .
部件和活动
| 构成部分 | 用它来 |
|---|---|
Widget | 默认. 包含设置和历史的完整部件 . defaultMode数字 : 'swap' (违约)或 'topup' |
WidgetSwap | 仅交换窗体 |
WidgetDepositMode | 上行表:收到固定的代币,从钱包或外钱包QR码支付 |
WidgetDeposit 编号 : WidgetWithdraw | 将资金运入或运出你的应用程序的意向账户(enableAccountAbstraction(中文(简体) ) |
活动: 聆听传输管道 onMsg数字 :
<Widget
onMsg={(msg) => {
if (msg.type === 'on_transfer_success') {
analytics.track('swap', { hash: msg.hash });
}
}}
/>
<Widget
makeTransfer={async (args) => {
const hash = await sendTon(args.address, args.amount);
return { hash, transactionLink: `https://tonviewer.com/transaction/${hash}` };
}}
/>
📖 部件文件
主题和本地化
| 方针 | 怎么样 | 文档 |
|---|---|---|
| 主题对象 (建议) | theme={{ colorScheme, accentColor, backgroundColor, stylePreset: 'clean' | 'bold', borderRadius, showContainer }} | 他们 |
| CSS 变量 | 覆盖 --sw-* 变量。 完整列表 : src/theme.css | 他们 |
| 复制 / i18n | localisation={{ 'submit.active.swap': 'Swap now' }}。所有键 : src/types/localisation.ts | 本地化 |
[大 总是导入
@aurora-is-near/intents-swap-widget/styles.css如果您的应用程序有全局 CSS 重置,请将其包入@layer base { … },否则 Tailwind 分层会删除部件的间隔.
子路径导出( 建立您的用户界面)
如果预建部件不符合您的使用大小写, 直接使用这些部件 :
| 导入 | 包含 |
|---|---|
@aurora-is-near/intents-swap-widget | 下方所有东西,加 Widget* 财务报告和审定财务报表 WidgetConfigProvider |
…/components | 无国籍的 UI 工具包: 按钮、 输入、 横幅 |
…/features | 使用部件上下文的丰富组件(例如:. SwapQuote(中文(简体) ) |
…/hooks | 没有UI的逻辑(例如. useTokens(中文(简体) ) |
…/machine | 有限状态机器和存储,业务逻辑的核心 |
…/types | 域类型 : Token, (中文(简体) ), Chains, (中文(简体) ), Quote, (中文(简体) ), WidgetConfig,, , , , , , , , |
…/ext | 可选融合(如:. useAlchemyBalanceIntegration(中文(简体) ) |
…/constants • 妇女 …/utils • 妇女 …/config | 常数、 助手、 配置仓库 |
…/styles.css • 妇女 …/tailwind.css • 妇女 …/theme.css | 样式( 捆绑、 尾风源, 仅限变量) |
解决问题
| 症状 | 修补 |
|---|---|
EVM transfers are not supported. Add the EVM plugin … (或索拉纳/斯特拉尔) | 安装适配器并添加到 plugins |
… Add an EVM provider via the providers configuration property | 把钱包签入 providers |
| 按钮表示"连接钱包",不能被点击 | 提供 onWalletSignin |
| 余额永远加载 | 添加 alchemyApiKey。对于TON,添加 tonCenterApiKey |
| 没有样式或间距断裂 | 导入 styles.css缩放您的 CSS 重置 @layer base |
重复依赖性错误( E)valtio, (中文(简体) ), @reown/*, (中文(简体) ), @solana/*(中文(简体) ) | 带宽的版本 resolutions 编号 : overrides |
文件地图
| 向甚么处去 | 对于 |
|---|---|
| 单曲朗读 | 所有软件包、开发设置、贡献 |
-standalone • 妇女 -evm • 妇女 -solana • 妇女 -stellar | 包含的钱包部件和链式适配器 |
| 什么是交换部件? | 产品概览 |
| 部件集成 | 工作室行走( 框架或反应) |
| API 密钥和收费 | 费用分成、限额、报告 |
| 支持链 • 妇女 资产 | 可以交换什么 |
llms.txt | 所有文件的机器可读索引。 添加 .md 到任何文件 URL 以获取 Markdown |