# Acala/Karura aUSD 跨链转账的 SDK接口设计 Acala 转到 Karura 还好, 用户查看aUSD余额什么的直接走之前的查询余额啥的,额外提供的接口: 1. approve aUSD 给 wormholeBridge合约, evm call aUSD.approve 2. 跨链转账到Karura , evm call wormholeBridge.transferToken , 【接收地址问题】 其实这俩还可以batch_call 成一笔, 调用时,提供一个 amount 就行 (其余参数,合约地址哪些都是确定的,配置即可)。 Karua 侧会复杂一点, 1. 要提供 waUSD 的余额查询接口,用户传 substrate 地址, 要先走 evm-accounts 拿到 substrate 地址对应的 evm 地址, 再去 waUSD 合约查询 evm 的余额 2. 提供接口是让用户将 waUSD 转化成 KUSD, 这个走 substrate 的调用, 有个前置判断 honzonBridge.bridgedStableCoinCurrencyId 这个存储不为空, 然后构造 honzonBridge.from_bridged 的函数 3. 提供接口让用户将KUSD转化成 waUSD, 同上,先前值判断, 然后构造 honzonBridge.to_bridged 4. 提供接口让用户 跨链转 waUSD 到 Acala 上, 【接收地址问题】 5. 提供接口batch 下 convert KUSD to waUSD , 再跨链转 到 Acala 上 【接收地址问题】 ## 接收地址问题 这个有点烦,用户自己输evm地址作为接收地址就没有问题, 但我们这个sdk暴露出去的是纯substrate的。 一是用户不输入地址, 我们默认用户是想自己转给自己(同一个substrate地址), evm地址得填 substrate 地址 在dest 网络 上绑定的 evm地址。 而是用户想要指定substrate地址, 那evm地址填用户指定 substrate地址在dest 网络 上绑定的 evm地址。 可以做成一个接口, 用optional 参数来自定义地址。 或者是直接独立成两个接口好了, 更清楚一些 另外刚提到要sender 和 receiver 都绑过 evm地址才能使用, 那上面的接口凡是涉及到 evm call 和 查询的, 都检查下 地址是否绑了没有, 没有就返回错误好了
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up