【问题标题】:Failing tests -> Cannot read properties of undefined (reading 'rpc')测试失败 -> 无法读取未定义的属性(读取“rpc”)
【发布时间】:2022-06-22 13:58:30
【问题描述】:

我正在用 TypeScript 编写一个用于添加两个数字的测试。我收到以下错误:

Adds two numbers:
     TypeError: Cannot read properties of undefined (reading 'rpc')
      at Context.<anonymous> (tests/calculator.ts:33:19)
      at Generator.next (<anonymous>)
      at /mnt/e/solana/calculator/tests/calculator.ts:7:71
      at new Promise (<anonymous>)
      at __awaiter (tests/calculator.ts:3:12)
      at Context.<anonymous> (tests/calculator.ts:35:16)
      at processImmediate (node:internal/timers:473:21)

以下是代码:

const Anchor = require('@project-serum/anchor');

describe('calculator',() => {

    const provider = Anchor.Provider.local();
    Anchor.setProvider(provider);
    
    const calculator = Anchor.web3.Keypair.generate();
    const program = Anchor.workspace.calculator;
    var _calculator;
it('Creates a calculator', async() => {
        await program.rpc.create("Welcome to My calculator",{
            accounts: {
                calculator: calculator.publicKey,
                user: provider.wallet.publicKey,
                SystemProgram: SystemProgram.programId,
            },
            signers: [calculator]
        });
        const account = await 
        program.account.calculator.fetch(calculator.publicKey);
        assert.ok(account.greeting === "Welcome to My calculator");
        _calculator = calculator;
    });

这正在使用 anchor-cli 处理 Solana 区块链。有人可以帮忙吗?

【问题讨论】:

标签: javascript typescript automated-tests blockchain solana


【解决方案1】:

program 未定义。说明这行代码有问题

 const program = Anchor.workspace.calculator;

Anchor 将合约名称大写。所以应该是“计算器”

 const program = Anchor.workspace.Calculator;

【讨论】:

    【解决方案2】:

    从@project-serum/anchor 导入 AnchorProvider 并将提供程序分配给它,例如const provider = AnchorProvider.local(),我认为这应该可以解决问题,如果您以类似的方式从锚点导入 web3 时出现错误。

    【讨论】:

      猜你喜欢
      • 2023-01-09
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2023-01-30
      • 2022-07-22
      相关资源
      最近更新 更多