The explorer is out of sync. The last synced block is 191 hours ago. Current block height: explorer: 2206528 / node: 2330330 / ref: 2330325
program cleo_token_v1_0.aleo; record Token: owner as address.private; amount as u64.private; struct TokenMetadata: from_chain_id as u32; from_asset_addr as field; mapping initialized: key as boolean.public; value as boolean.public; mapping contract_owner: key as boolean.public; value as address.public; mapping supply_token: key as boolean.public; value as u64.public; mapping balances_token: key as address.public; value as u64.public; mapping account: key as address.public; value as u64.public; mapping token_meta: key as field.public; value as TokenMetadata.public; function initialize: input r0 as address.private; async initialize r0 into r1; output r1 as cleo_token_v1_0.aleo/initialize.future; finalize initialize: input r0 as address.public; get.or_use initialized[true] false into r1; not r1 into r2; assert.eq r2 true; set r0 into contract_owner[true]; set true into initialized[true]; function register: input r0 as TokenMetadata.private; async register r0 self.caller into r1; output r1 as cleo_token_v1_0.aleo/register.future; finalize register: input r0 as TokenMetadata.public; input r1 as address.public; get.or_use initialized[true] false into r2; assert.eq r2 true; get contract_owner[true] into r3; assert.eq r3 r1; hash.bhp256 r0 into r4 as field; contains token_meta[r4] into r5; not r5 into r6; assert.eq r6 true; set r0 into token_meta[r4]; function mint: input r0 as address.private; input r1 as u64.private; lte r1 100000u64 into r2; assert.eq r2 true; cast r0 r1 into r3 as Token.record; async mint r0 r1 self.caller into r4; output r3 as Token.record; output r4 as cleo_token_v1_0.aleo/mint.future; finalize mint: input r0 as address.public; input r1 as u64.public; input r2 as address.public; get contract_owner[true] into r3; assert.eq r3 r2; get.or_use supply_token[true] 0u64 into r4; add r4 r1 into r5; lte r5 100000000000u64 into r6; assert.eq r6 true; get.or_use account[r0] 0u64 into r7; set r5 into supply_token[true]; add r7 r1 into r8; set r8 into account[r0]; function burn_public: input r0 as address.public; input r1 as u64.public; async burn_public r0 r1 self.caller into r2; output r2 as cleo_token_v1_0.aleo/burn_public.future; finalize burn_public: input r0 as address.public; input r1 as u64.public; input r2 as address.public; get contract_owner[true] into r3; assert.eq r3 r2; get.or_use account[r0] 0u64 into r4; sub r4 r1 into r5; set r5 into account[r0]; function burn_private: input r0 as address.private; input r1 as Token.record; input r2 as u64.private; sub r1.amount r2 into r3; cast r1.owner r3 into r4 as Token.record; async burn_private self.caller into r5; output r4 as Token.record; output r5 as cleo_token_v1_0.aleo/burn_private.future; finalize burn_private: input r0 as address.public; get contract_owner[true] into r1; assert.eq r1 r0; function transfer_private: input r0 as Token.record; input r1 as address.private; input r2 as u64.private; sub r0.amount r2 into r3; cast r0.owner r3 into r4 as Token.record; cast r1 r2 into r5 as Token.record; output r4 as Token.record; output r5 as Token.record; function transfer_public: input r0 as address.private; input r1 as u64.private; async transfer_public self.caller r0 r1 into r2; output r2 as cleo_token_v1_0.aleo/transfer_public.future; finalize transfer_public: input r0 as address.public; input r1 as address.public; input r2 as u64.public; get balances_token[r0] into r3; sub r3 r2 into r4; set r4 into balances_token[r0]; get.or_use balances_token[r0] 0u64 into r5; add r5 r2 into r6; set r6 into balances_token[r1]; function deposit: input r0 as Token.record; input r1 as u64.private; sub r0.amount r1 into r2; cast r0.owner r2 into r3 as Token.record; async deposit self.caller r1 into r4; output r3 as Token.record; output r4 as cleo_token_v1_0.aleo/deposit.future; finalize deposit: input r0 as address.public; input r1 as u64.public; get.or_use balances_token[r0] 0u64 into r2; add r2 r1 into r3; set r3 into balances_token[r0]; function withdraw: input r0 as address.private; input r1 as u64.private; cast r0 r1 into r2 as Token.record; async withdraw self.caller r1 into r3; output r2 as Token.record; output r3 as cleo_token_v1_0.aleo/withdraw.future; finalize withdraw: input r0 as address.public; input r1 as u64.public; get balances_token[r0] into r2; sub r2 r1 into r3; set r3 into balances_token[r0];