The explorer is out of sync. The last synced block is 519 hours ago. Current block height: explorer: 2206528 / node: 2537922 / ref: 2492275

Program aml_11471047.aleo

Program ID
aml_11471047.aleo
Owner signature
sign1fx2hgg706za3e6ee3yfp2wwg8tlllht2xtmclsqwutd2mk5xgyqlzfapmnlsj8mx7tg9gpx32pg2flyxyldauene2u9ht47mv8kkjqffmld7e4vm2kzgyjlge3ggyyey24760gftwv30faflcdgansp7q5dgy78gdshhk83hp46kg398hqt93w6xstu443fduz9xszj9le6sxkxtwl8
Times called
0
Similar programs
0
Mappings
aml_blocklist (address -> boolean)
aml_version (boolean -> u32)
Structs
Action
Proposal
Block
Unblock
Records
AML
Functions
-
Transitions
BLOCK_FN_() -> u8
UNBLOCK_FN_() -> u8
block_(multisig_11471047.aleo/Authorization, Block) -> () finalize(Block)
unblock(multisig_11471047.aleo/Authorization, Unblock) -> () finalize(Unblock)
issue_aml(address, u32) -> AML finalize(address, u32)
verify_aml(AML) -> AML finalize(u32)
Program Source Code (Aleo Instruction) Upload Leo source

import multisig_11471047.aleo;

program aml_11471047.aleo;

struct Action:
    program_address as address;
    action_id as u8;

struct Proposal:
    action as Action;
    argument_hash as field;
    nonce as u64;

record AML:
    owner as address.private;
    account as address.private;
    version as u32.private;

struct Block:
    account as address;

struct Unblock:
    account as address;

mapping aml_blocklist:
    key as address.public;
    value as boolean.public;

mapping aml_version:
    key as boolean.public;
    value as u32.public;

function BLOCK_FN_:
    output 0u8 as u8.private;

function UNBLOCK_FN_:
    output 1u8 as u8.private;

function block_:
    input r0 as multisig_11471047.aleo/Authorization.record;
    input r1 as Block.private;
    hash.bhp256 r1 into r2 as field;
    call multisig_11471047.aleo/verify r0 0u8 r2 into r3;
    async block_ r3 r1 into r4;
    output r4 as aml_11471047.aleo/block_.future;
finalize block_:
    input r0 as multisig_11471047.aleo/verify.future;
    input r1 as Block.public;
    await r0;
    set true into aml_blocklist[r1.account];
    get.or_use aml_version[true] 0u32 into r2;
    add r2 1u32 into r3;
    set r3 into aml_version[true];

function unblock:
    input r0 as multisig_11471047.aleo/Authorization.record;
    input r1 as Unblock.private;
    hash.bhp256 r1 into r2 as field;
    call multisig_11471047.aleo/verify r0 1u8 r2 into r3;
    async unblock r3 r1 into r4;
    output r4 as aml_11471047.aleo/unblock.future;
finalize unblock:
    input r0 as multisig_11471047.aleo/verify.future;
    input r1 as Unblock.public;
    await r0;
    remove aml_blocklist[r1.account];
    get.or_use aml_version[true] 0u32 into r2;
    add r2 1u32 into r3;
    set r3 into aml_version[true];

function issue_aml:
    input r0 as address.private;
    input r1 as u32.private;
    cast self.signer r0 r1 into r2 as AML.record;
    async issue_aml r0 r1 into r3;
    output r2 as AML.record;
    output r3 as aml_11471047.aleo/issue_aml.future;
finalize issue_aml:
    input r0 as address.public;
    input r1 as u32.public;
    contains aml_blocklist[r0] into r2;
    not r2 into r3;
    assert.eq r3 true;
    get aml_version[true] into r4;
    assert.eq r1 r4;

function verify_aml:
    input r0 as AML.record;
    cast r0.owner r0.account r0.version into r1 as AML.record;
    async verify_aml r0.version into r2;
    output r1 as AML.record;
    output r2 as aml_11471047.aleo/verify_aml.future;
finalize verify_aml:
    input r0 as u32.public;
    get aml_version[true] into r1;
    assert.eq r0 r1;

Block heightTimestampTransition IDFunction callState




Not implemented