nexus-elements-transfer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseNexus Elements - Transfer
Nexus Elements - Transfer组件
Install
安装
- Install widget:
npx shadcn@latest add @nexus-elements/transfer
- Ensure is installed and initialized before rendering.
NexusProvider
- 安装组件:
npx shadcn@latest add @nexus-elements/transfer
- 确保在渲染前已安装并初始化。
NexusProvider
Required setup before rendering
渲染前的必要设置
- Ensure is initialized.
useNexus().nexusSDK - Ensure has loaded.
bridgableBalance - Ensure recipient is valid EVM address (prefill or user input).
- 确保已初始化。
useNexus().nexusSDK - 确保已加载完成。
bridgableBalance - 确保接收方地址为有效的EVM地址(可预填或由用户输入)。
Initialize SDK (required once per app)
初始化SDK(每个应用只需执行一次)
- On wallet connect, resolve an EIP-1193 provider and call .
useNexus().handleInit(provider) - Wait for before allowing transfer actions.
useNexus().nexusSDK - Re-run init after reconnect if wallet session resets.
- 连接钱包时,解析EIP-1193 provider并调用。
useNexus().handleInit(provider) - 在允许执行转账操作前,需等待初始化完成。
useNexus().nexusSDK - 若钱包会话重置,重新连接后需重新执行初始化操作。
Render widget
渲染组件
tsx
"use client";
import FastTransfer from "@/components/transfer/transfer";
import { SUPPORTED_CHAINS } from "@avail-project/nexus-core";
export function TransferPanel() {
return (
<FastTransfer
prefill={{
token: "USDC",
chainId: SUPPORTED_CHAINS.BASE,
recipient: "0x000000000000000000000000000000000000dead",
}}
onStart={() => {
// pending
}}
onComplete={() => {
// success
}}
onError={(message) => {
console.error(message);
}}
/>
);
}tsx
"use client";
import FastTransfer from "@/components/transfer/transfer";
import { SUPPORTED_CHAINS } from "@avail-project/nexus-core";
export function TransferPanel() {
return (
<FastTransfer
prefill={{
token: "USDC",
chainId: SUPPORTED_CHAINS.BASE,
recipient: "0x000000000000000000000000000000000000dead",
}}
onStart={() => {
// pending
}}
onComplete={() => {
// success
}}
onError={(message) => {
console.error(message);
}}
/>
);
}Live prop contract
实时属性约定
- :
prefill?- ,
token, optionalchainId, optionalamount.recipient
- : cap transferable amount.
maxAmount? - ,
onStart?,onComplete?callbacks.onError?(message)
- :
prefill?- 包含、
token,可选chainId、可选amount。recipient
- 包含
- : 限制可转账的最大金额。
maxAmount? - ,
onStart?,onComplete?回调函数。onError?(message)
SDK flow details (under the hood)
SDK流程细节(底层实现)
- Primary execute call:
sdk.bridgeAndTransfer({ token, amount, toChainId, recipient, sourceChains }, { onEvent })
- Pre-execution checks:
- validate recipient + amount
- compute max available via
sdk.calculateMaxForBridge(...) - enforce selected-source sufficiency
- Hook usage:
- for transfer intent preview/refresh/allow
intent.current - for source-specific allowance decisions
allowance.current
- Event mapping:
- -> initialize step tracker
NEXUS_EVENTS.STEPS_LIST - -> progress update and elapsed timer
NEXUS_EVENTS.STEP_COMPLETE
- 核心执行调用:
sdk.bridgeAndTransfer({ token, amount, toChainId, recipient, sourceChains }, { onEvent })
- 执行前检查:
- 验证接收方地址和金额
- 通过计算最大可用金额
sdk.calculateMaxForBridge(...) - 确保所选源链的余额充足
- Hook使用:
- 用于转账意向预览/刷新/授权
intent.current - 用于源链特定的授权决策
allowance.current
- 事件映射:
- -> 初始化步骤追踪器
NEXUS_EVENTS.STEPS_LIST - -> 更新进度和耗时计时器
NEXUS_EVENTS.STEP_COMPLETE
Understand recipient behavior
了解接收方相关行为
- Transfer flow requires recipient address.
- Prefill recipient locks input.
- Without prefill, UI validates recipient and blocks invalid addresses.
- 转账流程需要接收方地址。
- 预填接收方地址后,输入框将被锁定。
- 若未预填,UI会验证接收方地址,阻止无效地址的输入。
E2E verification
端到端验证
- Fill token/chain/amount/recipient and confirm intent preview appears.
- Adjust source chains and confirm coverage indicators update.
- Accept and verify allowance step when required.
- Confirm success updates explorer URL and refreshes balances.
- Confirm history refresh event appears in (when present).
ViewHistory
- 填写代币/链/金额/接收方地址,确认意向预览界面显示。
- 调整源链设置,确认覆盖指示器更新。
- 当需要授权步骤时,完成授权并验证。
- 确认成功后,更新浏览器URL并刷新余额。
- 确认历史记录刷新事件出现在中(若该组件存在)。
ViewHistory
Common failure cases
常见失败场景
- Invalid recipient:
- pass a checksummed or valid hex address.
- Exceeds selected source max:
- reduce amount or enable more source chains.
- Flow canceled:
- expect with user-cancel message and reset state.
onError
- expect
- 无效接收方地址:
- 需传入校验通过的有效十六进制地址。
- 超过所选源链的最大金额限制:
- 减少转账金额或启用更多源链。
- 流程被取消:
- 触发回调,返回用户取消的提示信息并重置状态。
onError
- 触发