git clone https://github.com/nervina-labs/nft-wallet
cd nft-wallet
git checkout yantie
{
"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; |
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); |
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 |
从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验。今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Taro 未来的更多两年能像一名共产主义战士一样经受住更多的考验。以下是 Taro 3 的一些新增特性:
在旧版本的 Taro,我们以微信小程序的开发规范为基准,使用 React/JSX 的方式来进行开发。而在 Taro 3,我们把这一思路量化为一个编程模型:
设微信小程序生命周期为一个 interface
,不同的框架实例的生命周期虽然不尽相同,但我们可以根据框架生命周期分别新建一个 class
去 implements
小程序生命周期的 interface
。相应地,小程序的组件/API/路由规范可以使用同样的思路和模型让不同框架的代码,运行在不同的端上:
在 Taro Next 预览版(Alpha)版本之后,我们没有停下迭代的步伐,经过两个月的开发和数百次提交之后,现在我们谨慎但坚定地发布 Taro Next 测试(Beta) 版。相较于 Alpha,Beta 不但更稳定,也添加了更多的功能:
H5 编译支持是我们版本升级最重要的理由之一。这意味着原来开发者写的小程序应用,现在可以直接运行在 Web 中。添加 H5 支持非常简单,只需要在项目根目录安装 @tarojs/webpack-runner
,运行 taro build —type h5 —watch
即可:
$ npm i -D @tarojs/webpack-runner@next
$ taro build —type h5 —watch
自 Taro 2.0 起,我们将会启动对整个 Taro 系统架构的革新,这次革新我们将其称之为 Taro Next。Taro Next 革新完成之后,Taro 本身的拓展性、稳定性、可维护性都会大幅提高,相应地,使用 Taro 的开发者也会获得更好的开发体验,降低更多开发成本和学习成本。
我们目前已经完成了编译系统、小程序及 H5 端的重构,通过 npm i -g @tarojs/cli@next
安装 Taro CLI 测试(beta)版之后,使用 taro init
创建新项目即可体验 Taro Next 的新特性:
在旧版本的 Taro,我们以微信小程序的开发规范为基准,使用 React/JSX 的方式来进行开发。而在 Taro Next,我们把这一思路量化为一个编程模型: