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

Program bittabus_1235334345.aleo

Program ID
bittabus_1235334345.aleo
Owner signature
sign12xhfw4t3e0jetdhnmm9q3hgzxrjzwd7zc05ttdzuu59gv8njdcqf9y03lzgzauekue6nwt8aler2l5rtf6xv6ez6m2vvna6vhqkm2q5uc8jlc3cyvrcamqc6x4mkvv9kqu5uz3nxeacsfajsprq0ye00zpmfxxjc34jj6r662ghemnswlykwyx3wanfqsmta3lwq4aqmzqtqsjlrvp3
Times called
4
Similar programs
0
Imports
-
Mappings
account (address -> u64)
tokenExists (u128 -> boolean)
publicNftData (u128 -> Nft)
publicNftOwners (u128 -> address)
Structs
String64
Nft
Records
token
Functions
-
Transitions
mint_nft_public(public u128) -> () finalize(address, u128)
mint_public(public address, public u64) -> () finalize(address, u64)
mint_private(address, u64) -> token
transfer_public(public address, public u64) -> () finalize(address, address, u64)
transfer_private(token, address, u64) -> (token, token)
transfer_private_to_public(token, public address, public u64) -> token finalize(address, u64)
transfer_public_to_private(public address, public u64) -> token finalize(address, u64)
Program Source Code (Aleo Instruction) Upload Leo source

program bittabus_1235334345.aleo;

record token:
    owner as address.private;
    amount as u64.private;

struct String64:
    part0 as u128;
    part1 as u128;
    part2 as u128;
    part3 as u128;

struct Nft:
    uri as String64;

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

mapping tokenExists:
    key as u128.public;
    value as boolean.public;

mapping publicNftData:
    key as u128.public;
    value as Nft.public;

mapping publicNftOwners:
    key as u128.public;
    value as address.public;

function mint_nft_public:
    input r0 as u128.public;
    async mint_nft_public self.caller r0 into r1;
    output r1 as bittabus_1235334345.aleo/mint_nft_public.future;
finalize mint_nft_public:
    input r0 as address.public;
    input r1 as u128.public;
    cast 0u128 0u128 0u128 0u128 into r2 as String64;
    cast r2 into r3 as Nft;
    contains tokenExists[r1] into r4;
    not r4 into r5;
    assert.eq r5 true;
    set true into tokenExists[r1];
    set r3 into publicNftData[r1];
    set r0 into publicNftOwners[r1];

function mint_public:
    input r0 as address.public;
    input r1 as u64.public;
    async mint_public r0 r1 into r2;
    output r2 as bittabus_1235334345.aleo/mint_public.future;
finalize mint_public:
    input r0 as address.public;
    input r1 as u64.public;
    get.or_use account[r0] 0u64 into r2;
    add r2 r1 into r3;
    set r3 into account[r0];

function mint_private:
    input r0 as address.private;
    input r1 as u64.private;
    cast r0 r1 into r2 as token.record;
    output r2 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 bittabus_1235334345.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 account[r0] 0u64 into r3;
    sub r3 r2 into r4;
    set r4 into account[r0];
    get.or_use account[r1] 0u64 into r5;
    add r5 r2 into r6;
    set r6 into account[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 bittabus_1235334345.aleo/transfer_private_to_public.future;
finalize transfer_private_to_public:
    input r0 as address.public;
    input r1 as u64.public;
    get.or_use account[r0] 0u64 into r2;
    add r2 r1 into r3;
    set r3 into account[r0];

function transfer_public_to_private:
    input r0 as address.public;
    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 bittabus_1235334345.aleo/transfer_public_to_private.future;
finalize transfer_public_to_private:
    input r0 as address.public;
    input r1 as u64.public;
    get.or_use account[r0] 0u64 into r2;
    sub r2 r1 into r3;
    set r3 into account[r0];

Block heightTimestampTransition IDFunction callState
139,7182023-10-30 16:00:43au1sxdn4m9jxy5nf57zffhr69gydywlc5xjxl3a6qr39t4qn8cfvq8qtu43g3mint_publicAccepted
133,0702023-10-30 06:47:05au17yma5q69khhnsc5edkxyxzqu3u8hewy6zys2jrm7p4sjg3qsruxsnvhme3mint_nft_publicAccepted
131,9162023-10-30 05:15:18au1egu40axckufeks3jmc6qtsy4f9wyqzlzcrsmgcxf4t2ua088agrqrzfxcxmint_publicAccepted
131,8752023-10-30 05:12:07au19u6lk79tpx238tt7g2yds847zze9s3uskd3x4qzqhe73m4nddsys3ffu76mint_publicAccepted








Not implemented