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

Program aleo_name_service_registry_v1.aleo

Program ID
aleo_name_service_registry_v1.aleo
Owner signature
sign1znxsd5un57hp38j99upj7679f09dpekgxhs9j9ag20jusgp78sppevfah6na75xde4jkcpv9luuyk2evxvf47agp4c7pww7gchmsvqyhrlc8p40nd8wm5hhd9wfym3rpy6fnk08af8z3ktjgqmqz2xk9qu0w5wdnuvu8krhddwxnx7k94j6qe9mj8mvkagara8ka0gumf9rq6pat863
Times called
1465
Similar programs
0
Imports
Mappings
nft_owners (field -> address)
names (field -> NameStruct)
primary_names (address -> field)
resolvers (ResolverIndex -> [u128; 4u32])
name_versions (field -> u64)
domain_credits (field -> u64)
general_settings (u8 -> u128)
toggle_settings (u8 -> u32)
Structs
BaseURI
ResolverIndex
Name
NameStruct
Records
NFT
NFT_ownership
Functions
validate_name
Transitions
initialize_collection(public u128, public u128, public BaseURI) -> () finalize(u128, u128, u128, BaseURI)
set_admin(address) -> () finalize(u128, u128)
set_mint_block(public u32) -> () finalize(u128, u32)
update_base_uri(public BaseURI) -> () finalize(u128, BaseURI)
update_toggle_settings(public u32) -> () finalize(u128, u32)
register_tld(address, [u128; 4u32]) -> () finalize(u128, address, field, [u128; 4u32])
register([u128; 4u32], field, address, u128) -> NFT finalize(field, [u128; 4u32], field, u128, address)
register_private([u128; 4u32], NFT, address, u128) -> (NFT, NFT) finalize(field, [u128; 4u32], field, u128)
register_public([u128; 4u32], field, address, u128) -> NFT finalize(field, [u128; 4u32], field, u128, address)
transfer_private(NFT, address) -> NFT
transfer_public(address, field) -> () finalize(address, field, address)
convert_private_to_public(NFT, address) -> () finalize(address, field)
convert_public_to_private(field, address) -> NFT finalize(address, field)
set_primary_name(field) -> () finalize(field, address)
unset_primary_name() -> () finalize(address)
set_resolver(field, u128) -> () finalize(field, address, u128)
set_resolver_record(field, u128, [u128; 4u32]) -> () finalize(field, address, u128, [u128; 4u32])
unset_resolver_record(field, u128) -> () finalize(field, address, u128)
clear_resolver_record(field) -> () finalize(field, address)
check_ownship(field, address) -> () finalize(field, address)
proof_ownership(NFT, address) -> (NFT, NFT_ownership)
transfer_credits(field, [u128; 4u32], u64, credits.aleo/credits) -> () finalize(field, u64)
claim_credits_private(NFT, [u128; 4u32], u64) -> NFT finalize(field, u64)
claim_credits_public(field, [u128; 4u32], u64) -> () finalize(field, address, field, u64)
authorize(NFT) -> ()
burn(NFT) -> () finalize(field)
is_avaiable(field) -> () finalize(field)
Program Source Code (Aleo Instruction) Upload Leo source

import credits.aleo;

program aleo_name_service_registry_v1.aleo;

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

struct ResolverIndex:
    name as field;
    category as u128;
    version as u64;

struct Name:
    name as [u128; 4u32];
    parent as field;

struct NameStruct:
    name as [u128; 4u32];
    parent as field;
    resolver as u128;

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

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

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

mapping names:
    key as field.public;
    value as NameStruct.public;

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

mapping resolvers:
    key as ResolverIndex.public;
    value as [u128; 4u32].public;

mapping name_versions:
    key as field.public;
    value as u64.public;

mapping domain_credits:
    key as field.public;
    value as u64.public;

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

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

closure validate_name:
    input r0 as [u128; 4u32];
    add r0[0] r0[1] into r1;
    add r1 r0[2] into r2;
    add r2 r0[3] into r3;
    is.neq r3 0u128 into r4;
    assert.eq r4 true;
    mul 0u8 8u8 into r5;
    shr r0[0] r5 into r6;
    and r6 255u128 into r7;
    is.eq r7 0u128 into r8;
    is.eq r7 45u128 into r9;
    or r8 r9 into r10;
    is.eq r7 95u128 into r11;
    or r10 r11 into r12;
    gte r7 48u128 into r13;
    lte r7 57u128 into r14;
    and r13 r14 into r15;
    or r12 r15 into r16;
    gte r7 97u128 into r17;
    lte r7 122u128 into r18;
    and r17 r18 into r19;
    or r16 r19 into r20;
    not r20 into r21;
    mul 1u8 8u8 into r22;
    shr r0[0] r22 into r23;
    and r23 255u128 into r24;
    is.eq r24 0u128 into r25;
    is.eq r24 45u128 into r26;
    or r25 r26 into r27;
    is.eq r24 95u128 into r28;
    or r27 r28 into r29;
    gte r24 48u128 into r30;
    lte r24 57u128 into r31;
    and r30 r31 into r32;
    or r29 r32 into r33;
    gte r24 97u128 into r34;
    lte r24 122u128 into r35;
    and r34 r35 into r36;
    or r33 r36 into r37;
    not r37 into r38;
    mul 2u8 8u8 into r39;
    shr r0[0] r39 into r40;
    and r40 255u128 into r41;
    is.eq r41 0u128 into r42;
    is.eq r41 45u128 into r43;
    or r42 r43 into r44;
    is.eq r41 95u128 into r45;
    or r44 r45 into r46;
    gte r41 48u128 into r47;
    lte r41 57u128 into r48;
    and r47 r48 into r49;
    or r46 r49 into r50;
    gte r41 97u128 into r51;
    lte r41 122u128 into r52;
    and r51 r52 into r53;
    or r50 r53 into r54;
    not r54 into r55;
    mul 3u8 8u8 into r56;
    shr r0[0] r56 into r57;
    and r57 255u128 into r58;
    is.eq r58 0u128 into r59;
    is.eq r58 45u128 into r60;
    or r59 r60 into r61;
    is.eq r58 95u128 into r62;
    or r61 r62 into r63;
    gte r58 48u128 into r64;
    lte r58 57u128 into r65;
    and r64 r65 into r66;
    or r63 r66 into r67;
    gte r58 97u128 into r68;
    lte r58 122u128 into r69;
    and r68 r69 into r70;
    or r67 r70 into r71;
    not r71 into r72;
    mul 4u8 8u8 into r73;
    shr r0[0] r73 into r74;
    and r74 255u128 into r75;
    is.eq r75 0u128 into r76;
    is.eq r75 45u128 into r77;
    or r76 r77 into r78;
    is.eq r75 95u128 into r79;
    or r78 r79 into r80;
    gte r75 48u128 into r81;
    lte r75 57u128 into r82;
    and r81 r82 into r83;
    or r80 r83 into r84;
    gte r75 97u128 into r85;
    lte r75 122u128 into r86;
    and r85 r86 into r87;
    or r84 r87 into r88;
    not r88 into r89;
    mul 5u8 8u8 into r90;
    shr r0[0] r90 into r91;
    and r91 255u128 into r92;
    is.eq r92 0u128 into r93;
    is.eq r92 45u128 into r94;
    or r93 r94 into r95;
    is.eq r92 95u128 into r96;
    or r95 r96 into r97;
    gte r92 48u128 into r98;
    lte r92 57u128 into r99;
    and r98 r99 into r100;
    or r97 r100 into r101;
    gte r92 97u128 into r102;
    lte r92 122u128 into r103;
    and r102 r103 into r104;
    or r101 r104 into r105;
    not r105 into r106;
    mul 6u8 8u8 into r107;
    shr r0[0] r107 into r108;
    and r108 255u128 into r109;
    is.eq r109 0u128 into r110;
    is.eq r109 45u128 into r111;
    or r110 r111 into r112;
    is.eq r109 95u128 into r113;
    or r112 r113 into r114;
    gte r109 48u128 into r115;
    lte r109 57u128 into r116;
    and r115 r116 into r117;
    or r114 r117 into r118;
    gte r109 97u128 into r119;
    lte r109 122u128 into r120;
    and r119 r120 into r121;
    or r118 r121 into r122;
    not r122 into r123;
    mul 7u8 8u8 into r124;
    shr r0[0] r124 into r125;
    and r125 255u128 into r126;
    is.eq r126 0u128 into r127;
    is.eq r126 45u128 into r128;
    or r127 r128 into r129;
    is.eq r126 95u128 into r130;
    or r129 r130 into r131;
    gte r126 48u128 into r132;
    lte r126 57u128 into r133;
    and r132 r133 into r134;
    or r131 r134 into r135;
    gte r126 97u128 into r136;
    lte r126 122u128 into r137;
    and r136 r137 into r138;
    or r135 r138 into r139;
    not r139 into r140;
    mul 8u8 8u8 into r141;
    shr r0[0] r141 into r142;
    and r142 255u128 into r143;
    is.eq r143 0u128 into r144;
    is.eq r143 45u128 into r145;
    or r144 r145 into r146;
    is.eq r143 95u128 into r147;
    or r146 r147 into r148;
    gte r143 48u128 into r149;
    lte r143 57u128 into r150;
    and r149 r150 into r151;
    or r148 r151 into r152;
    gte r143 97u128 into r153;
    lte r143 122u128 into r154;
    and r153 r154 into r155;
    or r152 r155 into r156;
    not r156 into r157;
    mul 9u8 8u8 into r158;
    shr r0[0] r158 into r159;
    and r159 255u128 into r160;
    is.eq r160 0u128 into r161;
    is.eq r160 45u128 into r162;
    or r161 r162 into r163;
    is.eq r160 95u128 into r164;
    or r163 r164 into r165;
    gte r160 48u128 into r166;
    lte r160 57u128 into r167;
    and r166 r167 into r168;
    or r165 r168 into r169;
    gte r160 97u128 into r170;
    lte r160 122u128 into r171;
    and r170 r171 into r172;
    or r169 r172 into r173;
    not r173 into r174;
    mul 10u8 8u8 into r175;
    shr r0[0] r175 into r176;
    and r176 255u128 into r177;
    is.eq r177 0u128 into r178;
    is.eq r177 45u128 into r179;
    or r178 r179 into r180;
    is.eq r177 95u128 into r181;
    or r180 r181 into r182;
    gte r177 48u128 into r183;
    lte r177 57u128 into r184;
    and r183 r184 into r185;
    or r182 r185 into r186;
    gte r177 97u128 into r187;
    lte r177 122u128 into r188;
    and r187 r188 into r189;
    or r186 r189 into r190;
    not r190 into r191;
    mul 11u8 8u8 into r192;
    shr r0[0] r192 into r193;
    and r193 255u128 into r194;
    is.eq r194 0u128 into r195;
    is.eq r194 45u128 into r196;
    or r195 r196 into r197;
    is.eq r194 95u128 into r198;
    or r197 r198 into r199;
    gte r194 48u128 into r200;
    lte r194 57u128 into r201;
    and r200 r201 into r202;
    or r199 r202 into r203;
    gte r194 97u128 into r204;
    lte r194 122u128 into r205;
    and r204 r205 into r206;
    or r203 r206 into r207;
    not r207 into r208;
    mul 12u8 8u8 into r209;
    shr r0[0] r209 into r210;
    and r210 255u128 into r211;
    is.eq r211 0u128 into r212;
    is.eq r211 45u128 into r213;
    or r212 r213 into r214;
    is.eq r211 95u128 into r215;
    or r214 r215 into r216;
    gte r211 48u128 into r217;
    lte r211 57u128 into r218;
    and r217 r218 into r219;
    or r216 r219 into r220;
    gte r211 97u128 into r221;
    lte r211 122u128 into r222;
    and r221 r222 into r223;
    or r220 r223 into r224;
    not r224 into r225;
    mul 13u8 8u8 into r226;
    shr r0[0] r226 into r227;
    and r227 255u128 into r228;
    is.eq r228 0u128 into r229;
    is.eq r228 45u128 into r230;
    or r229 r230 into r231;
    is.eq r228 95u128 into r232;
    or r231 r232 into r233;
    gte r228 48u128 into r234;
    lte r228 57u128 into r235;
    and r234 r235 into r236;
    or r233 r236 into r237;
    gte r228 97u128 into r238;
    lte r228 122u128 into r239;
    and r238 r239 into r240;
    or r237 r240 into r241;
    not r241 into r242;
    mul 14u8 8u8 into r243;
    shr r0[0] r243 into r244;
    and r244 255u128 into r245;
    is.eq r245 0u128 into r246;
    is.eq r245 45u128 into r247;
    or r246 r247 into r248;
    is.eq r245 95u128 into r249;
    or r248 r249 into r250;
    gte r245 48u128 into r251;
    lte r245 57u128 into r252;
    and r251 r252 into r253;
    or r250 r253 into r254;
    gte r245 97u128 into r255;
    lte r245 122u128 into r256;
    and r255 r256 into r257;
    or r254 r257 into r258;
    not r258 into r259;
    mul 15u8 8u8 into r260;
    shr r0[0] r260 into r261;
    and r261 255u128 into r262;
    is.eq r262 0u128 into r263;
    is.eq r262 45u128 into r264;
    or r263 r264 into r265;
    is.eq r262 95u128 into r266;
    or r265 r266 into r267;
    gte r262 48u128 into r268;
    lte r262 57u128 into r269;
    and r268 r269 into r270;
    or r267 r270 into r271;
    gte r262 97u128 into r272;
    lte r262 122u128 into r273;
    and r272 r273 into r274;
    or r271 r274 into r275;
    not r275 into r276;
    ternary r276 false true into r277;
    ternary r259 false r277 into r278;
    ternary r242 false r278 into r279;
    ternary r225 false r279 into r280;
    ternary r208 false r280 into r281;
    ternary r191 false r281 into r282;
    ternary r174 false r282 into r283;
    ternary r157 false r283 into r284;
    ternary r140 false r284 into r285;
    ternary r123 false r285 into r286;
    ternary r106 false r286 into r287;
    ternary r89 false r287 into r288;
    ternary r72 false r288 into r289;
    ternary r55 false r289 into r290;
    ternary r38 false r290 into r291;
    ternary r21 false r291 into r292;
    and true r292 into r293;
    mul 0u8 8u8 into r294;
    shr r0[1] r294 into r295;
    and r295 255u128 into r296;
    is.eq r296 0u128 into r297;
    is.eq r296 45u128 into r298;
    or r297 r298 into r299;
    is.eq r296 95u128 into r300;
    or r299 r300 into r301;
    gte r296 48u128 into r302;
    lte r296 57u128 into r303;
    and r302 r303 into r304;
    or r301 r304 into r305;
    gte r296 97u128 into r306;
    lte r296 122u128 into r307;
    and r306 r307 into r308;
    or r305 r308 into r309;
    not r309 into r310;
    mul 1u8 8u8 into r311;
    shr r0[1] r311 into r312;
    and r312 255u128 into r313;
    is.eq r313 0u128 into r314;
    is.eq r313 45u128 into r315;
    or r314 r315 into r316;
    is.eq r313 95u128 into r317;
    or r316 r317 into r318;
    gte r313 48u128 into r319;
    lte r313 57u128 into r320;
    and r319 r320 into r321;
    or r318 r321 into r322;
    gte r313 97u128 into r323;
    lte r313 122u128 into r324;
    and r323 r324 into r325;
    or r322 r325 into r326;
    not r326 into r327;
    mul 2u8 8u8 into r328;
    shr r0[1] r328 into r329;
    and r329 255u128 into r330;
    is.eq r330 0u128 into r331;
    is.eq r330 45u128 into r332;
    or r331 r332 into r333;
    is.eq r330 95u128 into r334;
    or r333 r334 into r335;
    gte r330 48u128 into r336;
    lte r330 57u128 into r337;
    and r336 r337 into r338;
    or r335 r338 into r339;
    gte r330 97u128 into r340;
    lte r330 122u128 into r341;
    and r340 r341 into r342;
    or r339 r342 into r343;
    not r343 into r344;
    mul 3u8 8u8 into r345;
    shr r0[1] r345 into r346;
    and r346 255u128 into r347;
    is.eq r347 0u128 into r348;
    is.eq r347 45u128 into r349;
    or r348 r349 into r350;
    is.eq r347 95u128 into r351;
    or r350 r351 into r352;
    gte r347 48u128 into r353;
    lte r347 57u128 into r354;
    and r353 r354 into r355;
    or r352 r355 into r356;
    gte r347 97u128 into r357;
    lte r347 122u128 into r358;
    and r357 r358 into r359;
    or r356 r359 into r360;
    not r360 into r361;
    mul 4u8 8u8 into r362;
    shr r0[1] r362 into r363;
    and r363 255u128 into r364;
    is.eq r364 0u128 into r365;
    is.eq r364 45u128 into r366;
    or r365 r366 into r367;
    is.eq r364 95u128 into r368;
    or r367 r368 into r369;
    gte r364 48u128 into r370;
    lte r364 57u128 into r371;
    and r370 r371 into r372;
    or r369 r372 into r373;
    gte r364 97u128 into r374;
    lte r364 122u128 into r375;
    and r374 r375 into r376;
    or r373 r376 into r377;
    not r377 into r378;
    mul 5u8 8u8 into r379;
    shr r0[1] r379 into r380;
    and r380 255u128 into r381;
    is.eq r381 0u128 into r382;
    is.eq r381 45u128 into r383;
    or r382 r383 into r384;
    is.eq r381 95u128 into r385;
    or r384 r385 into r386;
    gte r381 48u128 into r387;
    lte r381 57u128 into r388;
    and r387 r388 into r389;
    or r386 r389 into r390;
    gte r381 97u128 into r391;
    lte r381 122u128 into r392;
    and r391 r392 into r393;
    or r390 r393 into r394;
    not r394 into r395;
    mul 6u8 8u8 into r396;
    shr r0[1] r396 into r397;
    and r397 255u128 into r398;
    is.eq r398 0u128 into r399;
    is.eq r398 45u128 into r400;
    or r399 r400 into r401;
    is.eq r398 95u128 into r402;
    or r401 r402 into r403;
    gte r398 48u128 into r404;
    lte r398 57u128 into r405;
    and r404 r405 into r406;
    or r403 r406 into r407;
    gte r398 97u128 into r408;
    lte r398 122u128 into r409;
    and r408 r409 into r410;
    or r407 r410 into r411;
    not r411 into r412;
    mul 7u8 8u8 into r413;
    shr r0[1] r413 into r414;
    and r414 255u128 into r415;
    is.eq r415 0u128 into r416;
    is.eq r415 45u128 into r417;
    or r416 r417 into r418;
    is.eq r415 95u128 into r419;
    or r418 r419 into r420;
    gte r415 48u128 into r421;
    lte r415 57u128 into r422;
    and r421 r422 into r423;
    or r420 r423 into r424;
    gte r415 97u128 into r425;
    lte r415 122u128 into r426;
    and r425 r426 into r427;
    or r424 r427 into r428;
    not r428 into r429;
    mul 8u8 8u8 into r430;
    shr r0[1] r430 into r431;
    and r431 255u128 into r432;
    is.eq r432 0u128 into r433;
    is.eq r432 45u128 into r434;
    or r433 r434 into r435;
    is.eq r432 95u128 into r436;
    or r435 r436 into r437;
    gte r432 48u128 into r438;
    lte r432 57u128 into r439;
    and r438 r439 into r440;
    or r437 r440 into r441;
    gte r432 97u128 into r442;
    lte r432 122u128 into r443;
    and r442 r443 into r444;
    or r441 r444 into r445;
    not r445 into r446;
    mul 9u8 8u8 into r447;
    shr r0[1] r447 into r448;
    and r448 255u128 into r449;
    is.eq r449 0u128 into r450;
    is.eq r449 45u128 into r451;
    or r450 r451 into r452;
    is.eq r449 95u128 into r453;
    or r452 r453 into r454;
    gte r449 48u128 into r455;
    lte r449 57u128 into r456;
    and r455 r456 into r457;
    or r454 r457 into r458;
    gte r449 97u128 into r459;
    lte r449 122u128 into r460;
    and r459 r460 into r461;
    or r458 r461 into r462;
    not r462 into r463;
    mul 10u8 8u8 into r464;
    shr r0[1] r464 into r465;
    and r465 255u128 into r466;
    is.eq r466 0u128 into r467;
    is.eq r466 45u128 into r468;
    or r467 r468 into r469;
    is.eq r466 95u128 into r470;
    or r469 r470 into r471;
    gte r466 48u128 into r472;
    lte r466 57u128 into r473;
    and r472 r473 into r474;
    or r471 r474 into r475;
    gte r466 97u128 into r476;
    lte r466 122u128 into r477;
    and r476 r477 into r478;
    or r475 r478 into r479;
    not r479 into r480;
    mul 11u8 8u8 into r481;
    shr r0[1] r481 into r482;
    and r482 255u128 into r483;
    is.eq r483 0u128 into r484;
    is.eq r483 45u128 into r485;
    or r484 r485 into r486;
    is.eq r483 95u128 into r487;
    or r486 r487 into r488;
    gte r483 48u128 into r489;
    lte r483 57u128 into r490;
    and r489 r490 into r491;
    or r488 r491 into r492;
    gte r483 97u128 into r493;
    lte r483 122u128 into r494;
    and r493 r494 into r495;
    or r492 r495 into r496;
    not r496 into r497;
    mul 12u8 8u8 into r498;
    shr r0[1] r498 into r499;
    and r499 255u128 into r500;
    is.eq r500 0u128 into r501;
    is.eq r500 45u128 into r502;
    or r501 r502 into r503;
    is.eq r500 95u128 into r504;
    or r503 r504 into r505;
    gte r500 48u128 into r506;
    lte r500 57u128 into r507;
    and r506 r507 into r508;
    or r505 r508 into r509;
    gte r500 97u128 into r510;
    lte r500 122u128 into r511;
    and r510 r511 into r512;
    or r509 r512 into r513;
    not r513 into r514;
    mul 13u8 8u8 into r515;
    shr r0[1] r515 into r516;
    and r516 255u128 into r517;
    is.eq r517 0u128 into r518;
    is.eq r517 45u128 into r519;
    or r518 r519 into r520;
    is.eq r517 95u128 into r521;
    or r520 r521 into r522;
    gte r517 48u128 into r523;
    lte r517 57u128 into r524;
    and r523 r524 into r525;
    or r522 r525 into r526;
    gte r517 97u128 into r527;
    lte r517 122u128 into r528;
    and r527 r528 into r529;
    or r526 r529 into r530;
    not r530 into r531;
    mul 14u8 8u8 into r532;
    shr r0[1] r532 into r533;
    and r533 255u128 into r534;
    is.eq r534 0u128 into r535;
    is.eq r534 45u128 into r536;
    or r535 r536 into r537;
    is.eq r534 95u128 into r538;
    or r537 r538 into r539;
    gte r534 48u128 into r540;
    lte r534 57u128 into r541;
    and r540 r541 into r542;
    or r539 r542 into r543;
    gte r534 97u128 into r544;
    lte r534 122u128 into r545;
    and r544 r545 into r546;
    or r543 r546 into r547;
    not r547 into r548;
    mul 15u8 8u8 into r549;
    shr r0[1] r549 into r550;
    and r550 255u128 into r551;
    is.eq r551 0u128 into r552;
    is.eq r551 45u128 into r553;
    or r552 r553 into r554;
    is.eq r551 95u128 into r555;
    or r554 r555 into r556;
    gte r551 48u128 into r557;
    lte r551 57u128 into r558;
    and r557 r558 into r559;
    or r556 r559 into r560;
    gte r551 97u128 into r561;
    lte r551 122u128 into r562;
    and r561 r562 into r563;
    or r560 r563 into r564;
    not r564 into r565;
    ternary r565 false true into r566;
    ternary r548 false r566 into r567;
    ternary r531 false r567 into r568;
    ternary r514 false r568 into r569;
    ternary r497 false r569 into r570;
    ternary r480 false r570 into r571;
    ternary r463 false r571 into r572;
    ternary r446 false r572 into r573;
    ternary r429 false r573 into r574;
    ternary r412 false r574 into r575;
    ternary r395 false r575 into r576;
    ternary r378 false r576 into r577;
    ternary r361 false r577 into r578;
    ternary r344 false r578 into r579;
    ternary r327 false r579 into r580;
    ternary r310 false r580 into r581;
    and r293 r581 into r582;
    mul 0u8 8u8 into r583;
    shr r0[2] r583 into r584;
    and r584 255u128 into r585;
    is.eq r585 0u128 into r586;
    is.eq r585 45u128 into r587;
    or r586 r587 into r588;
    is.eq r585 95u128 into r589;
    or r588 r589 into r590;
    gte r585 48u128 into r591;
    lte r585 57u128 into r592;
    and r591 r592 into r593;
    or r590 r593 into r594;
    gte r585 97u128 into r595;
    lte r585 122u128 into r596;
    and r595 r596 into r597;
    or r594 r597 into r598;
    not r598 into r599;
    mul 1u8 8u8 into r600;
    shr r0[2] r600 into r601;
    and r601 255u128 into r602;
    is.eq r602 0u128 into r603;
    is.eq r602 45u128 into r604;
    or r603 r604 into r605;
    is.eq r602 95u128 into r606;
    or r605 r606 into r607;
    gte r602 48u128 into r608;
    lte r602 57u128 into r609;
    and r608 r609 into r610;
    or r607 r610 into r611;
    gte r602 97u128 into r612;
    lte r602 122u128 into r613;
    and r612 r613 into r614;
    or r611 r614 into r615;
    not r615 into r616;
    mul 2u8 8u8 into r617;
    shr r0[2] r617 into r618;
    and r618 255u128 into r619;
    is.eq r619 0u128 into r620;
    is.eq r619 45u128 into r621;
    or r620 r621 into r622;
    is.eq r619 95u128 into r623;
    or r622 r623 into r624;
    gte r619 48u128 into r625;
    lte r619 57u128 into r626;
    and r625 r626 into r627;
    or r624 r627 into r628;
    gte r619 97u128 into r629;
    lte r619 122u128 into r630;
    and r629 r630 into r631;
    or r628 r631 into r632;
    not r632 into r633;
    mul 3u8 8u8 into r634;
    shr r0[2] r634 into r635;
    and r635 255u128 into r636;
    is.eq r636 0u128 into r637;
    is.eq r636 45u128 into r638;
    or r637 r638 into r639;
    is.eq r636 95u128 into r640;
    or r639 r640 into r641;
    gte r636 48u128 into r642;
    lte r636 57u128 into r643;
    and r642 r643 into r644;
    or r641 r644 into r645;
    gte r636 97u128 into r646;
    lte r636 122u128 into r647;
    and r646 r647 into r648;
    or r645 r648 into r649;
    not r649 into r650;
    mul 4u8 8u8 into r651;
    shr r0[2] r651 into r652;
    and r652 255u128 into r653;
    is.eq r653 0u128 into r654;
    is.eq r653 45u128 into r655;
    or r654 r655 into r656;
    is.eq r653 95u128 into r657;
    or r656 r657 into r658;
    gte r653 48u128 into r659;
    lte r653 57u128 into r660;
    and r659 r660 into r661;
    or r658 r661 into r662;
    gte r653 97u128 into r663;
    lte r653 122u128 into r664;
    and r663 r664 into r665;
    or r662 r665 into r666;
    not r666 into r667;
    mul 5u8 8u8 into r668;
    shr r0[2] r668 into r669;
    and r669 255u128 into r670;
    is.eq r670 0u128 into r671;
    is.eq r670 45u128 into r672;
    or r671 r672 into r673;
    is.eq r670 95u128 into r674;
    or r673 r674 into r675;
    gte r670 48u128 into r676;
    lte r670 57u128 into r677;
    and r676 r677 into r678;
    or r675 r678 into r679;
    gte r670 97u128 into r680;
    lte r670 122u128 into r681;
    and r680 r681 into r682;
    or r679 r682 into r683;
    not r683 into r684;
    mul 6u8 8u8 into r685;
    shr r0[2] r685 into r686;
    and r686 255u128 into r687;
    is.eq r687 0u128 into r688;
    is.eq r687 45u128 into r689;
    or r688 r689 into r690;
    is.eq r687 95u128 into r691;
    or r690 r691 into r692;
    gte r687 48u128 into r693;
    lte r687 57u128 into r694;
    and r693 r694 into r695;
    or r692 r695 into r696;
    gte r687 97u128 into r697;
    lte r687 122u128 into r698;
    and r697 r698 into r699;
    or r696 r699 into r700;
    not r700 into r701;
    mul 7u8 8u8 into r702;
    shr r0[2] r702 into r703;
    and r703 255u128 into r704;
    is.eq r704 0u128 into r705;
    is.eq r704 45u128 into r706;
    or r705 r706 into r707;
    is.eq r704 95u128 into r708;
    or r707 r708 into r709;
    gte r704 48u128 into r710;
    lte r704 57u128 into r711;
    and r710 r711 into r712;
    or r709 r712 into r713;
    gte r704 97u128 into r714;
    lte r704 122u128 into r715;
    and r714 r715 into r716;
    or r713 r716 into r717;
    not r717 into r718;
    mul 8u8 8u8 into r719;
    shr r0[2] r719 into r720;
    and r720 255u128 into r721;
    is.eq r721 0u128 into r722;
    is.eq r721 45u128 into r723;
    or r722 r723 into r724;
    is.eq r721 95u128 into r725;
    or r724 r725 into r726;
    gte r721 48u128 into r727;
    lte r721 57u128 into r728;
    and r727 r728 into r729;
    or r726 r729 into r730;
    gte r721 97u128 into r731;
    lte r721 122u128 into r732;
    and r731 r732 into r733;
    or r730 r733 into r734;
    not r734 into r735;
    mul 9u8 8u8 into r736;
    shr r0[2] r736 into r737;
    and r737 255u128 into r738;
    is.eq r738 0u128 into r739;
    is.eq r738 45u128 into r740;
    or r739 r740 into r741;
    is.eq r738 95u128 into r742;
    or r741 r742 into r743;
    gte r738 48u128 into r744;
    lte r738 57u128 into r745;
    and r744 r745 into r746;
    or r743 r746 into r747;
    gte r738 97u128 into r748;
    lte r738 122u128 into r749;
    and r748 r749 into r750;
    or r747 r750 into r751;
    not r751 into r752;
    mul 10u8 8u8 into r753;
    shr r0[2] r753 into r754;
    and r754 255u128 into r755;
    is.eq r755 0u128 into r756;
    is.eq r755 45u128 into r757;
    or r756 r757 into r758;
    is.eq r755 95u128 into r759;
    or r758 r759 into r760;
    gte r755 48u128 into r761;
    lte r755 57u128 into r762;
    and r761 r762 into r763;
    or r760 r763 into r764;
    gte r755 97u128 into r765;
    lte r755 122u128 into r766;
    and r765 r766 into r767;
    or r764 r767 into r768;
    not r768 into r769;
    mul 11u8 8u8 into r770;
    shr r0[2] r770 into r771;
    and r771 255u128 into r772;
    is.eq r772 0u128 into r773;
    is.eq r772 45u128 into r774;
    or r773 r774 into r775;
    is.eq r772 95u128 into r776;
    or r775 r776 into r777;
    gte r772 48u128 into r778;
    lte r772 57u128 into r779;
    and r778 r779 into r780;
    or r777 r780 into r781;
    gte r772 97u128 into r782;
    lte r772 122u128 into r783;
    and r782 r783 into r784;
    or r781 r784 into r785;
    not r785 into r786;
    mul 12u8 8u8 into r787;
    shr r0[2] r787 into r788;
    and r788 255u128 into r789;
    is.eq r789 0u128 into r790;
    is.eq r789 45u128 into r791;
    or r790 r791 into r792;
    is.eq r789 95u128 into r793;
    or r792 r793 into r794;
    gte r789 48u128 into r795;
    lte r789 57u128 into r796;
    and r795 r796 into r797;
    or r794 r797 into r798;
    gte r789 97u128 into r799;
    lte r789 122u128 into r800;
    and r799 r800 into r801;
    or r798 r801 into r802;
    not r802 into r803;
    mul 13u8 8u8 into r804;
    shr r0[2] r804 into r805;
    and r805 255u128 into r806;
    is.eq r806 0u128 into r807;
    is.eq r806 45u128 into r808;
    or r807 r808 into r809;
    is.eq r806 95u128 into r810;
    or r809 r810 into r811;
    gte r806 48u128 into r812;
    lte r806 57u128 into r813;
    and r812 r813 into r814;
    or r811 r814 into r815;
    gte r806 97u128 into r816;
    lte r806 122u128 into r817;
    and r816 r817 into r818;
    or r815 r818 into r819;
    not r819 into r820;
    mul 14u8 8u8 into r821;
    shr r0[2] r821 into r822;
    and r822 255u128 into r823;
    is.eq r823 0u128 into r824;
    is.eq r823 45u128 into r825;
    or r824 r825 into r826;
    is.eq r823 95u128 into r827;
    or r826 r827 into r828;
    gte r823 48u128 into r829;
    lte r823 57u128 into r830;
    and r829 r830 into r831;
    or r828 r831 into r832;
    gte r823 97u128 into r833;
    lte r823 122u128 into r834;
    and r833 r834 into r835;
    or r832 r835 into r836;
    not r836 into r837;
    mul 15u8 8u8 into r838;
    shr r0[2] r838 into r839;
    and r839 255u128 into r840;
    is.eq r840 0u128 into r841;
    is.eq r840 45u128 into r842;
    or r841 r842 into r843;
    is.eq r840 95u128 into r844;
    or r843 r844 into r845;
    gte r840 48u128 into r846;
    lte r840 57u128 into r847;
    and r846 r847 into r848;
    or r845 r848 into r849;
    gte r840 97u128 into r850;
    lte r840 122u128 into r851;
    and r850 r851 into r852;
    or r849 r852 into r853;
    not r853 into r854;
    ternary r854 false true into r855;
    ternary r837 false r855 into r856;
    ternary r820 false r856 into r857;
    ternary r803 false r857 into r858;
    ternary r786 false r858 into r859;
    ternary r769 false r859 into r860;
    ternary r752 false r860 into r861;
    ternary r735 false r861 into r862;
    ternary r718 false r862 into r863;
    ternary r701 false r863 into r864;
    ternary r684 false r864 into r865;
    ternary r667 false r865 into r866;
    ternary r650 false r866 into r867;
    ternary r633 false r867 into r868;
    ternary r616 false r868 into r869;
    ternary r599 false r869 into r870;
    and r582 r870 into r871;
    mul 0u8 8u8 into r872;
    shr r0[3] r872 into r873;
    and r873 255u128 into r874;
    is.eq r874 0u128 into r875;
    is.eq r874 45u128 into r876;
    or r875 r876 into r877;
    is.eq r874 95u128 into r878;
    or r877 r878 into r879;
    gte r874 48u128 into r880;
    lte r874 57u128 into r881;
    and r880 r881 into r882;
    or r879 r882 into r883;
    gte r874 97u128 into r884;
    lte r874 122u128 into r885;
    and r884 r885 into r886;
    or r883 r886 into r887;
    not r887 into r888;
    mul 1u8 8u8 into r889;
    shr r0[3] r889 into r890;
    and r890 255u128 into r891;
    is.eq r891 0u128 into r892;
    is.eq r891 45u128 into r893;
    or r892 r893 into r894;
    is.eq r891 95u128 into r895;
    or r894 r895 into r896;
    gte r891 48u128 into r897;
    lte r891 57u128 into r898;
    and r897 r898 into r899;
    or r896 r899 into r900;
    gte r891 97u128 into r901;
    lte r891 122u128 into r902;
    and r901 r902 into r903;
    or r900 r903 into r904;
    not r904 into r905;
    mul 2u8 8u8 into r906;
    shr r0[3] r906 into r907;
    and r907 255u128 into r908;
    is.eq r908 0u128 into r909;
    is.eq r908 45u128 into r910;
    or r909 r910 into r911;
    is.eq r908 95u128 into r912;
    or r911 r912 into r913;
    gte r908 48u128 into r914;
    lte r908 57u128 into r915;
    and r914 r915 into r916;
    or r913 r916 into r917;
    gte r908 97u128 into r918;
    lte r908 122u128 into r919;
    and r918 r919 into r920;
    or r917 r920 into r921;
    not r921 into r922;
    mul 3u8 8u8 into r923;
    shr r0[3] r923 into r924;
    and r924 255u128 into r925;
    is.eq r925 0u128 into r926;
    is.eq r925 45u128 into r927;
    or r926 r927 into r928;
    is.eq r925 95u128 into r929;
    or r928 r929 into r930;
    gte r925 48u128 into r931;
    lte r925 57u128 into r932;
    and r931 r932 into r933;
    or r930 r933 into r934;
    gte r925 97u128 into r935;
    lte r925 122u128 into r936;
    and r935 r936 into r937;
    or r934 r937 into r938;
    not r938 into r939;
    mul 4u8 8u8 into r940;
    shr r0[3] r940 into r941;
    and r941 255u128 into r942;
    is.eq r942 0u128 into r943;
    is.eq r942 45u128 into r944;
    or r943 r944 into r945;
    is.eq r942 95u128 into r946;
    or r945 r946 into r947;
    gte r942 48u128 into r948;
    lte r942 57u128 into r949;
    and r948 r949 into r950;
    or r947 r950 into r951;
    gte r942 97u128 into r952;
    lte r942 122u128 into r953;
    and r952 r953 into r954;
    or r951 r954 into r955;
    not r955 into r956;
    mul 5u8 8u8 into r957;
    shr r0[3] r957 into r958;
    and r958 255u128 into r959;
    is.eq r959 0u128 into r960;
    is.eq r959 45u128 into r961;
    or r960 r961 into r962;
    is.eq r959 95u128 into r963;
    or r962 r963 into r964;
    gte r959 48u128 into r965;
    lte r959 57u128 into r966;
    and r965 r966 into r967;
    or r964 r967 into r968;
    gte r959 97u128 into r969;
    lte r959 122u128 into r970;
    and r969 r970 into r971;
    or r968 r971 into r972;
    not r972 into r973;
    mul 6u8 8u8 into r974;
    shr r0[3] r974 into r975;
    and r975 255u128 into r976;
    is.eq r976 0u128 into r977;
    is.eq r976 45u128 into r978;
    or r977 r978 into r979;
    is.eq r976 95u128 into r980;
    or r979 r980 into r981;
    gte r976 48u128 into r982;
    lte r976 57u128 into r983;
    and r982 r983 into r984;
    or r981 r984 into r985;
    gte r976 97u128 into r986;
    lte r976 122u128 into r987;
    and r986 r987 into r988;
    or r985 r988 into r989;
    not r989 into r990;
    mul 7u8 8u8 into r991;
    shr r0[3] r991 into r992;
    and r992 255u128 into r993;
    is.eq r993 0u128 into r994;
    is.eq r993 45u128 into r995;
    or r994 r995 into r996;
    is.eq r993 95u128 into r997;
    or r996 r997 into r998;
    gte r993 48u128 into r999;
    lte r993 57u128 into r1000;
    and r999 r1000 into r1001;
    or r998 r1001 into r1002;
    gte r993 97u128 into r1003;
    lte r993 122u128 into r1004;
    and r1003 r1004 into r1005;
    or r1002 r1005 into r1006;
    not r1006 into r1007;
    mul 8u8 8u8 into r1008;
    shr r0[3] r1008 into r1009;
    and r1009 255u128 into r1010;
    is.eq r1010 0u128 into r1011;
    is.eq r1010 45u128 into r1012;
    or r1011 r1012 into r1013;
    is.eq r1010 95u128 into r1014;
    or r1013 r1014 into r1015;
    gte r1010 48u128 into r1016;
    lte r1010 57u128 into r1017;
    and r1016 r1017 into r1018;
    or r1015 r1018 into r1019;
    gte r1010 97u128 into r1020;
    lte r1010 122u128 into r1021;
    and r1020 r1021 into r1022;
    or r1019 r1022 into r1023;
    not r1023 into r1024;
    mul 9u8 8u8 into r1025;
    shr r0[3] r1025 into r1026;
    and r1026 255u128 into r1027;
    is.eq r1027 0u128 into r1028;
    is.eq r1027 45u128 into r1029;
    or r1028 r1029 into r1030;
    is.eq r1027 95u128 into r1031;
    or r1030 r1031 into r1032;
    gte r1027 48u128 into r1033;
    lte r1027 57u128 into r1034;
    and r1033 r1034 into r1035;
    or r1032 r1035 into r1036;
    gte r1027 97u128 into r1037;
    lte r1027 122u128 into r1038;
    and r1037 r1038 into r1039;
    or r1036 r1039 into r1040;
    not r1040 into r1041;
    mul 10u8 8u8 into r1042;
    shr r0[3] r1042 into r1043;
    and r1043 255u128 into r1044;
    is.eq r1044 0u128 into r1045;
    is.eq r1044 45u128 into r1046;
    or r1045 r1046 into r1047;
    is.eq r1044 95u128 into r1048;
    or r1047 r1048 into r1049;
    gte r1044 48u128 into r1050;
    lte r1044 57u128 into r1051;
    and r1050 r1051 into r1052;
    or r1049 r1052 into r1053;
    gte r1044 97u128 into r1054;
    lte r1044 122u128 into r1055;
    and r1054 r1055 into r1056;
    or r1053 r1056 into r1057;
    not r1057 into r1058;
    mul 11u8 8u8 into r1059;
    shr r0[3] r1059 into r1060;
    and r1060 255u128 into r1061;
    is.eq r1061 0u128 into r1062;
    is.eq r1061 45u128 into r1063;
    or r1062 r1063 into r1064;
    is.eq r1061 95u128 into r1065;
    or r1064 r1065 into r1066;
    gte r1061 48u128 into r1067;
    lte r1061 57u128 into r1068;
    and r1067 r1068 into r1069;
    or r1066 r1069 into r1070;
    gte r1061 97u128 into r1071;
    lte r1061 122u128 into r1072;
    and r1071 r1072 into r1073;
    or r1070 r1073 into r1074;
    not r1074 into r1075;
    mul 12u8 8u8 into r1076;
    shr r0[3] r1076 into r1077;
    and r1077 255u128 into r1078;
    is.eq r1078 0u128 into r1079;
    is.eq r1078 45u128 into r1080;
    or r1079 r1080 into r1081;
    is.eq r1078 95u128 into r1082;
    or r1081 r1082 into r1083;
    gte r1078 48u128 into r1084;
    lte r1078 57u128 into r1085;
    and r1084 r1085 into r1086;
    or r1083 r1086 into r1087;
    gte r1078 97u128 into r1088;
    lte r1078 122u128 into r1089;
    and r1088 r1089 into r1090;
    or r1087 r1090 into r1091;
    not r1091 into r1092;
    mul 13u8 8u8 into r1093;
    shr r0[3] r1093 into r1094;
    and r1094 255u128 into r1095;
    is.eq r1095 0u128 into r1096;
    is.eq r1095 45u128 into r1097;
    or r1096 r1097 into r1098;
    is.eq r1095 95u128 into r1099;
    or r1098 r1099 into r1100;
    gte r1095 48u128 into r1101;
    lte r1095 57u128 into r1102;
    and r1101 r1102 into r1103;
    or r1100 r1103 into r1104;
    gte r1095 97u128 into r1105;
    lte r1095 122u128 into r1106;
    and r1105 r1106 into r1107;
    or r1104 r1107 into r1108;
    not r1108 into r1109;
    mul 14u8 8u8 into r1110;
    shr r0[3] r1110 into r1111;
    and r1111 255u128 into r1112;
    is.eq r1112 0u128 into r1113;
    is.eq r1112 45u128 into r1114;
    or r1113 r1114 into r1115;
    is.eq r1112 95u128 into r1116;
    or r1115 r1116 into r1117;
    gte r1112 48u128 into r1118;
    lte r1112 57u128 into r1119;
    and r1118 r1119 into r1120;
    or r1117 r1120 into r1121;
    gte r1112 97u128 into r1122;
    lte r1112 122u128 into r1123;
    and r1122 r1123 into r1124;
    or r1121 r1124 into r1125;
    not r1125 into r1126;
    mul 15u8 8u8 into r1127;
    shr r0[3] r1127 into r1128;
    and r1128 255u128 into r1129;
    is.eq r1129 0u128 into r1130;
    is.eq r1129 45u128 into r1131;
    or r1130 r1131 into r1132;
    is.eq r1129 95u128 into r1133;
    or r1132 r1133 into r1134;
    gte r1129 48u128 into r1135;
    lte r1129 57u128 into r1136;
    and r1135 r1136 into r1137;
    or r1134 r1137 into r1138;
    gte r1129 97u128 into r1139;
    lte r1129 122u128 into r1140;
    and r1139 r1140 into r1141;
    or r1138 r1141 into r1142;
    not r1142 into r1143;
    ternary r1143 false true into r1144;
    ternary r1126 false r1144 into r1145;
    ternary r1109 false r1145 into r1146;
    ternary r1092 false r1146 into r1147;
    ternary r1075 false r1147 into r1148;
    ternary r1058 false r1148 into r1149;
    ternary r1041 false r1149 into r1150;
    ternary r1024 false r1150 into r1151;
    ternary r1007 false r1151 into r1152;
    ternary r990 false r1152 into r1153;
    ternary r973 false r1153 into r1154;
    ternary r956 false r1154 into r1155;
    ternary r939 false r1155 into r1156;
    ternary r922 false r1156 into r1157;
    ternary r905 false r1157 into r1158;
    ternary r888 false r1158 into r1159;
    and r871 r1159 into r1160;
    output r1160 as boolean;

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

function set_admin:
    input r0 as address.private;
    hash.bhp256 self.caller into r1 as u128;
    hash.bhp256 r0 into r2 as u128;
    async set_admin r1 r2 into r3;
    output r3 as aleo_name_service_registry_v1.aleo/set_admin.future;
finalize set_admin:
    input r0 as u128.public;
    input r1 as u128.public;
    get general_settings[7u8] into r2;
    assert.eq r0 r2;
    set r1 into general_settings[7u8];

function set_mint_block:
    input r0 as u32.public;
    hash.bhp256 self.caller into r1 as u128;
    async set_mint_block r1 r0 into r2;
    output r2 as aleo_name_service_registry_v1.aleo/set_mint_block.future;
finalize set_mint_block:
    input r0 as u128.public;
    input r1 as u32.public;
    get general_settings[7u8] into r2;
    assert.eq r0 r2;
    get toggle_settings[0u8] into r3;
    and r3 9u32 into r4;
    assert.eq r4 1u32;
    set r1 into toggle_settings[1u8];

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

function update_toggle_settings:
    input r0 as u32.public;
    hash.bhp256 self.caller into r1 as u128;
    async update_toggle_settings r1 r0 into r2;
    output r2 as aleo_name_service_registry_v1.aleo/update_toggle_settings.future;
finalize update_toggle_settings:
    input r0 as u128.public;
    input r1 as u32.public;
    get general_settings[7u8] into r2;
    assert.eq r0 r2;
    get toggle_settings[0u8] into r3;
    and r3 9u32 into r4;
    assert.eq r4 1u32;
    and r1 1u32 into r5;
    assert.eq r5 1u32;
    set r1 into toggle_settings[0u8];

function register_tld:
    input r0 as address.private;
    input r1 as [u128; 4u32].private;
    cast r1 0field into r2 as Name;
    hash.psd2 r2 into r3 as field;
    hash.bhp256 self.caller into r4 as u128;
    async register_tld r4 r0 r3 r1 into r5;
    output r5 as aleo_name_service_registry_v1.aleo/register_tld.future;
finalize register_tld:
    input r0 as u128.public;
    input r1 as address.public;
    input r2 as field.public;
    input r3 as [u128; 4u32].public;
    get general_settings[7u8] into r4;
    assert.eq r0 r4;
    cast r3 0field 0u128 into r5 as NameStruct;
    set r5 into names[r2];
    set r1 into nft_owners[r2];

function register:
    input r0 as [u128; 4u32].private;
    input r1 as field.private;
    input r2 as address.private;
    input r3 as u128.private;
    call validate_name r0 into r4;
    assert.eq r4 true;
    cast r0 r1 into r5 as Name;
    hash.psd2 r5 into r6 as field;
    cast r2 r6 0scalar into r7 as NFT.record;
    async register r6 r0 r1 r3 self.caller into r8;
    output r7 as NFT.record;
    output r8 as aleo_name_service_registry_v1.aleo/register.future;
