在 solana 上构建游戏

building a game on solana

我正在尝试构建一个简单的游戏来测试你在其中输入 sol 数量,程序只发送双倍数量(不在主网上,ofc),但我只是没有得到一些关于 solana 的东西。

目前我没有代码,因为我正在尝试了解工作流程

Here i brainstormed how my program will look like

我不知道如何创建这个国库钱包账户?它会归我的程序所有吗?

你能不能也给我看一段代码,比如这个可以让我与之互动的播放功能?

我的猜测rn是我会直接写public地址,然后在程序中写一个from/to函数来做交易。正确吗?

顺便说一句,我将使用锚点。感谢您的帮助:)

你的金库钱包,因为它持有 SOL,可以简单地是一个使用你的程序 ID 派生的 PDA,里面没有任何数据。它仍将由系统程序拥有,但由于它是从您的程序派生的,因此只有您的程序才能为其签名。在您的程序中,您将执行如下操作:

fn transfer_one_token_from_escrow(
    program_id: &Pubkey,
    accounts: &[AccountInfo],
) -> ProgramResult {
    // User supplies the destination
    let alice_pubkey = accounts[1].key;

    // Iteratively derive the escrow pubkey
    let (escrow_pubkey, bump_seed) = Pubkey::find_program_address(&[&["escrow"]], program_id);

    // Create the transfer instruction
    let instruction = token_instruction::transfer(&escrow_pubkey, alice_pubkey, 1);

    // Include the generated bump seed to the list of all seeds
    invoke_signed(&instruction, accounts, &[&["escrow", &[bump_seed]]])
}

您可能需要做更多的研究才能准确了解如何实现其中的许多位。这里有一些资源: