The explorer is out of sync. The last synced block is 524 hours ago. Current block height: explorer: 2206528 / node: 2541146 / ref: 2492275
program dev_truecoin_token_v008.aleo; record Token: owner as address.private; amount as u64.private; record KYC: owner as address.private; expiry_block_height as u32.private; record AML: owner as address.private; version as u32.private; struct UpdateAMLBlocklist: account as address; blocked as boolean; mapping public_balance: key as address.public; value as u64.public; mapping aml_blocklist: key as address.public; value as boolean.public; mapping aml_version: key as boolean.public; value as u32.public; function authorize_mint: input r0 as address.private; input r1 as u64.private; async authorize_mint r0 r1 into r2; output r2 as dev_truecoin_token_v008.aleo/authorize_mint.future; finalize authorize_mint: input r0 as address.public; input r1 as u64.public; get.or_use public_balance[r0] 0u64 into r2; add r2 r1 into r3; set r3 into public_balance[r0]; function issue_kyc: input r0 as address.private; input r1 as u32.private; cast r0 r1 into r2 as KYC.record; output r2 as KYC.record; function redeem_public: input r0 as KYC.record; input r1 as u32.private; input r2 as u64.private; lte r1 r0.expiry_block_height into r3; assert.eq r3 true; cast r0.owner r0.expiry_block_height into r4 as KYC.record; async redeem_public r0.owner r2 r1 into r5; output r4 as KYC.record; output r5 as dev_truecoin_token_v008.aleo/redeem_public.future; finalize redeem_public: input r0 as address.public; input r1 as u64.public; input r2 as u32.public; lt block.height r2 into r3; assert.eq r3 true; get.or_use public_balance[r0] 0u64 into r4; sub r4 r1 into r5; set r5 into public_balance[r0]; function redeem_private: input r0 as KYC.record; input r1 as u32.private; input r2 as u64.private; input r3 as Token.record; lte r1 r0.expiry_block_height into r4; assert.eq r4 true; cast r0.owner r0.expiry_block_height into r5 as KYC.record; sub r3.amount r2 into r6; cast r3.owner r6 into r7 as Token.record; output r5 as KYC.record; output r7 as Token.record; function transfer_public: input r0 as address.public; input r1 as u64.public; async transfer_public self.caller r0 r1 into r2; output r2 as dev_truecoin_token_v008.aleo/transfer_public.future; finalize transfer_public: input r0 as address.public; input r1 as address.public; input r2 as u64.public; get.or_use public_balance[r0] 0u64 into r3; sub r3 r2 into r4; set r4 into public_balance[r0]; get.or_use public_balance[r1] 0u64 into r5; add r5 r2 into r6; set r6 into public_balance[r1]; 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_private_to_public: input r0 as Token.record; input r1 as address.public; input r2 as u64.public; sub r0.amount r2 into r3; cast r0.owner r3 into r4 as Token.record; async transfer_private_to_public r1 r2 into r5; output r4 as Token.record; output r5 as dev_truecoin_token_v008.aleo/transfer_private_to_public.future; finalize transfer_private_to_public: input r0 as address.public; input r1 as u64.public; get.or_use public_balance[r0] 0u64 into r2; add r2 r1 into r3; set r3 into public_balance[r0]; function transfer_public_to_private: input r0 as address.private; input r1 as u64.public; cast r0 r1 into r2 as Token.record; async transfer_public_to_private self.caller r1 into r3; output r2 as Token.record; output r3 as dev_truecoin_token_v008.aleo/transfer_public_to_private.future; finalize transfer_public_to_private: input r0 as address.public; input r1 as u64.public; get.or_use public_balance[r0] 0u64 into r2; sub r2 r1 into r3; set r3 into public_balance[r0]; function join: input r0 as Token.record; input r1 as Token.record; add r0.amount r1.amount into r2; cast r0.owner r2 into r3 as Token.record; output r3 as Token.record; function update_aml_blocklist: input r0 as UpdateAMLBlocklist.private; async update_aml_blocklist r0 into r1; output r1 as dev_truecoin_token_v008.aleo/update_aml_blocklist.future; finalize update_aml_blocklist: input r0 as UpdateAMLBlocklist.public; set r0.blocked into aml_blocklist[r0.account]; get.or_use aml_version[true] 0u32 into r1; add r1 1u32 into r2; set r2 into aml_version[true]; function issue_aml: input r0 as u32.private; cast self.caller r0 into r1 as AML.record; async issue_aml self.caller into r2; output r1 as AML.record; output r2 as dev_truecoin_token_v008.aleo/issue_aml.future; finalize issue_aml: input r0 as address.public; get.or_use aml_blocklist[r0] false into r1; not r1 into r2; assert.eq r2 true; function verify_aml: input r0 as AML.record; cast r0.owner r0.version into r1 as AML.record; async verify_aml r0.version into r2; output r1 as AML.record; output r2 as dev_truecoin_token_v008.aleo/verify_aml.future; finalize verify_aml: input r0 as u32.public; get aml_version[true] into r1; assert.eq r0 r1; function verify_kyc: input r0 as KYC.record; input r1 as u32.private; lte r1 r0.expiry_block_height into r2; assert.eq r2 true; cast r0.owner r0.expiry_block_height into r3 as KYC.record; async verify_kyc r1 into r4; output r3 as KYC.record; output r4 as dev_truecoin_token_v008.aleo/verify_kyc.future; finalize verify_kyc: input r0 as u32.public; lt block.height r0 into r1; assert.eq r1 true;