小编Mab*_*Oza的帖子

加载 Solana 锚点测试的工作区 IDL 时出错

由于某种原因,我的摩卡测试无法找到我的 IDL。我收到以下错误:

name@Mabels-MacBook-Pro solana-anchor-reactjs-payment % anchor test
BPF SDK: /Users/name/.local/share/solana/install/releases/1.9.2/solana-release/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v
cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
    Finished release [optimized] target(s) in 0.84s
cargo-build-bpf child: /Users/name/.local/share/solana/install/releases/1.9.2/solana-release/bin/sdk/bpf/dependencies/bpf-tools/llvm/bin/llvm-readelf --dyn-symbols /Users/name/Solana/solana-anchor-reactjs-payment/target/deploy/solana_anchor_reactjs_payment.so

To deploy this program:
  $ solana program deploy /Users/name/Solana/solana-anchor-reactjs-payment/target/deploy/solana_anchor_reactjs_payment.so
The program address will default to this keypair (override with --program-id):
  /Users/name/Solana/solana-anchor-reactjs-payment/target/deploy/solana_anchor_reactjs_payment-keypair.json

Error: Error loading workspace IDL for solana_anchor_reactjs_payment
    at /Users/name/Solana/solana-anchor-reactjs-payment/node_modules/@project-serum/anchor/src/workspace.ts:101:13
    at Array.forEach (<anonymous>)
    at attachWorkspaceOverride (/Users/name/Solana/solana-anchor-reactjs-payment/node_modules/@project-serum/anchor/src/workspace.ts:90:31)
    at Object.get (/Users/name/Solana/solana-anchor-reactjs-payment/node_modules/@project-serum/anchor/src/workspace.ts:71:9)
    at Suite.<anonymous> (/Users/name/Solana/solana-anchor-reactjs-payment/tests/payment-test.ts:12:38)
    at Object.create (/Users/name/Solana/solana-anchor-reactjs-payment/node_modules/mocha/lib/interfaces/common.js:148:19) …
Run Code Online (Sandbox Code Playgroud)

typescript solana solana-web3js anchor-solana

10
推荐指数
1
解决办法
3837
查看次数

在 MacOS 上安装 Anchor -&gt; Anchor 版本不匹配

刚开始使用 Solana 的 Anchor。我刚刚安装了 Anchor 以及 Solana 和 Rust,Solana 和 Rust 已成功安装,但我在使用 Anchor 时遇到了问题。

每当我检查 Anchor 版本或执行 Anchor init 之类的操作时,都会收到一条错误消息,指出安装的 Anchor 版本不正确。

mabeloza@Mabels-MacBook-Pro ~ % anchor --version
Only x86_64 / Linux distributed in NPM package right now.
Trying globally installed Anchor.
Globally installed anchor version is not correct. Expected "anchor-cli 0.18.2", found "anchor-cli 0.18.0".
Run Code Online (Sandbox Code Playgroud)

该错误是不言自明的,我需要 Anchor 版本 0.18.2。问题是这个版本的 Anchor 不存在,如果你查看 github 页面,最新版本是 0.18.0。

https://github.com/project-serum/anchor/releases/tag/v0.18.0

