Solana 测试程序锚点测试失败 tsconfig.json"> 需要类型为“json”的导入断言

Jul*_*lia 14 testing anchor rust smartcontracts solana

我运行了anchor test --skip-deploy,它应该做的就是初始化我的程序,但我得到的只是这个错误,我无法解决。我检查了 tsconfig.json 设置,它们应该没问题。这只是默认的锚点设置,我不会在任何地方导入任何不寻常的 JSON 文件。

锚点测试 --skip-deploy BPF SDK:/Users/julia/.local/share/solana/install/releases/1.9.5/solana-release/bin/sdk/bpf Cargo-build-bpf 子项:rustup 工具链列表 - v Cargo-build-bpf 子项:cargo +bpf build --target bpfel-unknown-unknown --release 警告:未使用的变量:ctx -->programs/feeRedeemCounter/src/lib.rs:8:23 | 8 | pub fn 初始化(ctx: Context) -> ProgramResult { | ^^^ 帮助:如果这是故意的,请在其前面添加下划线:_ctx | = 注意: #[warn(unused_variables)]默认开启

警告:feeRedeemCounter(lib)生成了 1 个警告在 1.28s 中完成了发布 [优化] 目标 Cargo-build-bpf 子项:/Users/julia/.local/share/solana/install/releases/1.9.5/solana-release /bin/sdk/bpf/dependencies/bpf-tools/llvm/bin/llvm-readelf --dyn-symbols /Users/julia/Downloads/anchorTutorial/feeRedeemCounter/target/deploy/fee_redeem_counter.so

要部署此程序: $ solana program deploy /Users/julia/Downloads/anchorTutorial/feeRedeemCounter/target/deploy/fee_redeem_counter.so 程序地址将默认为此密钥对(使用 --program-id 覆盖):/Users/julia/ Downloads/anchorTutorial/feeRedeemCounter/target/deploy/fee_redeem_counter-keypair.json 纱线运行 v1.22.17 警告 package.json:没有许可证字段 $ /Users/julia/Downloads/anchorTutorial/feeRedeemCounter/node_modules/.bin/ts-mocha -p ./tsconfig.json -t 1000000 '测试/**/*.ts'

TypeError:模块“file:///Users/julia/Downloads/anchorTutorial/feeRedeemCounter/tsconfig.json”需要在 validateAssertions (node) 处的新 NodeError (node:internal/errors:371:5) 处输入类型为“json”的导入断言:内部/模块/esm/assert:82:15)在defaultLoad(节点:内部/模块/esm/load:24:3)在ESMLoader.load(节点:内部/模块/esm/loader:359:26)在ESMLoader.moduleProvider(节点:internal/modules/esm/loader:280:58)在新的ModuleJob(节点:internal/modules/esm/module_job:66:26)在ESMLoader.#createModuleJob(节点:internal/modules/esm/) loader:297:17) 在 ESMLoader.getModuleJob (node:internal/modules/esm/loader:261:34) 在 async Promise.all (索引 0) 在 ESMLoader.import (node:internal/modules/esm/loader:337) :24) 在 importModuleDynamicallyWrapper (节点:internal/vm/module:437:15) 在 formattedImport (/Users/julia/Downloads/anchorTutorial/feeRedeemCounter/node_modules/mocha/lib/nodejs/esm-utils.js:7:14)在Object.exports.requireOrImport(/Users/julia/Downloads/anchorTutorial/feeRedeemCounter/node_modules/mocha/lib/nodejs/esm-utils.js:48:32)在Object.exports.loadFilesAsync(/Users/julia/Downloads/) anchorTutorial/feeRedeemCounter/node_modules/mocha/lib/nodejs/esm-utils.js:103:20) 在 singleRun (/Users/julia/Downloads/anchorTutorial/feeRedeemCounter/node_modules/mocha/lib/cli/run-helpers.js: 125:3) 在 Object.exports.handler (/Users/julia/Downloads/anchorTutorial/feeRedeemCounter/node_modules/mocha/lib/cli/run.js:374:5) 错误 命令失败,退出代码 1.info 访问 https: //yarnpkg.com/en/docs/cli/run有关此命令的文档。错误:找不到程序地址。

Jul*_*lia 41

我通过运行解决了自己的问题

纱线添加 ts-mocha

  • 看来是版本问题。Anchor init 使用 8.0.0,执行此操作后,更新到 10.0.0 (3认同)