So I've written a small program that builds and deploys correctly. The initialize function also works.
But now I'm trying to create a Lottery, and TypeScript keeps repeating type error; the error message is:
/home/memewhales/solana_youtube_lottery/lottery-sol/node_modules/ts-node/src/index.ts:859 return new TSError(diagnosticText, diagnosticCodes, diagnostics); ^ TSError: ⨯ Unable to compile TypeScript: client/init2.ts:79:13 - error TS2345: Argument of type '{ lottery: PublicKey; master: PublicKey; authority: PublicKey; systemProgram: PublicKey; }' is not assignable to parameter of type 'ResolvedAccounts<{ name: "lottery"; writable: true; pda: { seeds: [{ kind: "const"; value: [108, 111, 116, 116, 101, 114, 121]; }, { kind: "account"; path: "master.last_id"; account: "master"; }]; }; } | { name: "master"; writable: true; pda: { ...; }; } | { ...; } | { ...; }>'. Object literal may only specify known properties, and 'lottery' does not exist in type 'ResolvedAccounts<{ name: "lottery"; writable: true; pda: { seeds: [{ kind: "const"; value: [108, 111, 116, 116, 101, 114, 121]; }, { kind: "account"; path: "master.last_id"; account: "master"; }]; }; } | { name: "master"; writable: true; pda: { ...; }; } | { ...; } | { ...; }>'.
79 lottery: lotteryPda, ~~~~~~~~~~~~~~~~~~~
Here's my function call on ts:
const ticketPrice = new anchor.BN(1); // await program.methods.createLottery([]).accounts({ // authority: masterPda // }).signers([payer]).rpc(); await program.methods // Call the set_favorites instruction handler .createLottery(ticketPrice) .accounts({ lottery: lotteryPda, master: masterPda, authority: payer.publicKey, systemProgram: programId }) // Sign the transaction .signers([payer]) .rpc() // Send the transa console.log('Lottery created with PDA: ', lotteryPda.toBase58());
Here's the type 'lottery_sol.ts':
"instructions": [ { "name": "createLottery", "discriminator": [ 242, 165, 247, 119, 17, 203, 21, 42 ], "accounts": [ { "name": "lottery", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 108, 111, 116, 116, 101, 114, 121 ] }, { "kind": "account", "path": "master.last_id", "account": "master" } ] } }, { "name": "master", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 109, 97, 115, 116, 101, 114 ] } ] } }, { "name": "authority", "writable": true, "signer": true }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "ticketPrice", "type": "u64" } ] },
The names match up however I don't get this ' PublicKey; }' is not assignable to parameter of type 'ResolvedAccounts<{ name: "lottery"'
Thanks