我按照 Anchor 页面(https://project-serum.github.io/anchor/getting-started/installation.html)上的说明进行操作,是否有我应该使用的 Anchor 项目的不同分支/版本?

感谢大家的贡献!

solana

6
推荐指数
1
解决办法
3700
查看次数

如何使用 GolangCI 删除未使用的导入

我使用 makefile 在 GolangCI 工具中启用了 goimports,它能够发现未使用的导入,但不会自动删除它们。如何让我的 golangCI 工具自动删除未使用的导入?

下面是我的 golangci linting 的 makefile 命令,我使用的是标签--fix

##@ Linting
lint:
    @echo "lint via golangci-lint in " $(OUTPUT_DIR)/src
    docker run --rm -v $(PWD):/local \
        -w /local golangci/golangci-lint:latest \
        golangci-lint run --fix --config .golangci.yaml $(OUTPUT_DIR)/src/*.go
Run Code Online (Sandbox Code Playgroud)

下面是我的 golangci.yaml 文件,我设置remove-unused为 true :

run:
  timeout: 5m
  modules-download-mode: readonly

linters:
  enable:
    - errcheck
    - goimports
    - revive
    - govet
    - staticcheck

  # Configuration for the goimports linter
  goimports:
    # Set to true to remove unused …
Run Code Online (Sandbox Code Playgroud)

makefile go goimports golangci-lint

5
推荐指数
1
解决办法
1349
查看次数

将 Solana 空投到特定账户

我想将sol 空投到特定帐户中,以使我的智能合约触发锚定测试。每当我运行测试时,我都会遇到错误Error: Account BdFchxtKbEaWtsbuFX2nbKyZCjhz5LN8vyPukQzJQrME has insufficient funds for spend (1.30250136 SOL) + fee (0.000945 SOL) There was a problem deploying: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "" }.

该错误是不言自明的,但如何将代币空投到该特定帐户,我可以运行solana airdrop 5,但随后它将其空投到另一个帐户 GgRbD2AdibdAtBrQMJJEooco9gKt48Sd98Gn7vZQ1nJK。

我什至尝试使用将代币从一个帐户转移到另一个帐户solana transfer BdFchxtKbEaWtsbuFX2nbKyZCjhz5LN8vyPukQzJQrME 5 --allow-unfunded-recipient,但交易只是挂起。

下面是我使用 Anchor 在 Rust 中编写的智能合约:

use anchor_lang::prelude::*;
use anchor_lang::solana_program::system_program;

declare_id!("BNDCEb5uXCuWDxJW9BGmbfvR1JBMAKckfhYrEKW2Bv1W");

#[program]
pub mod solana_twitter {
    use super::*;
    pub fn send_tweet(ctx: Context<SendTweet>, topic: String, content: String) -> ProgramResult {
        let tweet: &mut Account<Tweet> = &mut ctx.accounts.tweet; …
Run Code Online (Sandbox Code Playgroud)

rust blockchain solana solana-cli anchor-solana

4
推荐指数
1
解决办法
2829
查看次数

NestJS 读取文件 - 没有这样的文件或目录

我无法让 NestJS 应用程序读取我的证书秘密文件,甚至是简单的 txt 文件。我收到错误:

错误 [ExceptionsHandler] ENOENT:没有这样的文件或目录

以下是我正在做的所有事情,使用 fs 读取文件:

import {FireblocksSDK, PeerType, TransactionArguments, TransactionOperation, TransactionStatus} from "fireblocks-sdk";
import fs = require('fs');
import path = require('path');

function fireblocks() {
    const text = fs.readFileSync(('./data.txt'), 'utf8');
    console.log(text);
    const apiSecret = fs.readFileSync(path.resolve(__dirname, "../../certs/fireblocks_secret.key"), "utf8");
    return new FireblocksSDK(apiSecret, process.env.FIREBLOCKS_ACCESS_TOKEN);
}
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的文件结构:

错误 [ExceptionsHandler] ENOENT:没有这样的文件或目录

在此输入图像描述

node.js express nestjs nestjs-config fireblocks-sdk

3
推荐指数
1
解决办法
1万
查看次数

使用 Kubebuilder 生成控制器 Gen

我正在尝试在 Kubebuilder 中构建我的自定义资源项目,但每当我构建它时,我似乎都缺少我的控制器生成。我不断收到错误:

/Users/*****/Kubernetes/postgres-writer-operator/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
bash: /Users/****/Kubernetes/postgres-writer-operator/bin/controller-gen: No such file or directory
make: *** [generate] Error 127
Error: failed to create API: unable to run post-scaffold tasks of "base.go.kubebuilder.io/v3": exit status 2
Usage:
  kubebuilder create api [flags]
Run Code Online (Sandbox Code Playgroud)

我是 Kubernetes 新手,正在遵循以下教程: https://yash-kukreja-98.medium.com/develop-on-kubernetes-series-operator-dev-understanding-and-dissecting-kubebuilder-4321d3ecd7d6

首先,我运行以下命令来引导我的项目:

kubebuilder init \
--domain yash.com \
--repo github.com/yashvardhan-kukreja/postgres-writer-operator \
--project-name postgres-writer-operator \
--license apache2 \
--skip-go-version-check
Run Code Online (Sandbox Code Playgroud)

运行命令后,我进入目录并找到以下文件和文件夹: 在此输入图像描述

然后下一步是为我的自定义资源 PostgresWriter 运行引导程序并将其附加到运算符。

kubebuilder create api \
--group demo \
--version v1 \
--kind PostgresWriter \
--resource true \
--controller …
Run Code Online (Sandbox Code Playgroud)

containers kubernetes kubebuilder kubernetes-operator

1
推荐指数
1
解决办法
5818
查看次数