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:859return 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 transaconsole.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