簡體   English   中英

測試失敗 -> 無法讀取未定義的屬性(讀取“rpc”)

[英]Failing tests -> Cannot read properties of undefined (reading 'rpc')

我正在 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 區塊鏈上工作的。 有人可以幫忙嗎?

program未定義。 這意味着這行代碼有問題

 const program = Anchor.workspace.calculator;

Anchor 將合約名稱大寫。 所以它應該是“計算器”

 const program = Anchor.workspace.Calculator;

從 @project-serum/anchor 導入 AnchorProvider 並將提供者分配給它,例如:

const provider = AnchorProvider.local()

我認為這應該可以解決問題。 如果 systemProgram 出錯,請以類似方式從錨點導入 web3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM