Skip to content

Instantly share code, notes, and snippets.

@yuche
yuche / mibao.md
Last active December 15, 2021 08:31
盐铁私有化部署秘宝账户

Clone 代码切换到 yantie 分支

git clone https://github.com/nervina-labs/nft-wallet
cd nft-wallet
git checkout yantie

安装必要依赖

@yuche
yuche / burn.md
Created December 10, 2020 11:48
burn

reject error

{
    "code": -1,
    "message": "CKBInternalError: Script(TransactionScriptError { source: Inputs[0].Lock, cause: ValidationFailure(-101): the exit code is per script specific, for system scripts, please check https://github.com/nervosnetwork/ckb-system-scripts/wiki/Error-codes })",
    "data": "Error { kind: TransactionScriptError { source: Inputs(0, Lock), cause: ValidationFailure(-101) }\n\nstack backtrace:\n 0: failure::backtrace::internal::InternalBacktrace::new\n 1: <failure::backtrace::Backtrace as core::default::Default>::default\n 2: ckb_script::error::<impl core::convert::From<ckb_script::error::TransactionScriptError> for ckb_error::Error>::from\n 3: ckb_script::verify::TransactionScriptsVerifier<DL>::verify\n 4: ckb_verification::transaction_verifier::ContextualTransactionVerifier<M,CS>::verify\n 5: <core::iter::adapters::ResultShunt<I,E> as core::iter::traits::iterator::Iterator>::next\n 6: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter\n 7: core::iter::a
const path = require('path')
const os = require('os')
const CKB = require('@nervosnetwork/ckb-sdk-core').default
const { Indexer, CellCollector } = require('@ckb-lumos/indexer')
const LUMOS_DB = process.env.LUMOS_DB || path.join(os.tmpdir(), 'lumos_db')
const CKB_URL = process.env.CKB_URL || 'http://127.0.0.1:8117'
const Transport = require("@ledgerhq/hw-transport-node-hid").default;
@yuche
yuche / ledger-with-dao.js
Last active September 9, 2020 08:51
LedgerJS with NervosDAO
const path = require("path");
const os = require("os");
const CKB = require("@nervosnetwork/ckb-sdk-core").default;
const { Indexer, CellCollector } = require("@ckb-lumos/indexer");
const LUMOS_DB = process.env.LUMOS_DB || path.join(os.tmpdir(), "lumos_db");
const CKB_URL = process.env.CKB_URL || "http://127.0.0.1:8117";
// Whether to connect to a running instance of the Speculos simulator for
// ledger apps or a real physical ledger
const indexer = new Indexer(CKB_URL, LUMOS_DB);
@yuche
yuche / ledger.js
Last active October 1, 2020 04:59
Ledger test
const path = require('path')
const os = require('os')
const CKB = require('@nervosnetwork/ckb-sdk-core').default
const { Indexer, CellCollector } = require('@ckb-lumos/indexer')
const LUMOS_DB = process.env.LUMOS_DB || path.join(os.tmpdir(), 'lumos_db')
const CKB_URL = process.env.CKB_URL || 'http://127.0.0.1:8117'
// Note: there is currently a bug in the speculos simulator that appears not to
// have been adequately addressed that prevents correctly generating the the
@yuche
yuche / taro-3-pr.md
Last active June 30, 2020 13:38
# Taro 3.0 发布:开放式跨端跨框架解决方案

Taro 3 正式版发布:开放式跨端跨框架解决方案

从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验。今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Taro 未来的更多两年能像一名共产主义战士一样经受住更多的考验。以下是 Taro 3 的一些新增特性:

跨框架:React、Nerv、Vue 2、Vue 3、jQuery

在旧版本的 Taro,我们以微信小程序的开发规范为基准,使用 React/JSX 的方式来进行开发。而在 Taro 3,我们把这一思路量化为一个编程模型:

设微信小程序生命周期为一个 interface,不同的框架实例的生命周期虽然不尽相同,但我们可以根据框架生命周期分别新建一个 classimplements 小程序生命周期的 interface。相应地,小程序的组件/API/路由规范可以使用同样的思路和模型让不同框架的代码,运行在不同的端上:

@yuche
yuche / .md
Last active May 13, 2020 05:34
Taro 开源和研发规范

Taro 开源和研发规范

开源治理

  • Issue 生成器
    • 把所有 Issue 分为两类:Bug 和功能请求
    • 非 Bug 和功能请求的问题全部走 Taro 社区
    • 重大特性更新和架构更改需要走 RFC 流程
      • RFC 是一种为了保证重大特性更新和架构更改能够顺利推进的一种流程机制
  • Issue/PR 标签
@yuche
yuche / beta.md
Last active August 3, 2020 17:36
taro-next-beta

在 Taro Next 预览版(Alpha)版本之后,我们没有停下迭代的步伐,经过两个月的开发和数百次提交之后,现在我们谨慎但坚定地发布 Taro Next 测试(Beta) 版。相较于 Alpha,Beta 不但更稳定,也添加了更多的功能:

H5 编译支持

H5 编译支持是我们版本升级最重要的理由之一。这意味着原来开发者写的小程序应用,现在可以直接运行在 Web 中。添加 H5 支持非常简单,只需要在项目根目录安装 @tarojs/webpack-runner,运行 taro build —type h5 —watch 即可:

$ npm i -D @tarojs/webpack-runner@next
$ taro build —type h5 —watch
@yuche
yuche / taro-next-migration.md
Last active December 5, 2019 09:10
旧版本迁移指南

旧版本迁移指南

这是一篇针对旧版本用户升级到 Taro Next 的迁移指南。因为本章内容包含了许多详尽的阐述和迁移例子,所以看起来有一些长。但请不要担心,Taro Next 大部分用法还是和旧版本一样的。本章没有提到的内容,你可以像旧版本的 Taro 一样操作或使用

事实上,你并不需要去更改任何业务的逻辑代码,许多更改使用编辑器的「查找/替换」就可以完成。你甚至不需要完整地阅读整章内容(重点在 1,2 小节, API项目/页面配置),只有当出问题时定位到具体的小节即可。

更新到 Taro Next 首先需要更新项目依赖:

# 更新 CLI
$ npm i -g @tarojs/cli@next
@yuche
yuche / taro-next-pr.md
Last active April 27, 2020 15:31
Taro 2.0 发布文章的 3.0 部分

Taro Next 发布测试版:同时支持 React/Nerv/Vue

自 Taro 2.0 起,我们将会启动对整个 Taro 系统架构的革新,这次革新我们将其称之为 Taro Next。Taro Next 革新完成之后,Taro 本身的拓展性、稳定性、可维护性都会大幅提高,相应地,使用 Taro 的开发者也会获得更好的开发体验,降低更多开发成本和学习成本。

我们目前已经完成了编译系统、小程序及 H5 端的重构,通过 npm i -g @tarojs/cli@next 安装 Taro CLI 测试(beta)版之后,使用 taro init 创建新项目即可体验 Taro Next 的新特性:

同时支持 React/Vue/Nerv 三种框架

在旧版本的 Taro,我们以微信小程序的开发规范为基准,使用 React/JSX 的方式来进行开发。而在 Taro Next,我们把这一思路量化为一个编程模型: