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

Program ans_registrar_v4.aleo

Program ID
ans_registrar_v4.aleo
Owner signature
sign12fdgpx0kmj84smws72npnmd8d9w3f862ky9ye2ml2mpa8ncpl5pls3sjm0jkq8jmpc4e9a4jz7pauqgszwpgs5uah5qmntt4av95zqyhrlc8p40nd8wm5hhd9wfym3rpy6fnk08af8z3ktjgqmqz2xk9qu0w5wdnuvu8krhddwxnx7k94j6qe9mj8mvkagara8ka0gumf9rq6kjq3j0
Times called
13065
Similar programs
0
Mappings
general_settings (u8 -> u128)
Structs
-
Records
-
Functions
get_name_length
calc_price
Transitions
initialize_registrar() -> () finalize(u128)
set_minting_flag(u128, u128) -> () finalize(u128, u128, u128)
change_admin(address) -> () finalize(u128, u128)
register_free([u128; 4u32], field, address, ans_coupon_card_v1.aleo/CouponCard) -> ()
register_fld([u128; 4u32], field, address, credits.aleo/credits) -> ()
register_fld_with_coupon([u128; 4u32], field, address, credits.aleo/credits, ans_coupon_card_v1.aleo/CouponCard) -> ()
claim(u64, address) -> () finalize(u128)
Program Source Code (Aleo Instruction) Upload Leo source

import credits.aleo;
import aleo_name_service_registry_v3.aleo;
import ans_coupon_card_v1.aleo;

program ans_registrar_v4.aleo;

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

closure get_name_length:
    input r0 as [u128; 4u32];
    gt r0[0] 4294967295u128 into r1;
    gt r0[0] 16777215u128 into r2;
    gt r0[0] 65535u128 into r3;
    gt r0[0] 255u128 into r4;
    ternary r4 2u8 1u8 into r5;
    ternary r3 3u8 r5 into r6;
    ternary r2 4u8 r6 into r7;
    ternary r1 5u8 r7 into r8;
    output r8 as u8;

closure calc_price:
    input r0 as u8;
    is.eq r0 5u8 into r1;
    is.eq r0 4u8 into r2;
    is.eq r0 3u8 into r3;
    is.eq r0 2u8 into r4;
    ternary r4 250000000u64 1250000000u64 into r5;
    ternary r3 50000000u64 r5 into r6;
    ternary r2 10000000u64 r6 into r7;
    ternary r1 2000000u64 r7 into r8;
    output r8 as u64;

function initialize_registrar:
    hash.bhp256 self.caller into r0 as u128;
    async initialize_registrar r0 into r1;
    output r1 as ans_registrar_v4.aleo/initialize_registrar.future;
finalize initialize_registrar:
    input r0 as u128.public;
    set r0 into general_settings[0u8];

function set_minting_flag:
    input r0 as u128.private;
    input r1 as u128.private;
    hash.bhp256 self.caller into r2 as u128;
    async set_minting_flag r2 r0 r1 into r3;
    output r3 as ans_registrar_v4.aleo/set_minting_flag.future;
finalize set_minting_flag:
    input r0 as u128.public;
    input r1 as u128.public;
    input r2 as u128.public;
    get general_settings[0u8] into r3;
    assert.eq r0 r3;
    set r1 into general_settings[1u8];
    set r1 into general_settings[2u8];

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

function register_free:
    input r0 as [u128; 4u32].private;
    input r1 as field.private;
    input r2 as address.private;
    input r3 as ans_coupon_card_v1.aleo/CouponCard.record;
    assert.eq r3.discount_percent 0u8;
    is.eq r3.tld r1 into r4;
    is.eq r3.tld 0field into r5;
    or r4 r5 into r6;
    assert.eq r6 true;
    call get_name_length r0 into r7;
    gte r7 r3.limit_name_length into r8;
    assert.eq r8 true;
    call aleo_name_service_registry_v3.aleo/register r0 r1 r2 0u128 into r9 r10;
    call ans_coupon_card_v1.aleo/use r3 into ;
    async register_free r10 into r11;
    output r11 as ans_registrar_v4.aleo/register_free.future;
finalize register_free:
    input r0 as aleo_name_service_registry_v3.aleo/register.future;
    await r0;
    get general_settings[2u8] into r1;
    assert.eq r1 1u128;

function register_fld:
    input r0 as [u128; 4u32].private;
    input r1 as field.private;
    input r2 as address.private;
    input r3 as credits.aleo/credits.record;
    call get_name_length r0 into r4;
    call calc_price r4 into r5;
    call credits.aleo/transfer_private_to_public r3 aleo1zqg7j94yne3e3kmwgs9h75yuz2ukw97w9xsvmdd32jnw8xz54cqsel9jrx r5 into r6 r7;
    call aleo_name_service_registry_v3.aleo/register r0 r1 r2 0u128 into r8 r9;
    async register_fld r7 r9 into r10;
    output r10 as ans_registrar_v4.aleo/register_fld.future;
finalize register_fld:
    input r0 as credits.aleo/transfer_private_to_public.future;
    input r1 as aleo_name_service_registry_v3.aleo/register.future;
    await r0;
    await r1;
    get general_settings[1u8] into r2;
    assert.eq r2 1u128;

function register_fld_with_coupon:
    input r0 as [u128; 4u32].private;
    input r1 as field.private;
    input r2 as address.private;
    input r3 as credits.aleo/credits.record;
    input r4 as ans_coupon_card_v1.aleo/CouponCard.record;
    is.eq r4.tld r1 into r5;
    is.eq r4.tld 0field into r6;
    or r5 r6 into r7;
    assert.eq r7 true;
    call get_name_length r0 into r8;
    gte r8 r4.limit_name_length into r9;
    assert.eq r9 true;
    call calc_price r8 into r10;
    cast r4.discount_percent into r11 as u64;
    mul r10 r11 into r12;
    div r12 100u64 into r13;
    call credits.aleo/transfer_private_to_public r3 aleo1zqg7j94yne3e3kmwgs9h75yuz2ukw97w9xsvmdd32jnw8xz54cqsel9jrx r13 into r14 r15;
    call aleo_name_service_registry_v3.aleo/register r0 r1 r2 0u128 into r16 r17;
    call ans_coupon_card_v1.aleo/use r4 into ;
    async register_fld_with_coupon r15 r17 into r18;
    output r18 as ans_registrar_v4.aleo/register_fld_with_coupon.future;
finalize register_fld_with_coupon:
    input r0 as credits.aleo/transfer_private_to_public.future;
    input r1 as aleo_name_service_registry_v3.aleo/register.future;
    await r0;
    await r1;
    get general_settings[2u8] into r2;
    assert.eq r2 1u128;

function claim:
    input r0 as u64.private;
    input r1 as address.private;
    hash.bhp256 self.caller into r2 as u128;
    call credits.aleo/transfer_public_to_private r1 r0 into r3 r4;
    async claim r4 r2 into r5;
    output r5 as ans_registrar_v4.aleo/claim.future;
finalize claim:
    input r0 as credits.aleo/transfer_public_to_private.future;
    input r1 as u128.public;
    await r0;
    get general_settings[0u8] into r2;
    assert.eq r1 r2;

