Porto 是一个开发者优先的 Typescript 库,旨在实现身份验证、加密支付和账户恢复无缝集成到应用中,目标是成为为下一代应用提供支持的隐形基础设施。它利用 EIP-7702 等账户抽象钱包的最新创新,并已与 Wagmi 等工具集成。
2024.12.11·更新
发布 Porto,一个开发者优先的 Typescript 库,它使身份验证、加密支付和帐户恢复能够无缝集成到你的应用程序或现有工具包(例如 Wagmi、Privy 等)中。我们对 Porto 的愿景是成为为下一代应用程序提供支持的隐形基础设施。
我们邀请应用程序和钱包开发者试用并向我们提供反馈。立即尝试:npm install porto
,为 库 点赞并贡献,或查看 智能合约。
Porto 真的非常简单且强大,它具有帐户抽象钱包的最新创新,例如 EIP-7702、RIP-7212、EIP-6963 和 EIP-5792。它已与该领域流行的开发工具一起使用,例如 Wagmi 或 Privy。
这是一个使用 Porto 将帐户连接到应用程序的简单示例。
import { Porto } from 'porto'
const porto = Porto.create()
const account = await porto.provider.request({
method: 'experimental_connect',
params: [{ capabilities: { grantSession: true } }]
})
继续阅读以了解有关 Porto 工作原理以及如何参与的更多信息。
每个应用程序都需要一个帐户,传统上需要单独的服务来进行身份验证、支付和恢复。以一种使用户能够控制其资金和数据的的方式来做到这一点是加密空间的核心挑战。虽然加密钱包已经取得了很大的进步,但用户仍然面临着碎片化的体验 - 兼顾私钥、管理跨网络的账户余额、 必须安装浏览器扩展等等。
我们认为,不可阻挡的加密技术驱动的帐户在用户的整个过程中都应该是卓越的:
Porto 是我们的解决方案 - 一种下一代帐户和 SDK,它将这些功能统一到一个无缝的体验中。
Porto 适用于 Web、移动和桌面平台,无需扩展程序或 QR 码,从而将钱包直接带到你的应用程序。
请参阅下面使用Henr Privy 的 CEO,Henri Stern 使用 Porto 的实时演示。
Porto 通过为 Ethereum 提供多年支持的强大标准(例如 EIP-1193)以及令人兴奋的即将推出的硬分叉功能(例如 EIP-7702: 设置帐户代码)来实现其独特性。它简单易用,并且可以与现有工具(如 Wagmi)一起使用。
要亲自试用 Porto,请查看 Porto GitHub 存储库 或在 npm 上 安装 porto
。请继续阅读以了解有关 Porto 工作原理的更多详细信息。
EIP-1193 通过标准化钱包与应用程序通信的 Provider 接口,改变了 Ethereum 应用程序开发。这允许应用程序开发人员请求帐户、对链更改做出反应等等,而无需自定义代码。
Porto 配备了与 EIP-1193 兼容的 Provider,可以像使用浏览器扩展程序或基于应用程序的钱包(例如provider.request({ method, params })
)一样轻松使用 WebAuthn 帐户。例如,你可以请求与当前上下文中密码密钥关联的帐户。
import { Porto } from 'porto'
const porto = Porto.create()
const accounts = await porto.provider.request({
method: 'eth_requestAccounts'
})
为了支持基于帐户的会话,Porto 实现了以下实验性 JSON-RPC 方法:
experimental_connect
将最终用户连接到应用程序。experimental_createAccount
创建并连接一个新帐户。experimental_disconnect
断开帐户。experimental_grantSession
授予帐户会话。(ERC-7715 草案规范的最小替代方案。我们希望从该方法中向上游传输概念,并最终使用 ERC-7715 或类似方法。)experimental_sessions
列出帐户上的活动会话。查看 JSON-RPC 参考 以了解有关实验性 JSON-RPC 方法和相应的 ERC 5792 功能 的更多信息,或者尝试 Porto Playground 以检查并查看这些方法的工作原理。
(注意:这些 JSON-RPC 方法旨在通过 ERC 向上游传输,或者在不久的将来被弃用,以支持即将推出的/现有的 ERC。它们具有故意的极简性,并旨在进行迭代。)
现在,大多数应用程序开发人员不直接使用 1193 Providers,而是使用更高级别的库,例如 Wagmi,它们通过将你选择的框架(例如 React、Vue)插入到 EIP 1193 请求和事件中来管理状态和反应性。例如,当钱包 Provider 切换链时,Wagmi 会监听并跟踪更新。
除了内置的 1193 Provider 之外,Porto 还通过 Wagmi 的内置 EIP-6963 支持与 Wagmi 兼容。要开始使用,只需导入 Porto 并将其与 Wagmi 一起配置即可。
import { Porto } from 'porto'
import { http, createConfig, createStorage } from 'wagmi'
import { odysseyTestnet } from 'wagmi/chains'
Porto.create()
export const wagmiConfig = createConfig({
chains: [odysseyTestnet],
transports: {
[odysseyTestnet.id]: http(),
},
})
最后,Porto 导出一系列 Wagmi VanillaJS Action 和 React Hooks,以简化构建帐户会话体验。查看 Wagmi 参考 以获取更多信息,或尝试 Wagmi Porto Playground 或在 Privy 的 “使用 EIP 7702 的订阅” 中查看 Porto 的实际应用。
Porto 代表了我们对帐户应有的愿景——隐形的基础设施,可以正常工作。我们已将其设计为非强制性的和模块化的,作为希望访问新颖帐户抽象功能的钱包的支柱。
对于开发人员而言,无论你是想要完全嵌入式体验还是与现有钱包流程集成,Porto 都提供了一条简单的集成路径。对于用户而言,这意味着无需在应用程序和钱包之间进行上下文切换,无需再扫描 QR 码,也无需再考虑他们使用的是哪条链。
我们很高兴与以下人员合作:
帐户的未来就在这里 - 全球化、私有且无缝集成。加入我们一起构建它。如果你是一位优秀的 Typescript 开发人员,我们很乐意你加入我们的团队,如果你有兴趣,请 联系我们。
- 原文链接: ithaca.xyz/updates/porto...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!