npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

donut-ide

v0.0.22

Published

提供基于蚂蚁区块链“智能合约”的开发、测试和发布管理等基本功能,同时输出区块链服务的能力,进而高效实现一个DApp。

Downloads

20

Readme

1. 简介

为了支持区块链应用的高效开发,测试和发布,蚂蚁区块链提供了结合支付宝小程序IDE集成开发合约的插件,同时插件可以在小程序中输出区块链服务能力,建立小程序和区块链服务之间的“桥梁”,实现区块链服务在小程序场景内的应用。

  • 关于“蚂蚁区块链BaaS平台”介绍,请参考说明文档
  • 关于“蚂蚁区块链合约平台”介绍,请参考说明文档

问题咨询

DApp-group-QR.jpg

1.1 核心功能介绍

插件核心提供的功能如下:

  1. 配置简单:开发者只需要配置ak和sk,通过登录金融科技获取ak/sk,无需配置证书、无需创建合约链账户。
  2. 自动生成合约工程目录:插件可根据简单配置选项自动生成合约工程目录和合约样例代码,同时生成访问区块链服务的相关代码。
  3. 支持合约开发和测试:编译、部署和单元测试,同时在IDE中可以集成测试小程序调用合约,完成端到端的完整流程测试。
  4. 支持合约发布记录管理:查看已开发合约的发布记录,合约的字节码和abi信息,选中已发布合约加载到小程序前端代码中自动生成合约对象,直接调用合约方法。
  5. 小程序使用区块链相关服务:插件自动在工程中生成代码,实现在小程序中调用区块链服务,比如:直接调用使用“账户映射服务”为小程序用户创建区块链账户;插件将合约封装为javascript中合约对象,输出区块链智能合约能力,小程序端可以像调用本地对象方法一样调用区块链合约方法。此外,小程序还可以直接调用区块链“存证接口”进行存证。

屏幕快照 2019-09-07 下午8.06.00.png

1.2 获取插件

可以在支付宝小程序IDE插件市场获取并安装插件: 20191010174945.5ab193d4e0846f51ae322be1f0835e65.png

2. 插件工作原理

小程序IDE插件是在“小程序”端和“区块链服务”之间建立连接的“桥梁”,实现区块链服务在小程序中应用。 小程序IDE插件原理.png

3. 环境准备

在小程序中使用区块链服务,需要至少有一条蚂蚁区块链的访问权限,可登录蚂蚁区块链BaaS申请购买专属合约链,在实验测试阶段可以使用蚂蚁区块链BaaS提供的公共“合约体验链”。 登录金融科技获取开发需要的ak和sk,在使用插件时根据提示填入配置。注意:此ak和sk,将被配置到插件生成的小程序代码中,请根据实际情况的安全性要求进行调整(比如:使用“云函数”等应用服务管理ak和sk进而访问区块链服务)。 屏幕快照 2019-09-07 下午8.34.41.png

4. 合约开发

插件在使用过程中,可按照提供的功能标签顺序使用:

  1. 信息:创建合约工程,开发合约;
  2. 编译:编译合约;
  3. 部署更新:选择目标合约链环境(默认提供:合约体验链),编写部署脚本,部署并发布合约,或更新升级合约;
  4. 测试:编写单元测试用例,一键执行测试合约功能;

屏幕快照 2019-09-07 下午8.41.35.png

  • 其中第1步,生成的合约工程目录结构如下:

屏幕快照 2019-09-07 下午8.57.29.png

  • 其中第2步,编译合约的结果保存在blockchain/contracts目录下,每个json文件中都包含了对应合约编译的结果字节码和abi等详情。

  • 其中第3步,需要编写一个脚本来说明多合约部署的先后部署顺序、依赖关系等,样例部署脚本如下:

module.exports = function(client, contractMap, done) {
  const Demo = contractMap.Demo
  // 合约部署到生产环境
  client.deploy('name'+Date.now(), Demo).then((data) => {
    client.log('Demo success')
    done()
  }).catch((err) => {
    client.log('Demo error')
    client.errorLog(err)
    done()
  })
};

如果合约部署时,需要执行constructor初始化方法,并且需要传递参数,则可以直接通过deploy方法传递参数:['param1', 'param2', 'param3']

module.exports = function(client, contractMap, done) {
  const Demo = contractMap.Demo
  // 合约部署到生产环境
  client.deploy('name'+Date.now(), Demo, ['param1', 'param2', 'param3']).then((data) => {
    client.log('Demo success')
    done()
  }).catch((err) => {
    client.log('Demo error')
    client.errorLog(err)
    done()
  })
};

2.jpg

  • 其中第4步骤中,编写单元测试,可以通过在blockchain/test目录中编写单元测试用例,插件主要提供了Mocha测试框架能力。

3.jpg

5. 合约发布记录

插件也可以查看合约的发布记录情况,同时发布记录与在线工具Cloud IDE的发布记录保持同步,在Cloud IDE发布的合约记录,在这里同样可以展示。

同时发布记录提供发布合约的字节码(bytecode)和接口说明(abi)的详细信息,方便使用。 5.jpg

6. 小程序中调用合约

6.1 准备工作

1.在小程序开发者中心添加服务器域名白名单,将网关域名prodapigw.cloud.alipay.com加入白名单。 6.jpg

2.注意:如果提示域名添加失败,请在区块链BAAS中提交工单开通权限。 7.jpg

3.开通完成,添加服务器域名白名单,填写域名申请,选择对外服务系统不在一个集群,其余根据自己的业务进行填写,审批之后即可在小程序中调用合约。 8.jpg

6.2 调用合约

如下图,在代码中需要引入Blockchian对象调用合约,contractName为用户发布的合约名称,get为合约中的方法名称,如需给合约传递参数,则在第三个参数中传入数组[合约参数1, 合约参数2, ...]9.jpg