finalize register:
    input r0 as field.public;
    input r1 as [u128; 4u32].public;
    input r2 as field.public;
    input r3 as u128.public;
    input r4 as address.public;
    get nft_owners[r2] into r5;
    assert.eq r4 r5;
    contains names[r0] into r6;
    assert.eq r6 false;
    get toggle_settings[1u8] into r7;
    lte r7 block.height into r8;
    assert.eq r8 true;
    get toggle_settings[0u8] into r9;
    and r9 3u32 into r10;
    assert.eq r10 3u32;
    cast r1 r2 r3 into r11 as NameStruct;
    set r11 into names[r0];

function register_private:
    input r0 as [u128; 4u32].private;
    input r1 as NFT.record;
    input r2 as address.private;
    input r3 as u128.private;
    call validate_name r0 into r4;
    assert.eq r4 true;
    cast r0 r1.data into r5 as Name;
    hash.psd2 r5 into r6 as field;
    cast r2 r6 0scalar into r7 as NFT.record;
    cast r1.owner r1.data r1.edition into r8 as NFT.record;
    async register_private r6 r0 r1.data r3 into r9;
    output r7 as NFT.record;
    output r8 as NFT.record;
    output r9 as aleo_name_service_registry_v1.aleo/register_private.future;
finalize register_private:
    input r0 as field.public;
    input r1 as [u128; 4u32].public;
    input r2 as field.public;
    input r3 as u128.public;
    contains names[r0] into r4;
    assert.eq r4 false;
    get toggle_settings[1u8] into r5;
    lte r5 block.height into r6;
    assert.eq r6 true;
    get toggle_settings[0u8] into r7;
    and r7 3u32 into r8;
    assert.eq r8 3u32;
    cast r1 r2 r3 into r9 as NameStruct;
    set r9 into names[r0];

function register_public:
    input r0 as [u128; 4u32].private;
    input r1 as field.private;
    input r2 as address.private;
    input r3 as u128.private;
    call validate_name r0 into r4;
    assert.eq r4 true;
    cast r0 r1 into r5 as Name;
    hash.psd2 r5 into r6 as field;
    cast r2 r6 0scalar into r7 as NFT.record;
    async register_public r6 r0 r1 r3 self.signer into r8;
    output r7 as NFT.record;
    output r8 as aleo_name_service_registry_v1.aleo/register_public.future;
finalize register_public:
    input r0 as field.public;
    input r1 as [u128; 4u32].public;
    input r2 as field.public;
    input r3 as u128.public;
    input r4 as address.public;
    get nft_owners[r2] into r5;
    assert.eq r4 r5;
    contains names[r0] into r6;
    assert.eq r6 false;
    get toggle_settings[1u8] into r7;
    lte r7 block.height into r8;
    assert.eq r8 true;
    get toggle_settings[0u8] into r9;
    and r9 3u32 into r10;
    assert.eq r10 3u32;
    cast r1 r2 r3 into r11 as NameStruct;
    set r11 into names[r0];

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

function transfer_public:
    input r0 as address.private;
    input r1 as field.private;
    async transfer_public r0 r1 self.caller into r2;
    output r2 as aleo_name_service_registry_v1.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;
    assert.neq r2 r0;
    set r0 into nft_owners[r1];
    get.or_use name_versions[r1] 0u64 into r4;
    add r4 1u64 into r5;
    set r5 into name_versions[r1];

function convert_private_to_public:
    input r0 as NFT.record;
    input r1 as address.private;
    async convert_private_to_public r1 r0.data into r2;
    output r2 as aleo_name_service_registry_v1.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 field.private;
    input r1 as address.private;
    cast r1 r0 0scalar into r2 as NFT.record;
    async convert_public_to_private self.caller r0 into r3;
    output r2 as NFT.record;
    output r3 as aleo_name_service_registry_v1.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;
    remove nft_owners[r1];
    get.or_use name_versions[r1] 0u64 into r3;
    add r3 1u64 into r4;
    set r4 into name_versions[r1];

function set_primary_name:
    input r0 as field.private;
    async set_primary_name r0 self.caller into r1;
    output r1 as aleo_name_service_registry_v1.aleo/set_primary_name.future;
finalize set_primary_name:
    input r0 as field.public;
    input r1 as address.public;
    get nft_owners[r0] into r2;
    assert.eq r1 r2;
    set r0 into primary_names[r1];

function unset_primary_name:
    async unset_primary_name self.caller into r0;
    output r0 as aleo_name_service_registry_v1.aleo/unset_primary_name.future;
finalize unset_primary_name:
    input r0 as address.public;
    remove primary_names[r0];

function set_resolver:
    input r0 as field.private;
    input r1 as u128.private;
    async set_resolver r0 self.caller r1 into r2;
    output r2 as aleo_name_service_registry_v1.aleo/set_resolver.future;
finalize set_resolver:
    input r0 as field.public;
    input r1 as address.public;
    input r2 as u128.public;
    get nft_owners[r0] into r3;
    assert.eq r1 r3;
    get names[r0] into r4;
    cast r4.name r4.parent r2 into r5 as NameStruct;
    set r5 into names[r0];

function set_resolver_record:
    input r0 as field.private;
    input r1 as u128.private;
    input r2 as [u128; 4u32].private;
    call validate_name r2 into r3;
    assert.eq r3 true;
    async set_resolver_record r0 self.caller r1 r2 into r4;
    output r4 as aleo_name_service_registry_v1.aleo/set_resolver_record.future;
finalize set_resolver_record:
    input r0 as field.public;
    input r1 as address.public;
    input r2 as u128.public;
    input r3 as [u128; 4u32].public;
    get nft_owners[r0] into r4;
    assert.eq r1 r4;
    get.or_use name_versions[r0] 1u64 into r5;
    cast r0 r2 r5 into r6 as ResolverIndex;
    set r3 into resolvers[r6];

function unset_resolver_record:
    input r0 as field.private;
    input r1 as u128.private;
    async unset_resolver_record r0 self.caller r1 into r2;
    output r2 as aleo_name_service_registry_v1.aleo/unset_resolver_record.future;
finalize unset_resolver_record:
    input r0 as field.public;
    input r1 as address.public;
    input r2 as u128.public;
    get nft_owners[r0] into r3;
    assert.eq r1 r3;
    get name_versions[r0] into r4;
    cast r0 r2 r4 into r5 as ResolverIndex;
    remove resolvers[r5];

function clear_resolver_record:
    input r0 as field.private;
    async clear_resolver_record r0 self.caller into r1;
    output r1 as aleo_name_service_registry_v1.aleo/clear_resolver_record.future;
finalize clear_resolver_record:
    input r0 as field.public;
    input r1 as address.public;
    get nft_owners[r0] into r2;
    assert.eq r1 r2;
    get name_versions[r0] into r3;
    add r3 1u64 into r4;
    set r4 into name_versions[r0];

function check_ownship:
    input r0 as field.private;
    input r1 as address.private;
    async check_ownship r0 r1 into r2;
    output r2 as aleo_name_service_registry_v1.aleo/check_ownship.future;
finalize check_ownship:
    input r0 as field.public;
    input r1 as address.public;
    get nft_owners[r0] into r2;
    assert.eq r1 r2;

function proof_ownership:
    input r0 as NFT.record;
    input r1 as address.private;
    cast r1 r0.owner r0.data r0.edition into r2 as NFT_ownership.record;
    cast r0.owner r0.data r0.edition into r3 as NFT.record;
    output r3 as NFT.record;
    output r2 as NFT_ownership.record;

function transfer_credits:
    input r0 as field.private;
    input r1 as [u128; 4u32].private;
    input r2 as u64.private;
    input r3 as credits.aleo/credits.record;
    call credits.aleo/transfer_private_to_public r3 aleo1udpz0p5yr9pd8lxa5d94qmmwrqzsupkgp488kcf0hpjagf0jyvfqeft9ja r2 into r4 r5;
    hash.psd2 r1 into r6 as scalar;
    commit.bhp256 r0 r6 into r7 as field;
    async transfer_credits r5 r7 r2 into r8;
    output r8 as aleo_name_service_registry_v1.aleo/transfer_credits.future;
finalize transfer_credits:
    input r0 as credits.aleo/transfer_private_to_public.future;
    input r1 as field.public;
    input r2 as u64.public;
    await r0;
    get.or_use domain_credits[r1] 0u64 into r3;
    add r3 r2 into r4;
    set r4 into domain_credits[r1];

