[英]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.