Program hash_chain_test_1.aleo

Program ID
hash_chain_test_1.aleo
Times called
2
Similar programs
0
Program Structure
Imports
-
Mappings
-
Structs
RandomNumber
HashChain
Records
HashChainRecord
Functions
get_hash_chain
Transitions
get_random_number(u64, u64, u64) -> RandomNumber
create_hash_chain_record(address, u64) -> HashChainRecord
Source code (Aleo instructions)
program hash_chain_test_1.aleo;

struct RandomNumber:
    random_number as u64;

struct HashChain:
    hash_1 as field;
    hash_2 as field;
    hash_3 as field;
    hash_4 as field;
    hash_5 as field;
    hash_6 as field;
    hash_7 as field;
    hash_8 as field;
    hash_9 as field;
    hash_10 as field;
    hash_11 as field;
    hash_12 as field;
    hash_13 as field;
    hash_14 as field;
    hash_15 as field;
    hash_16 as field;
    hash_17 as field;
    hash_18 as field;
    hash_19 as field;
    hash_20 as field;
    hash_21 as field;
    hash_22 as field;
    hash_23 as field;
    hash_24 as field;
    hash_25 as field;
    hash_26 as field;
    hash_27 as field;
    hash_28 as field;
    hash_29 as field;
    hash_30 as field;
    hash_31 as field;
    hash_32 as field;

record HashChainRecord:
    owner as address.private;
    gates as u64.private;
    seed as u64.private;
    hash_chain as HashChain.private;

closure get_hash_chain:
    input r0 as u64;
    Poseidon8::hash r0 into r1;
    Poseidon8::hash r1 into r2;
    Poseidon8::hash r2 into r3;
    Poseidon8::hash r3 into r4;
    Poseidon8::hash r4 into r5;
    Poseidon8::hash r5 into r6;
    Poseidon8::hash r6 into r7;
    Poseidon8::hash r7 into r8;
    Poseidon8::hash r8 into r9;
    Poseidon8::hash r9 into r10;
    Poseidon8::hash r10 into r11;
    Poseidon8::hash r11 into r12;
    Poseidon8::hash r12 into r13;
    Poseidon8::hash r13 into r14;
    Poseidon8::hash r14 into r15;
    Poseidon8::hash r15 into r16;
    Poseidon8::hash r16 into r17;
    Poseidon8::hash r17 into r18;
    Poseidon8::hash r18 into r19;
    Poseidon8::hash r19 into r20;
    Poseidon8::hash r20 into r21;
    Poseidon8::hash r21 into r22;
    Poseidon8::hash r22 into r23;
    Poseidon8::hash r23 into r24;
    Poseidon8::hash r24 into r25;
    Poseidon8::hash r25 into r26;
    Poseidon8::hash r26 into r27;
    Poseidon8::hash r27 into r28;
    Poseidon8::hash r28 into r29;
    Poseidon8::hash r29 into r30;
    Poseidon8::hash r30 into r31;
    Poseidon8::hash r31 into r32;
    cast r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32 into r33 as HashChain;
    output r33 as HashChain;

function get_random_number:
    input r0 as u64.private;
    input r1 as u64.private;
    input r2 as u64.private;
    is.neq r0 0u64 into r3;
    assert_eq r3 true;
    add 1u64 r2 into r4;
    sub r4 r1 into r5;
    mod r0 r5 into r6;
    add r1 r6 into r7;
    cast r7 into r8 as RandomNumber;
    output r8 as RandomNumber.private;

function create_hash_chain_record:
    input r0 as address.private;
    input r1 as u64.private;
    call get_hash_chain r1 into r2;
    cast r0 0u64 r1 r2 into r3 as HashChainRecord.record;
    output r3 as HashChainRecord.record;

Recent calls

Block height Timestamp Transition ID Function call
729381 2023-03-09 13:23:59 as1gfvzjhd3yemwcj65y8akqp6f9xu9jg80j8mtdee030gxdxq67qqseclqcl get_random_number
728585 2023-03-09 10:01:12 as14map09xj07lvxqrv0qks636k2qqv4m7x6xfr6tgeek0jja6xsuxsulw8jf get_random_number
728571 2023-03-09 09:57:31 as1nfj45urt8ymn8p42ymfhqh8ez80sxhlx3td9t9laf3qema95fcys26vd74 create_hash_chain_record