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

Program privacy_pride_nft_test13.aleo

Program ID
privacy_pride_nft_test13.aleo
Owner signature
sign1pwst28a6yxhrstchlzd7r4rmm5chtffuz7qx2fwmqdperl04csq9fwwhk0dh4680a6v522wxsj493n2jjsxr5mq27zxmrugwndvzkqd2u5277w72klkaacke37rlhyz790ft62asy9jlmtxzq3dt2j75pdj0m33qxkm8rl4an0h9rz4cwv9tgvgqe5j72da0mnnrl2gxqnks7v3namk
Times called
19
Similar programs
Imports
-
Mappings
nft_owners (field -> address)
general_settings (u8 -> u128)
nfts_to_mint (u128 -> field)
claims_to_nfts (field -> field)
toggle_settings (u8 -> u32)
Structs
TokenId
BaseURI
SymbolBits
Records
NFT
NFT_mint
NFT_claim
NFT_ownership
Functions
-
Transitions
initialize_collection(public u128, public u128, public BaseURI) -> () finalize(u128, u128, BaseURI)
add_nft(public TokenId, public scalar) -> () finalize(field)
add_minter(address, public u8) -> NFT_mint
update_toggle_settings(public u32) -> () finalize(u32)
set_mint_block(public u32) -> () finalize(u32)
update_symbol(public u128) -> () finalize(u128)
update_base_uri(public BaseURI) -> () finalize(BaseURI)
open_mint(scalar) -> NFT_claim finalize(field)
mint(NFT_mint, scalar) -> (NFT_mint, NFT_claim) finalize(field)
claim_nft(NFT_claim, TokenId, scalar) -> NFT finalize(field, field)
authorize(NFT, public u64) -> ()
transfer_private(NFT, address) -> NFT
transfer_public(address, TokenId, scalar) -> () finalize(address, field, address)
convert_private_to_public(NFT) -> () finalize(address, field)
convert_public_to_private(address, TokenId, scalar) -> NFT finalize(address, field)
Program Source Code (Aleo Instruction) Upload Leo source

program privacy_pride_nft_test13.aleo;

struct TokenId:
    data1 as u128;
    data2 as u128;

struct BaseURI:
    data0 as u128;
    data1 as u128;
    data2 as u128;
    data3 as u128;

struct SymbolBits:
    data as u128;

record NFT:
    owner as address.private;
    data as TokenId.private;
    edition as scalar.private;

record NFT_mint:
    owner as address.private;
    amount as u8.private;

record NFT_claim:
    owner as address.private;
    claim as field.private;

record NFT_ownership:
    owner as address.private;
    nft_owner as address.private;
    data as TokenId.private;
    edition as scalar.private;

mapping nft_owners:
    key as field.public;
    value as address.public;

mapping general_settings:
    key as u8.public;
    value as u128.public;

mapping nfts_to_mint:
    key as u128.public;
    value as field.public;

mapping claims_to_nfts:
    key as field.public;
    value as field.public;

mapping toggle_settings:
    key as u8.public;
    value as u32.public;

function initialize_collection:
    input r0 as u128.public;
    input r1 as u128.public;
    input r2 as BaseURI.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    async initialize_collection r0 r1 r2 into r3;
    output r3 as privacy_pride_nft_test13.aleo/initialize_collection.future;
finalize initialize_collection:
    input r0 as u128.public;
    input r1 as u128.public;
    input r2 as BaseURI.public;
    get.or_use toggle_settings[0u8] 0u32 into r3;
    and r3 1u32 into r4;
    assert.eq r4 0u32;
    set 0u128 into general_settings[0u8];
    set r0 into general_settings[1u8];
    set r1 into general_settings[2u8];
    set r2.data0 into general_settings[3u8];
    set r2.data1 into general_settings[4u8];
    set r2.data2 into general_settings[5u8];
    set r2.data3 into general_settings[6u8];
    set 5u32 into toggle_settings[0u8];
    set 0u32 into toggle_settings[1u8];

function add_nft:
    input r0 as TokenId.public;
    input r1 as scalar.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    hash.bhp256 r0 into r2 as field;
    commit.bhp256 r2 r1 into r3 as field;
    async add_nft r3 into r4;
    output r4 as privacy_pride_nft_test13.aleo/add_nft.future;
finalize add_nft:
    input r0 as field.public;
    get toggle_settings[0u8] into r1;
    and r1 9u32 into r2;
    assert.eq r2 1u32;
    get general_settings[1u8] into r3;
    sub r3 1u128 into r4;
    set r4 into general_settings[1u8];
    get general_settings[0u8] into r5;
    set r0 into nfts_to_mint[r5];
    add r5 1u128 into r6;
    set r6 into general_settings[0u8];

function add_minter:
    input r0 as address.private;
    input r1 as u8.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    cast r0 r1 into r2 as NFT_mint.record;
    async add_minter  into r3;
    output r2 as NFT_mint.record;
    output r3 as privacy_pride_nft_test13.aleo/add_minter.future;
finalize add_minter:
    get toggle_settings[0u8] into r0;
    and r0 9u32 into r1;
    assert.eq r1 1u32;

function update_toggle_settings:
    input r0 as u32.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    async update_toggle_settings r0 into r1;
    output r1 as privacy_pride_nft_test13.aleo/update_toggle_settings.future;
finalize update_toggle_settings:
    input r0 as u32.public;
    get toggle_settings[0u8] into r1;
    and r1 9u32 into r2;
    assert.eq r2 1u32;
    and r0 1u32 into r3;
    assert.eq r3 1u32;
    set r0 into toggle_settings[0u8];

function set_mint_block:
    input r0 as u32.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    async set_mint_block r0 into r1;
    output r1 as privacy_pride_nft_test13.aleo/set_mint_block.future;
finalize set_mint_block:
    input r0 as u32.public;
    get toggle_settings[0u8] into r1;
    and r1 9u32 into r2;
    assert.eq r2 1u32;
    set r0 into toggle_settings[1u8];

function update_symbol:
    input r0 as u128.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    async update_symbol r0 into r1;
    output r1 as privacy_pride_nft_test13.aleo/update_symbol.future;
finalize update_symbol:
    input r0 as u128.public;
    get toggle_settings[0u8] into r1;
    and r1 9u32 into r2;
    assert.eq r2 1u32;
    set r0 into general_settings[2u8];

function update_base_uri:
    input r0 as BaseURI.public;
    assert.eq self.caller aleo1uran94ddjnvdr0neh8d0mzxuvv77pyprnp7jmzpkuh7950t46qyqnsadey;
    async update_base_uri r0 into r1;
    output r1 as privacy_pride_nft_test13.aleo/update_base_uri.future;
finalize update_base_uri:
    input r0 as BaseURI.public;
    get toggle_settings[0u8] into r1;
    and r1 9u32 into r2;
    assert.eq r2 1u32;
    set r0.data0 into general_settings[3u8];
    set r0.data1 into general_settings[4u8];
    set r0.data2 into general_settings[5u8];
    set r0.data3 into general_settings[6u8];

function open_mint:
    input r0 as scalar.private;
    hash.bhp256 self.caller into r1 as field;
    commit.bhp256 r1 r0 into r2 as field;
    cast self.caller r2 into r3 as NFT_claim.record;
    async open_mint r2 into r4;
    output r3 as NFT_claim.record;
    output r4 as privacy_pride_nft_test13.aleo/open_mint.future;
finalize open_mint:
    input r0 as field.public;
    get toggle_settings[1u8] into r1;
    lte r1 block.height into r2;
    assert.eq r2 true;
    get toggle_settings[0u8] into r3;
    and r3 15u32 into r4;
    assert.eq r4 3u32;
    get.or_use claims_to_nfts[r0] 0field into r5;
    assert.eq r5 0field;
    rand.chacha into r6 as u128;
    get.or_use general_settings[0u8] 0u128 into r7;
    rem r6 r7 into r8;
    get nfts_to_mint[r8] into r9;
    set r9 into claims_to_nfts[r0];
    sub r7 1u128 into r10;
    set r10 into general_settings[0u8];
    get nfts_to_mint[r10] into r11;
    set r11 into nfts_to_mint[r8];

function mint:
    input r0 as NFT_mint.record;
    input r1 as scalar.private;
    hash.bhp256 self.caller into r2 as field;
    commit.bhp256 r2 r1 into r3 as field;
    sub r0.amount 1u8 into r4;
    cast r0.owner r4 into r5 as NFT_mint.record;
    cast r0.owner r3 into r6 as NFT_claim.record;
    async mint r3 into r7;
    output r5 as NFT_mint.record;
    output r6 as NFT_claim.record;
    output r7 as privacy_pride_nft_test13.aleo/mint.future;
finalize mint:
    input r0 as field.public;
    get toggle_settings[1u8] into r1;
    lte r1 block.height into r2;
    assert.eq r2 true;
    get toggle_settings[0u8] into r3;
    and r3 11u32 into r4;
    assert.eq r4 3u32;
    get.or_use claims_to_nfts[r0] 0field into r5;
    assert.eq r5 0field;
    rand.chacha into r6 as u128;
    get.or_use general_settings[0u8] 0u128 into r7;
    rem r6 r7 into r8;
    get nfts_to_mint[r8] into r9;
    set r9 into claims_to_nfts[r0];
    sub r7 1u128 into r10;
    set r10 into general_settings[0u8];
    get nfts_to_mint[r10] into r11;
    set r11 into nfts_to_mint[r8];

function claim_nft:
    input r0 as NFT_claim.record;
    input r1 as TokenId.private;
    input r2 as scalar.private;
    hash.bhp256 r1 into r3 as field;
    commit.bhp256 r3 r2 into r4 as field;
    cast r0.owner r1 r2 into r5 as NFT.record;
    async claim_nft r0.claim r4 into r6;
    output r5 as NFT.record;
    output r6 as privacy_pride_nft_test13.aleo/claim_nft.future;
finalize claim_nft:
    input r0 as field.public;
    input r1 as field.public;
    get claims_to_nfts[r0] into r2;
    assert.eq r2 r1;
    set 0field into claims_to_nfts[r0];

function authorize:
    input r0 as NFT.record;
    input r1 as u64.public;
    async authorize  into r2;
    output r2 as privacy_pride_nft_test13.aleo/authorize.future;
finalize authorize:
    assert.eq 0u8 1u8;

function transfer_private:
    input r0 as NFT.record;
    input r1 as address.private;
    cast r1 r0.data r0.edition into r2 as NFT.record;
    output r2 as NFT.record;

function transfer_public:
    input r0 as address.private;
    input r1 as TokenId.private;
    input r2 as scalar.private;
    hash.bhp256 r1 into r3 as field;
    commit.bhp256 r3 r2 into r4 as field;
    async transfer_public r0 r4 self.caller into r5;
    output r5 as privacy_pride_nft_test13.aleo/transfer_public.future;
finalize transfer_public:
    input r0 as address.public;
    input r1 as field.public;
    input r2 as address.public;
    get nft_owners[r1] into r3;
    assert.eq r2 r3;
    set r0 into nft_owners[r1];

function convert_private_to_public:
    input r0 as NFT.record;
    hash.bhp256 r0.data into r1 as field;
    commit.bhp256 r1 r0.edition into r2 as field;
    async convert_private_to_public r0.owner r2 into r3;
    output r3 as privacy_pride_nft_test13.aleo/convert_private_to_public.future;
finalize convert_private_to_public:
    input r0 as address.public;
    input r1 as field.public;
    set r0 into nft_owners[r1];

function convert_public_to_private:
    input r0 as address.private;
    input r1 as TokenId.private;
    input r2 as scalar.private;
    assert.eq r0 self.caller;
    hash.bhp256 r1 into r3 as field;
    commit.bhp256 r3 r2 into r4 as field;
    cast r0 r1 r2 into r5 as NFT.record;
    async convert_public_to_private r0 r4 into r6;
    output r5 as NFT.record;
    output r6 as privacy_pride_nft_test13.aleo/convert_public_to_private.future;
