0

我已经分叉了metaplex 代码,并且正在尝试实现具有预售功能的糖果机。您可以查看此拉取请求以供参考:https ://github.com/FluffyPorcupine/metaplex/pull/1/files 。我已经修改了 rust lib.rs 和 candy-machine-cli.ts 文件来实现我认为它可能工作的方式。

我能够成功地将程序部署到 solana 和锚点,将 idl 部署到锚点(按照这些步骤),并使用 cli 将文件上传到 assets 文件夹中。我的下一步是尝试并实际创建一个糖果机。这是我要运行的命令:

ts-node js/packages/cli/src/candy-machine-cli.ts create_candy_machine --env devnet --keypair .config/solana/devnet.json --presale-enabled true --presale-items-available 5

当我运行命令时,我得到以下堆栈跟踪:

ProgramError: 102: The program could not deserialize the given instruction
    at Function.parse (/home/my-user/dev/Solana/metaplex/js/packages/cli/node_modules/@project-serum/anchor/src/error.ts:41:14)   
    at Object.rpc [as initializeCandyMachine] (/home/my-user/dev/Solana/metaplex/js/packages/cli/node_modules/@project-serum/anchor/src/program/namespace/rpc.ts:23:42)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {  code: 102,
  msg: 'The program could not deserialize the given instruction'
}

我对调试 rust/anchor 非常陌生。我的代码中有什么东西对某人来说很明显,为什么我会根据我在 PR 中对相关文件的更改而收到此错误?或者关于我可以调试它的方法的任何提示?我也尝试过运行“锚点测试”,但得到了同样的错误。

4

1 回答 1

0

您能否检查包含需要在 RPC 调用上传递的值的变量。

当我错误地将变量初始化为时,我得到了同样的错误

myVariable : "Hello";

代替,

myVariable = "Hello";
于 2022-02-19T20:10:37.553 回答