The explorer is out of sync. The last synced block is 314 hours ago. Current block height: explorer: 2206528 / node: 2408351 / ref: 2408349

Program puzzle_game4.aleo

Program ID
puzzle_game4.aleo
Owner signature
sign1f9pmrhgnpqlu54hjc0pf3et7fuvjy7zph3g7nyg8jnxmnlv65upe7pmkdn0t8m85k748edpcv0mvd7qvuzk75qlur7rylw8jw54tvq20ku3az8jefhsnxk8m7ta0nx0fmcqptyyxchk6rpgql3arfe2eq8ydv3nn6924na68s0x85xgq8pxzm7n74c3pvzy6zm2ds9jzymsq7fwl8mn
Times called
0
Similar programs
0
Imports
-
Mappings
account (address -> PuzzleMoveII)
reward (u128 -> CLAIM_REWARD)
account_balance (address -> u64)
r1 (address -> u64)
r2 (address -> u64)
r3 (address -> u64)
r4 (address -> u64)
r5 (address -> u64)
r6 (address -> u64)
r7 (address -> u64)
r8 (address -> u64)
r9 (address -> u64)
r10 (address -> u64)
r11 (address -> u64)
r12 (address -> u64)
game_cell1 (address -> u64)
game_cell2 (address -> u64)
game_cell3 (address -> u64)
game_cell4 (address -> u64)
game_cell5 (address -> u64)
game_cell6 (address -> u64)
game_cell7 (address -> u64)
game_cell8 (address -> u64)
game_cell9 (address -> u64)
game_cell10 (address -> u64)
game_cell11 (address -> u64)
game_cell12 (address -> u64)
Structs
PuzzleMoveII
CLAIM_REWARD
R_CELL
Records
PuzzleMove
Game_ID
Functions
-
Transitions
main(public u32, u32) -> u32
start_game(u128) -> Game_ID finalize(address, u128)
move_puzzle00(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle01(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle02(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle03(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle10(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle11(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle12(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle13(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle20(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle21(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle22(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
move_puzzle23(u64, u64, u128) -> PuzzleMove finalize(address, u64, u64, u128)
claim_puzzle_reward(address, u128) -> address finalize(address, u128)
end_game(u128) -> () finalize(address, u128)
Program Source Code (Aleo Instruction) Upload Leo source

program puzzle_game4.aleo;

record PuzzleMove:
    owner as address.private;
    moves as u64.private;
    game_cell as u64.private;

record Game_ID:
    owner as address.private;
    game_id as u128.private;

struct PuzzleMoveII:
    player as address;
    last_move as u64;
    count_moves as u64;

struct CLAIM_REWARD:
    zk_id as u128;
    player as address;
    reward as u64;
    max_reward as u64;

struct R_CELL:
    r1 as u64;
    r2 as u64;
    r3 as u64;
    r4 as u64;
    r5 as u64;
    r6 as u64;
    r7 as u64;
    r8 as u64;
    r9 as u64;
    r10 as u64;
    r11 as u64;
    r12 as u64;
    r13 as u64;
    r14 as u64;
    r15 as u64;

mapping account:
    key as address.public;
    value as PuzzleMoveII.public;

mapping reward:
    key as u128.public;
    value as CLAIM_REWARD.public;

mapping account_balance:
    key as address.public;
    value as u64.public;

mapping r1:
    key as address.public;
    value as u64.public;

mapping r2:
    key as address.public;
    value as u64.public;

mapping r3:
    key as address.public;
    value as u64.public;

mapping r4:
    key as address.public;
    value as u64.public;

mapping r5:
    key as address.public;
    value as u64.public;

mapping r6:
    key as address.public;
    value as u64.public;

mapping r7:
    key as address.public;
    value as u64.public;

mapping r8:
    key as address.public;
    value as u64.public;

mapping r9:
    key as address.public;
    value as u64.public;

mapping r10:
    key as address.public;
    value as u64.public;

mapping r11:
    key as address.public;
    value as u64.public;

mapping r12:
    key as address.public;
    value as u64.public;

mapping game_cell1:
    key as address.public;
    value as u64.public;

mapping game_cell2:
    key as address.public;
    value as u64.public;

mapping game_cell3:
    key as address.public;
    value as u64.public;

mapping game_cell4:
    key as address.public;
    value as u64.public;

mapping game_cell5:
    key as address.public;
    value as u64.public;

mapping game_cell6:
    key as address.public;
    value as u64.public;

mapping game_cell7:
    key as address.public;
    value as u64.public;

mapping game_cell8:
    key as address.public;
    value as u64.public;

mapping game_cell9:
    key as address.public;
    value as u64.public;

mapping game_cell10:
    key as address.public;
    value as u64.public;

mapping game_cell11:
    key as address.public;
    value as u64.public;

mapping game_cell12:
    key as address.public;
    value as u64.public;

function main:
    input r0 as u32.public;
    input r1 as u32.private;
    add r0 r1 into r2;
    output r2 as u32.private;

function start_game:
    input r0 as u128.private;
    is.eq aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m self.caller into r1;
    assert.eq r1 true;
    hash.bhp256 r0 into r2 as u128;
    cast aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m r2 into r3 as Game_ID.record;
    async start_game aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m r2 into r4;
    output r3 as Game_ID.record;
    output r4 as puzzle_game4.aleo/start_game.future;
finalize start_game:
    input r0 as address.public;
    input r1 as u128.public;
    is.eq r0 aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m into r2;
    assert.eq r2 true;
    cast r1 r0 0u64 0u64 into r3 as CLAIM_REWARD;
    get.or_use reward[r1] r3 into r4;
    cast r1 r0 0u64 0u64 into r5 as CLAIM_REWARD;
    set r5 into reward[r1];

function move_puzzle00:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle00 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle00.future;
finalize move_puzzle00:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r1[r12] 0u64 into r13;
    set r2 into r1[r12];
    get.or_use game_cell1[r12] 0u64 into r14;
    set r1 into game_cell1[r12];

function move_puzzle01:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle01 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle01.future;
finalize move_puzzle01:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r2[r12] 0u64 into r13;
    set r2 into r2[r12];
    get.or_use game_cell2[r12] 0u64 into r14;
    set r1 into game_cell2[r12];

function move_puzzle02:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle02 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle02.future;
finalize move_puzzle02:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r3[r12] 0u64 into r13;
    set r2 into r3[r12];
    get.or_use game_cell3[r12] 0u64 into r14;
    set r1 into game_cell3[r12];

function move_puzzle03:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle03 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle03.future;
finalize move_puzzle03:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r4[r12] 0u64 into r13;
    set r2 into r4[r12];
    get.or_use game_cell4[r12] 0u64 into r14;
    set r1 into game_cell4[r12];

function move_puzzle10:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle10 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle10.future;
finalize move_puzzle10:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r5[r12] 0u64 into r13;
    set r2 into r5[r12];
    get.or_use game_cell5[r12] 0u64 into r14;
    set r1 into game_cell5[r12];

function move_puzzle11:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle11 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle11.future;
finalize move_puzzle11:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r6[r12] 0u64 into r13;
    set r2 into r6[r12];
    get.or_use game_cell6[r12] 0u64 into r14;
    set r1 into game_cell6[r12];

function move_puzzle12:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle12 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle12.future;
finalize move_puzzle12:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r7[r12] 0u64 into r13;
    set r2 into r7[r12];
    get.or_use game_cell7[r12] 0u64 into r14;
    set r1 into game_cell7[r12];

function move_puzzle13:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle13 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle13.future;
finalize move_puzzle13:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r8[r12] 0u64 into r13;
    set r2 into r8[r12];
    get.or_use game_cell8[r12] 0u64 into r14;
    set r1 into game_cell8[r12];

function move_puzzle20:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle20 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle20.future;
finalize move_puzzle20:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r9[r12] 0u64 into r13;
    set r2 into r9[r12];
    get.or_use game_cell9[r12] 0u64 into r14;
    set r1 into game_cell9[r12];

function move_puzzle21:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle21 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle21.future;
finalize move_puzzle21:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r10[r12] 0u64 into r13;
    set r2 into r10[r12];
    get.or_use game_cell10[r12] 0u64 into r14;
    set r1 into game_cell10[r12];

function move_puzzle22:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle22 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle22.future;
finalize move_puzzle22:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r11[r12] 0u64 into r13;
    set r2 into r11[r12];
    get.or_use game_cell11[r12] 0u64 into r14;
    set r1 into game_cell11[r12];

function move_puzzle23:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u128.private;
    hash.keccak512 r0 into r3 as u64;
    hash.keccak512 r1 into r4 as u64;
    cast self.caller r4 r3 into r5 as PuzzleMove.record;
    async move_puzzle23 self.caller r3 r4 r2 into r6;
    output r5 as PuzzleMove.record;
    output r6 as puzzle_game4.aleo/move_puzzle23.future;
finalize move_puzzle23:
    input r0 as address.public;
    input r1 as u64.public;
    input r2 as u64.public;
    input r3 as u128.public;
    cast r3 r0 0u64 0u64 into r4 as CLAIM_REWARD;
    get.or_use reward[r3] r4 into r5;
    is.eq r5.zk_id r3 into r6;
    assert.eq r6 true;
    cast r0 r2 0u64 into r7 as PuzzleMoveII;
    get.or_use account[r0] r7 into r8;
    assert.eq r0 r8.player;
    lte r8.count_moves 100u64 into r9;
    assert.eq r9 true;
    add r8.count_moves 1u64 into r10;
    cast r8.player r8.last_move r10 into r11 as PuzzleMoveII;
    set r11 into account[r0];
    hash.bhp256 r0 into r12 as address;
    get.or_use r12[r12] 0u64 into r13;
    set r2 into r12[r12];
    get.or_use game_cell12[r12] 0u64 into r14;
    set r1 into game_cell12[r12];

function claim_puzzle_reward:
    input r0 as address.private;
    input r1 as u128.private;
    async claim_puzzle_reward self.caller r1 into r2;
    output r0 as address.private;
    output r2 as puzzle_game4.aleo/claim_puzzle_reward.future;
finalize claim_puzzle_reward:
    input r0 as address.public;
    input r1 as u128.public;
    hash.bhp256 r0 into r2 as address;
    cast r1 r0 0u64 0u64 into r3 as CLAIM_REWARD;
    get.or_use reward[r1] r3 into r4;
    is.eq r1 r4.zk_id into r5;
    assert.eq r5 true;
    is.eq r4.reward 0u64 into r6;
    assert.eq r6 true;
    lte r4.max_reward 10000u64 into r7;
    assert.eq r7 true;
    add r4.reward 100000u64 into r8;
    add r4.max_reward 1u64 into r9;
    cast r1 r0 r8 r9 into r10 as CLAIM_REWARD;
    set r10 into reward[r1];
    get.or_use r1[r2] 0u64 into r11;
    get.or_use r2[r2] 0u64 into r12;
    get.or_use r3[r2] 0u64 into r13;
    get.or_use r4[r2] 0u64 into r14;
    get.or_use r5[r2] 0u64 into r15;
    get.or_use r6[r2] 0u64 into r16;
    get.or_use r7[r2] 0u64 into r17;
    get.or_use r8[r2] 0u64 into r18;
    get.or_use r9[r2] 0u64 into r19;
    get.or_use r10[r2] 0u64 into r20;
    get.or_use r11[r2] 0u64 into r21;
    get.or_use r12[r2] 0u64 into r22;
    get.or_use game_cell1[r2] 0u64 into r23;
    get.or_use game_cell2[r2] 0u64 into r24;
    get.or_use game_cell3[r2] 0u64 into r25;
    get.or_use game_cell4[r2] 0u64 into r26;
    get.or_use game_cell5[r2] 0u64 into r27;
    get.or_use game_cell6[r2] 0u64 into r28;
    get.or_use game_cell7[r2] 0u64 into r29;
    get.or_use game_cell8[r2] 0u64 into r30;
    get.or_use game_cell9[r2] 0u64 into r31;
    get.or_use game_cell10[r2] 0u64 into r32;
    get.or_use game_cell11[r2] 0u64 into r33;
    get.or_use game_cell12[r2] 0u64 into r34;
    is.eq r11 7373962538411719600u64 into r35;
    is.eq r23 10129181955415037291u64 into r36;
    and r35 r36 into r37;
    assert.eq r37 true;
    is.eq r12 10129181955415037291u64 into r38;
    is.eq r24 702147630584067503u64 into r39;
    and r38 r39 into r40;
    assert.eq r40 true;
    is.eq r13 702147630584067503u64 into r41;
    is.eq r25 13223257262169554754u64 into r42;
    and r41 r42 into r43;
    assert.eq r43 true;
    is.eq r14 13223257262169554754u64 into r44;
    is.eq r26 8980829337908044081u64 into r45;
    and r44 r45 into r46;
    assert.eq r46 true;
    is.eq r15 16539908051717120644u64 into r47;
    is.eq r27 3615050074908606450u64 into r48;
    and r47 r48 into r49;
    assert.eq r49 true;
    is.eq r16 1191090918244757124u64 into r50;
    is.eq r28 5136266840463965139u64 into r51;
    and r50 r51 into r52;
    assert.eq r52 true;
    is.eq r17 2204896469900557125u64 into r53;
    is.eq r29 15353286996840814990u64 into r54;
    and r53 r54 into r55;
    assert.eq r55 true;
    is.eq r18 2018936823927039953u64 into r56;
    is.eq r30 16018772298875027729u64 into r57;
    and r56 r57 into r58;
    assert.eq r58 true;
    is.eq r19 16644101643060801947u64 into r59;
    is.eq r31 16765984159929877290u64 into r60;
    and r59 r60 into r61;
    assert.eq r61 true;
    is.eq r20 16123326104847387674u64 into r62;
    is.eq r32 16539908051717120644u64 into r63;
    and r62 r63 into r64;
    assert.eq r64 true;
    is.eq r21 11764327590515361485u64 into r65;
    is.eq r33 1191090918244757124u64 into r66;
    and r65 r66 into r67;
    assert.eq r67 true;
    get.or_use account_balance[r0] 0u64 into r68;
    add r68 r4.reward into r69;
    set r69 into account_balance[r0];

function end_game:
    input r0 as u128.private;
    is.eq aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m self.caller into r1;
    assert.eq r1 true;
    async end_game self.caller r0 into r2;
    output r2 as puzzle_game4.aleo/end_game.future;
finalize end_game:
    input r0 as address.public;
    input r1 as u128.public;
    cast r1 r0 0u64 0u64 into r2 as CLAIM_REWARD;
    get.or_use reward[r1] r2 into r3;
    is.eq r3.zk_id r1 into r4;
    assert.eq r4 true;
    is.eq r0 aleo1az8p9vlllyqwtj0c2g9svkd0e5v0p3zzdflwwrpa7kpe8xrfxgfqqpru7m into r5;
    assert.eq r5 true;
    remove reward[r1];

Block heightTimestampTransition IDFunction callState






















































Not implemented