finalize convert_public_to_private:
    input r0 as address.public;
    input r1 as field.public;
    get nft_owners[r1] into r2;
    assert.eq r0 r2;
    set aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into nft_owners[r1];

Block heightTimestampTransition IDFunction callState
1,120,3172024-01-06 00:15:02au1jz8ajt8cg96acnjd6vtw3079y3lrwr87hwhgh6cp97jyvs5v5uxs5rak3aconvert_private_to_publicAccepted
1,120,3062024-01-06 00:12:55au14ruuvasx3wdfdmh9zyg59sn84zd8xcs4wazwdq5ycsrdn4l2lcqq7mf6zltransfer_privateAccepted
1,120,2992024-01-06 00:11:08au1jlsrhf7e7v03u7uxhrdgpm9tctwejqld3js309d8ucgr4d30gyqsuntppkclaim_nftAccepted
1,120,2882024-01-06 00:08:20au1ncrp2svc4ktqc6hphkc3erhj0elwe8hr8f3t7c2jfl5wt7vptqgqjlrzp4mintAccepted
1,120,2802024-01-06 00:06:33au12lamae4ftq22d9l6lka3xeya774mt9cffaggfs8h260djgcw4q9s83syr8add_nftAccepted
1,120,2782024-01-06 00:06:05au1cgqpdvn90l8jq7grkr7htwcuh0mp3nxpw8v0dydv34fnyhzm7gps4cckhkadd_minterAccepted
959,7142023-12-14 19:58:31au10gy95key9qptqvzcm2svs0e9mvphqa7zf8l5uzhj5px089w2qyfqqws04pclaim_nftAccepted
939,1572023-12-13 15:42:58au1qfne28nl9uc8z6qm0lav5300wh3pl9qkgw469wz90vdwwn6l4crqd7tk42mintAccepted
926,6572023-12-12 22:40:43au1d85cxn0x0rvkzpt04ygg5px44yptwjanx2aydc3q8nvx9q8pv5gsqn7awpadd_nftAccepted
925,4612023-12-12 21:00:48au1gcu2uqpmjqk7ax58s6wnstdw4mm7h7fzjuvsh4warvh5hl2k5y8sg6grt3add_nftAccepted
421,8812023-11-15 09:41:26au1f6tlqtlvm4n246ha8dzr2v89zxc4mww5rzfe97sfjhyzysdenc9qx02rp5add_minterAccepted
158,2922023-10-31 16:42:37au1q9l2jkqmskjcwa0rqn4q56mxg26ku26lwrn4wxr5cgz3rky7ugpsndx4x9mintRejected
157,3372023-10-31 15:25:14au1jf8dtzw6u20g47ug2de6ltsgqsn8kt4vcye8hwj8tmdwa0g7zyxqm347u2mintRejected
150,4442023-10-31 06:16:06au1gm2h2g62ysjjacjhuwt73gfq05vmurwyu6k07q3cf0qn83sz8gxqexf836mintRejected
150,2472023-10-31 06:00:35au15ntszd2t4h24hk2ru24cmfk559ku8kynlhrsdez5q43xqccdvq8qen5rw5mintRejected
150,1082023-10-31 05:49:35au1pfuc5xvylxhmaqq9378f85pajv4fn8e0384rwjymrzxs3r3erqgqudz36zmintRejected
150,0072023-10-31 05:41:51au1wecm5l77z357qp0g0jq3x773n2h7e9f797txl3nstfjv2asxeuxshznrlvupdate_toggle_settingsAccepted
149,9642023-10-31 05:38:46au1n3q8vec8ke7k825kxd5gwcqz62jlxn4te8pdeelnppyu3dl2q59sfrwqcjadd_minterAccepted
149,4372023-10-31 04:57:07au14ns47wpzgp3rghyvf2cpgyjn6nzjk3ph7tz0ez000aqtc9xqzsrqfmvax9initialize_collectionAccepted










Not implemented