Block heightTimestampTransition IDFunction callState
2,206,4642024-04-26 14:38:15au1w6ue9tr2v3qcu0sxs6966daua56tj8t97xzm70s3x0eqzcxsnu8qegmsexregister_fldAccepted
2,206,4632024-04-26 14:38:13au1arqj8kdum59d9qsg3aw3m6hlvv28xt8ly5rtzu9n92x6x0uy2g8sl0uqmqregister_fldAccepted
2,206,4532024-04-26 14:37:13au1t4ff4hch2vwuazusj2ud99vfz3mpgd6e5ccxf054t40pc6tfay8qsr8fytregister_fldAccepted
2,206,4232024-04-26 14:34:33au1tmlpnjtejjtpjuq7ngeecwz2vyfnvnj45s0xmt57x2vg04rljgysm6y665register_fldAccepted
2,205,7222024-04-26 13:25:17au10pg27vgkuppaqhnv6z2qxue7826gn55kn8c33dh6njcnq6f96g9s6xhqttregister_fldAccepted
2,205,4132024-04-26 12:54:32au19p8n068j5f0qp7349vu4u288duxpnexm6f3u2s7ufws2el8p3qgqymx36tregister_fldAccepted
2,205,2442024-04-26 12:37:43au1n55ywtvprw34ncm877zawfn5dl5ruv48rk3ukv878p59m8kznqrsvj778zregister_fldAccepted
2,205,0762024-04-26 12:21:19au1yhv48a0g5gzznpej2tq3c2udhd0zlg7fheyazc54hju23vkxr5rskf5rkvregister_fldAccepted
2,204,9962024-04-26 12:13:35au1jmvqstggp2jlav7mundkxeuqa37zfvf530rj76fpq9e4n6muhcyqp6naxkregister_fldAccepted
2,204,8112024-04-26 11:54:57au1sgfp77g62efrj5fd4vuddqx6cc4epgrnry2etcklst32hrs25s8s2nmpmtregister_fldAccepted
2,204,6812024-04-26 11:41:23au1g6aq45vehj5rhpr69zxj3379chxx9xd9glrlktedchhkdana8syqhxqhzlregister_fldAccepted
2,204,4342024-04-26 11:17:43au1xn7ftvknu80lkjt64rw09ulprnpg6n26hjhzum8kd6aw25zsxgyqwk3zjrregister_fldAccepted
2,204,3372024-04-26 11:09:44au1yh2jdc9t3uswslme6kf52l2kj408jfusj8wkwwhjczmjz95u8qysyvp3amregister_fldAccepted
2,204,2322024-04-26 11:00:21au10dsh4h2v9lxytl6h3stawkffvnga5268jeqz0ze8rr0tad92vcqqsrmj0aregister_fldAccepted
2,204,0062024-04-26 10:40:19au17vv8rr84udf2dp6d3phuyh5kx7j89w3z2m9ulhycp89e89u8zqgqahd78uregister_fldAccepted
2,203,6162024-04-26 10:05:38au142srfkq58qg066de80phhlxtqk8z5dhf75v2as3adg2uua0035qsr3upadregister_fldAccepted
2,203,6122024-04-26 10:05:12au1978m0cptp5ggxcn2fj7mcre8dtsapfr6f720jkgj0udgxy3z0grswkr569register_fldAccepted
2,203,5142024-04-26 09:56:26au1p6lv3n7t3mptq5n3zykcjguwx957d6r4lv9w2wcp5yss0ucvkq8qprnpa8register_fldAccepted
2,203,4572024-04-26 09:51:24au19ryaj3x7ap6zv4zghh7cge9752xh9nsnxqv7jw67ynl4yrlpeypsdmkcy2register_fldAccepted
2,203,4032024-04-26 09:47:12au19n3lzs7f9pex3lk8mxmw0rldqtkyx9kd44yh3kanpn80857mkygs7q65rpregister_fldAccepted
2,203,2902024-04-26 09:37:20au19wfzcju9ummfvknynxpnqzwxhe027j807f9lamqjy28u8y65mgyqx868d7register_fldAccepted
2,202,8502024-04-26 08:58:58au1uzn3gtzrpqv5s5u5x2xjk64sasqv7dquu0q8fpmhekc2vnmek5yspr9hgrregister_fldAccepted
2,202,7922024-04-26 08:54:02au1nh6un49pr4wd62ptk7y3r898ry4pvvelrepax6fmuh0z5kznxg8qw5teapregister_fldAccepted
2,202,7442024-04-26 08:49:52au12a0ldsj7n8lzxlxxtm6wujtwscpmamj2zmup6nemg722jydfgqzsz4pj24register_fldAccepted
2,202,6492024-04-26 08:41:11au1ndfsh3cd7y2ut88cxhlxh9t4dl4332cmymuq2nl54t5p7ydz6gpqunneatregister_fldAccepted
2,202,5832024-04-26 08:35:56au142dr9z5tvjjkkjvnepkrvs5gc0er992hza6g2rwz39zyucd0ysrq3njg7jregister_fldAccepted
2,202,5262024-04-26 08:31:29au1ed4mstlrxnu3ynf5s2u7rxndttm9cxhpagqs0ucvguck9vvxnqgstadqk9register_fldAccepted
2,202,4932024-04-26 08:28:57au19hr37e8r2hjgaxnwmwhnulw859ssgdm88ljurf8kmwkpmw75uyys8ln6wvregister_fldAccepted
2,202,2352024-04-26 08:08:05au1g3vlrk46j30d4ya6k5hapa2yjygvs43dl8pj0emqw94mp5qrtygs83y2thregister_fldAccepted
2,202,1682024-04-26 08:02:37au1gr7zsx5h5ncq6mkztd6sdvnym58xmv3jkr3kpy6ftrs33qflduyq9hjzlnregister_fldAccepted


Not implemented