function claim_credits_private:
    input r0 as NFT.record;
    input r1 as [u128; 4u32].private;
    input r2 as u64.private;
    call credits.aleo/transfer_public_to_private self.caller r2 into r3 r4;
    hash.psd2 r1 into r5 as scalar;
    hash.psd2 r0.data into r6 as field;
    commit.bhp256 r6 r5 into r7 as field;
    cast r0.owner r0.data r0.edition into r8 as NFT.record;
    async claim_credits_private r4 r7 r2 into r9;
    output r8 as NFT.record;
    output r9 as aleo_name_service_registry_v1.aleo/claim_credits_private.future;
finalize claim_credits_private:
    input r0 as credits.aleo/transfer_public_to_private.future;
    input r1 as field.public;
    input r2 as u64.public;
    await r0;
    get domain_credits[r1] into r3;
    gte r3 r2 into r4;
    assert.eq r4 true;
    sub r3 r2 into r5;
    set r5 into domain_credits[r1];

function claim_credits_public:
    input r0 as field.private;
    input r1 as [u128; 4u32].private;
    input r2 as u64.private;
    call credits.aleo/transfer_public_to_private self.caller r2 into r3 r4;
    hash.psd2 r1 into r5 as scalar;
    commit.bhp256 r0 r5 into r6 as field;
    async claim_credits_public r4 r0 self.caller r6 r2 into r7;
    output r7 as aleo_name_service_registry_v1.aleo/claim_credits_public.future;
finalize claim_credits_public:
    input r0 as credits.aleo/transfer_public_to_private.future;
    input r1 as field.public;
    input r2 as address.public;
    input r3 as field.public;
    input r4 as u64.public;
    await r0;
    get nft_owners[r1] into r5;
    assert.eq r2 r5;
    get domain_credits[r3] into r6;
    gte r6 r4 into r7;
    assert.eq r7 true;
    sub r6 r4 into r8;
    set r8 into domain_credits[r3];

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

function burn:
    input r0 as NFT.record;
    async burn r0.data into r1;
    output r1 as aleo_name_service_registry_v1.aleo/burn.future;
finalize burn:
    input r0 as field.public;
    remove names[r0];

function is_avaiable:
    input r0 as field.private;
    async is_avaiable r0 into r1;
    output r1 as aleo_name_service_registry_v1.aleo/is_avaiable.future;
finalize is_avaiable:
    input r0 as field.public;
    contains names[r0] into r1;
    assert.eq r1 false;

Block heightTimestampTransition IDFunction callState
1,061,0542023-12-28 11:54:55au12eztmw6vha3a866u5mkf4d0qcf0xzcwwrc0sls7dmzurr7cgegrs03lm2sset_mint_blockRejected
700,6252023-11-29 17:18:58au169gf7d3w5wf7w2h52vvvhs3rwlxwcxxknzkct2w764lks7ewnc8q0znwr7set_primary_nameAccepted
700,6102023-11-29 17:18:03au1ug4p65lzf5scgf7uccfc0j0ak9tkjvgg6upq3y6ynhd8mrptecrqanddk2set_primary_nameAccepted
700,5872023-11-29 17:16:44au1hxu9antrkc82sx0nkxp3dlwhruq438h0rxyw7d8hy426t5edagzq6tds6yset_primary_nameAccepted
660,9662023-11-27 17:48:59au1zqw3u8r52zl7s9dm65m4v6dgewflyfhgf7djeshesj0858rjdg9sz0jgtjconvert_private_to_publicAccepted
660,9402023-11-27 17:47:19au154a7jquad3z2tc00xcg6x2v72egml3kzmwjnhfffpnvfw2maru9qwsmznpregisterAccepted
660,8912023-11-27 17:43:44au1ymergjnq7a3mm5kzyrrpprj69qwq7jsza75fes6zfudz745jg5xsm87lgtregisterAccepted
660,3002023-11-27 17:04:38au1gl25v0vrzl708kgfm98w66sap2r65cp7xcmvu9a3u8dyg8nfmuzss9vdfyset_primary_nameAccepted
660,2102023-11-27 16:58:41au1nzwyhay34fkkjvej3t6pz6dlquz8c3kv2hve6j8pt0w5et6h2u9s8wm6r9convert_private_to_publicAccepted
660,1332023-11-27 16:53:47au1zfzkh9fmuspgh8wtd5lalt77txjz30d5cvccxdgjawsmv24j758qmjjd84registerAccepted
660,1262023-11-27 16:53:18au1zuj5j6h60uzuev0tckgglhywa9qzyl3dp7l628g5rphpqlz37spsp45u0gconvert_private_to_publicAccepted
660,0862023-11-27 16:50:37au14hfnr0nzj3nw67fef93ge43tt6cdeyslt50ery3jvh5rknshlqgs2m8hjeregisterAccepted
660,0842023-11-27 16:50:29au10mvs304pwt45el6hs0futfdalzh9tz84fa82dggvqlatt97k3gps3qewqrregisterAccepted
660,0302023-11-27 16:46:50au1k2r934us07r7ywwqgrzgszjvgwdjhdhrpgkqtu0emv7awkzgsqxsqnpwxuset_primary_nameAccepted
659,8592023-11-27 16:35:27au1rtxg4a5c9xvjjlq0vtsug925r55nms76hdwze7snudrpj5xtd5xq02h2wkregisterAccepted
659,8532023-11-27 16:35:05au1zv2mqvuhnhkk06zg3yk5jkk3pt0tp7xufjeyv8gch758j90myuysd2wrkyconvert_private_to_publicAccepted
659,6882023-11-27 16:24:25au1cuz2l2c5t7mqagjjgs4m205hdv8km68pruetgc4td7u6hgadvsgsnus0faconvert_private_to_publicAccepted
659,6012023-11-27 16:18:47au1su7r6kksqsgz3w3q5pq8x7pjkjtuxp2jv90pgg7kqawazdhs8yrsjued4gregisterAccepted
659,4332023-11-27 16:06:58au1rywsuaynkxqlwxv9308c76g4rs472fnvp5ywx6q96qvdddd9vqysw5epaaregisterAccepted
659,4292023-11-27 16:06:41au1funhhz0359htqexatng8djh253mklv2hakgq55gk8kk4dl3z4vqsss8d8tconvert_public_to_privateAccepted
659,1102023-11-27 15:43:44au1gw5xsucqpr8tta0nx8mgv8ruwz5t7d3u6uxytftn4494jwctwyys66nx9nset_primary_nameAccepted
658,3192023-11-27 14:50:21au1vnj4gryufq709pdqr68qhe2slgn8h6tswlkhu67g9vsufzkrdupq5z089hregisterAccepted
658,0352023-11-27 14:30:30au1ly7t442wwm5zs6gh70f4vm9enksu5em6zvta6xjlyfnh4aglguqq7kvjhkset_primary_nameAccepted
658,0182023-11-27 14:29:20au176we86e387d5pduqjw69u8x626tjxuww86wcfsexs3grskdp8uxswcxyxsset_primary_nameAccepted
657,9582023-11-27 14:25:21au16hd54l8fz9kgjh8sn6mdgkwes66gtwenz8kr885qmrwsukmvmsgs2eszuzconvert_private_to_publicAccepted
657,7932023-11-27 14:14:50au1qe76llsl62rcyk4dg5tdz42ykk7uqxlcrhc80yje3v20r4we459st0uqmhregisterAccepted
657,4882023-11-27 13:54:38au1e3729ww0m7wn8xyg3gfjn3l2kh9jt45q87hs4y9kn8npfjpahg9qucvwqwset_primary_nameAccepted
657,3582023-11-27 13:46:29au1mwnvknprtaefl7tz5tqhxn4u2avk4g5wgm7q3tvt8wrn940jdsqq5w42xuconvert_private_to_publicAccepted
657,2502023-11-27 13:38:53au1gkf7eud05h7pjhnse7y8xfw8klek6aal38zanhd7lsfpdxhh5vrsew9gauregisterAccepted
657,2172023-11-27 13:36:20au1q08jpnz5nj9zw3p3gw2lngute4gemrtal0szyqpm7lejtnpxdy8sxhv3pjregisterAccepted
















Not implemented