戴莫·SDK
pnpm add @daimo/sdk
见 dos.daimo.com (英语) 为了更多.
入境点
@daimo/sdk/common- 会话类型、 API 计划和常数@daimo/sdk/client——瘦 REST 客户端包装/v1/*Daimo API, 对自定义 UI 有用@daimo/sdk/web- 反应模式(<DaimoModal>)和内置存款UI的钩子@daimo/sdk/native- 反应原生矿床UI(<DaimoFrameRN>结束react-native-webview
样式
导入 @daimo/sdk/web/theme.css 用于内置网络用户界面。 分布式样式表命名空间 : daimo- 这样它就可以与主机应用的"Tailwind"构建共存.
@daimo/sdk/web/styles.css 仍可作为等同的别名.
退出部件
DaimoWithdrawal 收集收件人地址或 ENS 名称、 目的地
和目的网络,然后请您的服务器创建
打开会话。 把它包起来 DaimoSDKProvider 因此 ENS 分辨率和会话
投票使用提供者配置的Daimo API URL.
ENS工作时没有附加配置. 这个 createSession 必须回调
用您的 Daimo API 密钥调用您的认证后端; 永远不要曝光该密钥
在浏览器代码中.
import "@daimo/sdk/web/theme.css";
import { DaimoSDKProvider, DaimoWithdrawal } from "@daimo/sdk/web";
export function Withdrawal() {
return (
<DaimoSDKProvider>
<DaimoWithdrawal
fundingMode="injected-wallet"
contactStorageScope={currentUser.id}
theme={accountTheme}
createSession={(input) =>
fetch("/api/withdrawal/session", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(input),
}).then((response) => response.json())
}
/>
</DaimoSDKProvider>
);
}
contactStorageScope 必须是稳定的认证用户或账户ID。 这个
部件用它来隔离本地存储中保存的目的地 。 ENS总是
解析在 Ethereum 主网上, 无论选择的目的地网络.
将后端返回的组织主题通过 theme; 数据
部件在显示收件人用户界面前等待自定义样式表。 明确
themeMode 道具覆盖主题的光/ 暗/ 系统模式,同时保留
它的样式表.
过 resolveEns 仅在您有意需要自定义 ENS 时
决议。 回调收到一个ENSIP-15的常态化名称并带走
胜过戴莫主播的解答者 在您身后保留已支付的 RPC 证书
拥有经认证的后端.
使用 connectToAddress 当主机已连接 EVM 钱包时 。 单位
注入的wallet 流,设置 walletSource="evm" 排除仅索拉纳语
钱包,只使用双链钱包中的 EVM 提供者。 默认是
"all"这保留了EVM和索拉纳的混合资金.
手动模式从未提交 EIP-1193 提供者交易 。 主机拥有
通过 sendManualTransaction,而SDK则保留接收器
复用、重复投递保护、复试、投票和生命周期召回.
选择一个手工量模式 :
- 过
amountUnits用于正数固定小数。 SDK提交来 选择目的地后立即; 此变体不能同时使用connectToAddress。 。 。 . - 双关
amountUnits财务报告和审定财务报表connectToAddress通用美元条目。 SDK这个 接受$0.01+最多有两个小数位. - 奥米
amountUnits并通过一个EVMconnectToAddress用于只读符号和 平衡选择。 回调收到选中的源代码和精确度 余额封存的原始金额.
<DaimoWithdrawal
fundingMode="manual"
connectToAddress={embeddedWallet.address}
contactStorageScope={currentUser.id}
createSession={createWithdrawalSession}
sendManualTransaction={async ({ receiverAddress, source }) => {
if (!source) throw new Error("source token is required");
const txHash = await embeddedWallet.sendToken({
chainId: source.token.chainId,
token: source.token.token,
to: receiverAddress,
amount: source.amount,
});
return { txHash };
}}
/>
完整的适配器请求是:
type DaimoWithdrawalManualTransferRequest = {
sessionId: string;
receiverAddress: Address;
destination: DaimoWithdrawalDestination;
expiresAt: number;
amountUnits: string;
source?: {
address: Address;
token: DaimoPayToken;
amount: bigint;
};
};
amountUnits 是精确的固定或SDK入小数字符串. source 实值
总是在地址识别路径中显示, 并省略固定或通用的
手动输入. source.amount 是确切的原始值。 只在
提交或移交交易,并仅在重试时拒绝
同一会话是安全的。 重试重用相同的隐藏接收器 。 归还
交易散列让民意测验更早发现转移.
对于通用手动条目,省略地址:
<DaimoWithdrawal
fundingMode="manual"
contactStorageScope={currentUser.id}
createSession={createWithdrawalSession}
sendManualTransaction={async ({
receiverAddress,
amountUnits,
expiresAt,
}) => {
const txHash = await hostWallet.sendStablecoin({
to: receiverAddress,
amountUnits,
expiresAt,
});
return { txHash };
}}
/>
过 amountUnits="25.00" 改为固定手工提交的同一部分.
evmProvider 每个手动变体都禁止.
账户注册互动
内置账户的流量比版本的要薄
EnrollmentInteraction 合同。 服务器选择下一个语义
交互、本地化副本、打印格式修订、不透明的提交行动、,
主持回归行为 投票政策 SDK详尽地规定
表格、检察官办公室/转发、账号核对、主机操作、等待/审查、,
复试,终点站,以及活动状态,没有在铁路或供应商上分出.
DaimoClient.account.getEnrollmentInteraction 财务报告和审定财务报表
submitEnrollmentAction 是主要的客户方法。 年长者
startEnrollment 和专用形式/OTP方法在
支持兼容性窗口。 内置渲染器掉回那些
仅当服务器尚未曝光添加剂通用的 HTTP 路径
路径; 在一个完整支持的释放窗口显示否后删除适配器
a 遥测中的缺失倒计时.
暂时无法使用的方法
一个有线导航节点可以包括 temporarilyUnavailable: true方法
可选择。 模式在账户前显示临时退出消息
登录后让用户返回付费拾取器。 以往付款的存款
仍然打开他们的状态页面.
模块入学申请包括可选 session: { sessionId, clientSecret }
上下文,这样服务器就可以应用目的地 Org 的铁路暂停。 全账户
客户端的调用可以省略此字段的相容性. 部署接受的服务器
在推出这个SDK之前 存款创建总是由
服务器; 仅导航旗不是访问控制.