Lightweight and friendly util library for DApp development on Nebulas Blockchain.
星云链 DApp 客户端开发框架,轻量,易用。
-
可以使用 npm 安装:
$ npm install nasa.js
-
也可以在页面中直接加载 CDN 版本:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/nasa.min.js"></script>
星云官方 JS SDK(neb.js 和 nebPay)功能完备,我为什么还要使用 Nasa.js?
-
平衡:Nasa.js 追求 “体积” 与 “功能” 之间的最佳平衡——用小巧的体积覆盖 90% 的 DApp 功能需求,满足你对网页性能的极致追求。
-
友好:专为 Web 前端工程师设计,把常见场景封装为高层 API,符合你的直觉和开发习惯。
功 能 | neb.js 完整版 |
neb.js 基础版 |
nebPay | Nasa.js |
---|---|---|---|---|
完整对接星云 HTTP 接口 | ✓ | |||
部署合约 | ✓ | |||
向指定地址转账 | ✓ | ✓ [1] | ✓ [1] [2] | |
调用合约(写入数据) | ✓ | ✓ [1] | ✓ [1] | |
调用合约(查询数据) | ✓ | ✓ | ✓ | |
查询交易结果(通过 txHash) | ✓ | ✓ | ||
查询交易结果(通过交易流水号) | ✓ | ✓ | ||
手机页面唤起手机钱包 [4] | ✓ | ✓ | ||
手机钱包扫码交易 | ✓ | ✓ [2] | ||
获取当前用户钱包地址 | ✓ [5] | |||
管理合约地址与当前环境 | ✓ | |||
分析当前浏览器环境 | ✓ | |||
常用工具方法 [6] | ✓ | |||
文件体积 [9] | 155 KiB | 9.7 KiB | 21 KiB | < 30 KiB |
- [1] 此功能通过唤起 “星云钱包 Chrome 扩展” 或 “星云手机钱包 App” 来实现。
- [2] Nasa.js 暂未直接实现此功能。但由于 Nasa.js 打包了完整的 nebPay,开发者目前需要直接使用 nebPay 来实现此功能。
- [4] 在手机浏览器(iOS Safari 或 Android Chrome 等)中调用 “星云手机钱包 App” 完成交易。
- [5] 此功能依赖 “星云钱包 Chrome 扩展” 实现。
- [6] 包括合约管理、判断地址/TxHash/交易流水号是否合法等工具方法。
- [9] 包含所有外部依赖的 dist 文件在 min + Gzip 之后的体积。
星云水浒 🏆 星云激励计划周亚军 |
星云链定时器 🌟 星云激励计划优秀奖 |
星云 Wiki 🌟 星云激励计划优秀奖 |
Nasa.js Demo 💡 星云激励计划新应用奖 |
表白墙斯密达 💡 星云激励计划新应用奖 |
我是预言帝 💡 星云激励计划新应用奖 |
Nasa.js 提供了丰富的 API,你可以把它当作库来用,只在你需要的时候调用某几个 API。你也可以让它帮你管理合约地址和当前环境,此时 Nasa.js 将为你提供更多便利,就像一个框架那样。
未来,Nasa.js 将为常见开发场景提供更完整的解决方案,成为一个更加称职的开发框架。
Nasa.js 的 dist 文件已经把所有外部依赖都打包进来了,因此可以独立使用。
在同一页面中同时加载这三者,并不会发生冲突,但这样对网页性能并没有好处。优化建议如下:
-
如果你的 DApp 加载 neb.js 只是为了向合约查询数据,则建议把相关代码迁移到 Nasa.js。这样你的 DApp 就不需要加载 neb.js 了。
-
由于 Nasa.js 本身已经打包了 nebPay 的源码,因此你不需要重复加载 nebPay。使用
Nasa.nebPay
即可以取代你代码中的nebPay
实例,详情参见 此文档。
来给 Nasa.js 提 issue 吧!
有任何关于 Nasa.js 的疑问,欢迎加群讨论!请加群主微信号 130-5994-1270
,群主会拉你入群。
姓名 | 贡献 [*] | 备注 |
---|---|---|
@cssmagic | 💻 🚇 |
创始人 |
@newraina | 💻 🚇 👀 🤔 | 开发团队成员 |
@salmonx(风) | 🐛 | |
@smallke(夏日小可) | 🐛 | |
希望之石 | 🤔 | |
@Heasn | 🤔 | |
bokehlicia | 🎨 | Logo 图片作者 |
[*] These legends follow the emoji-key of "all-contributors" specification. Contributions of any kind are welcome!
Nasa.js is based on these open source projects:
Nasa.js team is using JetBrains IDE (WebStorm) with Open Source License: