Player draws another card ("hit"). If the player's hand value exceeds 21, they bust and lose immediately.
session_id - The session ID of the gameplayer - Address of the player drawing a cardfn hit(
env: soroban_sdk::Env,
session_id: u32,
player: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
Player chooses to stick (end their turn with current hand). If both players have stuck, the game can be revealed.
session_id - The session ID of the gameplayer - Address of the player stickingfn stick(
env: soroban_sdk::Env,
session_id: u32,
player: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
Update the contract WASM hash (upgrade contract)
new_wasm_hash - The hash of the new WASM binaryfn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Get game information.
session_id - The session ID of the gameGame - The game state (includes hands and winner after game ends)fn get_game(env: soroban_sdk::Env, session_id: u32) -> Result
Get the current admin address
Address - The admin addressfn get_admin(env: soroban_sdk::Env) -> soroban_sdk::Address
Set a new admin address
new_admin - The new admin addressfn set_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)
Start a new game between two players with FP wagers. This creates a session in Blendizzard and locks FP before starting the game. Each player is dealt 2 cards to start.
CRITICAL: This method requires authorization from THIS contract (not players).
Blendizzard will call game_id.require_auth() which checks this contract's address.
session_id - Unique session identifier (u32)player1 - Address of first playerplayer2 - Address of second playerplayer1_wager - FP amount player1 is wageringplayer2_wager - FP amount player2 is wageringfn start_game(
env: soroban_sdk::Env,
session_id: u32,
player1: soroban_sdk::Address,
player2: soroban_sdk::Address,
player1_wager: i128,
player2_wager: i128,
) -> Result<(), soroban_sdk::Error>
Initialize the contract with Blendizzard address and admin
admin - Admin address (can upgrade contract)blendizzard - Address of the Blendizzard contractfn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
blendizzard: soroban_sdk::Address,
)
Reveal the winner of the game and submit outcome to Blendizzard. Can only be called after both players have stuck. This calculates hand values, determines the winner (closest to 21), and handles draws by dealing new hands.
session_id - The session ID of the gameAddress - Address of the winning playerfn reveal_winner(
env: soroban_sdk::Env,
session_id: u32,
) -> Result
Get the current hand value for a player.
session_id - The session ID of the gameplayer - Address of the playeru32 - The total value of the player's handfn get_hand_value(
env: soroban_sdk::Env,
session_id: u32,
player: soroban_sdk::Address,
) -> Result
Get the current Blendizzard contract address
Address - The Blendizzard contract addressfn get_blendizzard(env: soroban_sdk::Env) -> soroban_sdk::Address
Set a new Blendizzard contract address
new_blendizzard - The new Blendizzard contract addressfn set_blendizzard(env: soroban_sdk::Env, new_blendizzard: soroban_sdk::Address)