Frame Beta.12 发布:跨链资产发送功能详解

Frame beta.12版本新增原生货币和ERC-20代币跨链发送功能,支持并行链操作,引入钱包级RPC方法和事件机制,为dapp开发者提供更流畅的多链用户体验。

在Frame中发送资产

作者:Matt Holtzman
发布时间:2022年1月28日

虽然我们收到的Frame功能建议包含许多有趣的新功能想法,但过去几个月中最频繁的功能请求是向其他账户发送货币和代币的能力。我们(或我们优秀社区的成员)屡次回复说需要使用第三方dapp来构建交易。但这已成为过去:Frame beta.12版本支持从任何连接链上的任何账户发送原生货币和ERC-20代币。

从账户视图顶部启动发送dapp

首先你会注意到这在Frame内启动了一个新窗口。这是一个经过深思熟虑的选择,我们计划通过系列文章解释这一决定的理由,并阐述我们对Frame未来的愿景。目前主要需要理解的是:要在Frame中发送资产…你仍然需要一个dapp!唯一区别是这个dapp由Frame Labs团队编写,并与应用程序捆绑提供。

0:00/1×
在任何连接链上发送资产!

使用方法

该dapp本身简单直观,大部分功能无需解释,但让我们讨论一些可能不太明显的细节点:

  • 首先你会注意到dapp中几乎无处不在的"链选择"控件消失了!这是因为该dapp可同时在你连接的所有链上工作。无需选择链、切换链,甚至完全不需要"在某个链上"的概念——所有内容都在一个地方。

  • 首次打开dapp时,你会看到所有资产的列表——即你连接的所有链的原生货币以及这些链上的任何ERC-20代币。这些资产基于Frame使用的代币列表和你选择跟踪的任何自定义代币。使用搜索过滤器按名称、符号或链快速过滤资产。

  • 你可以仅使用键盘导航。使用Enter提交任何信息,↑/↓滚动代币列表,Ctrl+←/→(Win/Linux)或Command+←/→(macOS)在面板间导航。如果更喜欢使用鼠标,也可以使用窗口右下角的按钮导航。

  • 提交后,你将能够在Frame中更改gas设置或查看合约数据,与任何其他交易相同。

并行链体验

我们想借此机会不仅提供经常请求的功能,还为解决当前web3环境中某些UX问题提供新思路。

具体来说——与本文最相关的是——今天大多数去中心化应用程序保持着"在某个链上"的概念。为了与不同链交互,用户需要来回切换,有时需要重复执行此操作以完成基本任务。这种体验繁琐烦人,在具有不断扩展的互连侧链和第2层解决方案网络的环境中越来越不合理。

Frame中的链路由!

为解决这个问题,我们向Frame添加了基础设施,使其能够并行在所有连接链上工作。我们还添加了一些钱包级功能,以允许dapp开发者轻松与Frame集成:

  • wallet_getChains RPC方法返回用户所有可用链
  • chainsChanged事件,其工作方式类似于EIP-1193等现有规范中概述的事件。当dapp可用的链发生变化时,应发出此事件。在Frame中,这将在用户添加链、移除链、关闭连接或连接因某种原因断开时发生
  • 新的顶级JSON RPC有效负载参数chainId,可用于让请求定位特定链。整个有效负载现在可能如下所示:
1
2
3
4
5
6
7
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "eth_sendTransaction",
  "chainId": "0x89",
  "params": [ ... ]
}

我们现在公开这个并行链接口,以便开发者可以构建用户不受限于一次在一个链上执行操作的dapp。连接dapp获得可用链列表后,可以使用该信息创建无缝的多链体验——例如实现特定链功能或将传出请求路由到所需链——所有这些都无需用户来回切换。发送dapp建立在这些概念之上,展示了如果我们从头开始构建dapp时考虑到web3 UX,dapp如何感觉更流畅、更"原生"。

这一变化和其他仍在开发的变化将构成即将推出的以太坊改进提案的基础。发送dapp将成为展示这些新标准价值以及开发者如何利用它们提供更丰富、更web3原生体验的例证A。

我们将继续跟进我们对Frame和web3未来的展望,以及所述EIP的更多细节和这些想法的一些形式化内容。同时,试试Frame发送dapp,并在Twitter或Discord上找到我们,告诉我们你的想法!

想参与web3中最令人兴奋的项目之一吗?我们正在招聘!

https://discord.gg/XgNfMeAB
https://twitter.com/0xFrame

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计